資料介紹
描述
帶 Arduino 和 X9C104 數(shù)字控制電位器 (XDCP) 的偽鎖相環(huán)
該項目展示了如何使用帶有 X9C104 的 Arduino 來實現(xiàn)頻率發(fā)生器,以便使用反饋回路優(yōu)化頻率。這是 PLL 電路中使用的原理。
該項目展示了 X9C104 IC 如何由 Arduino 控制并在帶有 555 定時器電路的反饋回路中使用以輸出用戶所需的輸入頻率。通過使用連接到 Arduino 中斷的反饋回路將此頻率設(shè)置為接近輸入。
?
電路的簡化框圖如下所示:
?
基本操作原理:
- 用戶通過 Arduino 串行監(jiān)視器輸入所需的頻率。
- Arduino 接受輸入并將 X9C104 編程為初始設(shè)置
- 555定時器電路中的X9C104電阻調(diào)節(jié)振蕩頻率
- 產(chǎn)生的方波被反饋到 Arduino 中斷(引腳 2)
- 使用中斷處理例程,確定方波的頻率
- 將該頻率與要求的頻率進(jìn)行比較并對 X9C104 進(jìn)行調(diào)整
- 再次測量頻率并執(zhí)行第二次優(yōu)化
- 555 定時器輸出方波的頻率穩(wěn)定到用戶在步驟 1 中設(shè)置的值
X9CXXX 集成電路由 Intersil(最近被 Renesas Corporation 收購)制造,代表其數(shù)字控制電位器系列。該裝置包括電阻陣列、控制部分和非易失性存儲器。陣列的電阻由三線數(shù)字接口控制。
來自 Intersil 數(shù)據(jù)表的框圖:
?
該器件可用作二端可變電阻器或三端電位器。它包括非易失性存儲器,可在掉電時保存最后一個電阻值,并在隨后的上電時將電阻器陣列設(shè)置為此值。
滑動器位置的控制以及電阻由三個數(shù)字輸入決定:
- 通過將 CS 拉低來選擇設(shè)備。
- 向上/向下 (U/D) 的狀態(tài)決定了滑動端是靠近 Vh/Rh 還是靠近 Vl/Rl。
- 每次 INC 被拉低然后返回高電平時,滑動器移動一步。
- 滑動器有 100 個可能的位置 (0 – 99),允許以總阻力的 1% 為增量步長。
- 當(dāng)游標(biāo)到達(dá)頂部或底部(Vh/Rh 或 Vl/Rl)時,它不會再移動,也不會環(huán)繞到另一個極端。
重要的是要記住,對于每個 INC 周期,滑動器移動一個增量。擦拭器不能跨越多個步驟。這意味著從第 10 步移動到第 20 步需要 10 個 INC 周期。
Vh 和 Vl 不能超過 Vcc 和 Vss。
可在 Renesas 網(wǎng)站上找到設(shè)備的完整規(guī)格。
項目電路
本項目中使用的 555 定時器電路是標(biāo)準(zhǔn)的非穩(wěn)態(tài)振蕩器。有多篇文章記錄了該電路的工作原理,快速搜索即可找到相關(guān)說明。
?
在高層次上,操作如下:
- 引腳 7 為高電平時,電容器 C1 通過 R1 和 X9C104 中的可變電阻器充電
- 在某個閾值電壓下,555 定時器內(nèi)部觸發(fā)器 s1 開關(guān)和引腳 7 變?yōu)榈碗娖?/font>
- 然后電容 C1 通過 X9C104 中的可變電阻放電。
- 在較低的閾值電壓下,55 定時器內(nèi)部觸發(fā)器切換回來并重復(fù)該循環(huán)。
頻率和占空比的公式如下:
?
此處使用的電路中,R2 為 100 kΩ(X9C104),R1 為 1 kΩ。由于存在差異,電路的頻率和占空比實際上由 R2 的值設(shè)置,除非 R2 的值非常低。這意味著可以忽略 R1,頻率方程可以簡化為:
?
要計算將導(dǎo)致所需頻率變化的電阻變化,一些數(shù)學(xué)將顯示
?
選擇 R1、R2 和 C1 的值,以便電路生成可聽頻率范圍內(nèi)的方波。
本文開頭的照片顯示了物理電路。
Arduino 中斷
Arduino 板核心的 ATmega328P 接受中斷。有效中斷會停止當(dāng)前程序流并啟動中斷服務(wù)例程,該例程會在將控制權(quán)交還給先前的程序流之前完成一些操作。
有關(guān) Arduino 中斷的詳細(xì)說明,請參閱 Arduino 語言參考和Nick Gammon 撰寫的精彩文章
請注意,Arduino 指令集中可用的一些標(biāo)準(zhǔn)函數(shù)(例如 delay() 和 millis())將無法在中斷服務(wù)例程中運行,因為這些函數(shù)依賴于中斷本身來運行。
在 Arduino 代碼中,使用 attachInterrupt() 命令打開中斷。本項目使用的命令具體版本如下:
attachInterrupt( digitalPinToInterrupt(interruptPin), trig_detected, RISING );
interruptPin 指定 Arduino 上接受中斷的數(shù)字引腳,trig_detected 是處理中斷的中斷服務(wù)程序 (ISR),RISING 是觸發(fā)中斷的狀態(tài)變化。
中斷完成其功能后,可以使用以下方法將其關(guān)閉:
detachInterrupt(digitalPinToInterrupt(pin))
在這個項目中,由于我們使用方波觸發(fā)中斷,每次從低 (0V) 到高 (5V)(上升波形)的轉(zhuǎn)換都會導(dǎo)致 trig_detected 啟動。
這個項目的Arduino代碼
他的代碼使用了 Arduino 的 Fast X9CXXX 庫。該庫可在 GitHub 上找到:
https://github.com/GitMoDu/FastX9CXXX
在編譯代碼之前,請確保代碼已下載并包含在您的 Arduino 庫文件夾中。
該功能的整體流程在簡介中進(jìn)行了描述。
程序的設(shè)置部分使用 Arduino 的引腳 3、4 和 5 啟動 X9C104 對象。電位器設(shè)置為 50 步(中途)。
主循環(huán)等待用戶通過串口監(jiān)視器輸入;此輸入必須是所需的頻率。由于此項目的設(shè)計,輸入頻率可以在 80 Hz 和 550 Hz 之間,并作為單個數(shù)字輸入(例如 80 或 550)。如果改變C、R1和R2的值,將產(chǎn)生不同的頻率。
一些附加說明:
- 代碼中的中斷服務(wù)程序(ISR)稱為void trig_detected()。它返回從 micros() 派生的兩個值,然后將這兩個值相互相減以獲得中斷事件之間的持續(xù)時間。該持續(xù)時間是方波頻率的倒數(shù)。
- 方波持續(xù)時間的 12 個樣本被獲取并存儲在一個數(shù)組 (trigArray) 中。計算最后 10 個的平均值。
- 這些頻率用于計算 ΔR 值,該值用于設(shè)置電位器值。
- 執(zhí)行兩個調(diào)諧例程以使頻率等于輸入值。
最后的話
電路的頻率測量是在各種輸入值下進(jìn)行的。結(jié)果列于下表:
?
當(dāng)然,該電路存在固有的局限性。主要限制是電位器的步進(jìn)性質(zhì)。由于頻率到電阻的方程式,單個電位器步進(jìn)會導(dǎo)致較高頻率下的寬頻率跳變。
此外,在 ISR 中使用 micros() 可能無法在不同頻率下工作。使用定時器寄存器可以解決這個問題。
但是一個具有多個應(yīng)用程序的有趣項目。
- 使用Arduino和X9C104控制555定時器
- 基于FPGA的高性能全數(shù)字鎖相環(huán) 45次下載
- 基于FPGA的寬頻帶數(shù)字鎖相環(huán)的設(shè)計與實現(xiàn)簡介 26次下載
- 數(shù)字電位器X9C103的測試程序代碼下載 58次下載
- 如何使用FPGA實現(xiàn)高性能全數(shù)字鎖相環(huán)的設(shè)計 65次下載
- 如何使用FPGA實現(xiàn)高性能全數(shù)字鎖相環(huán)的設(shè)計 18次下載
- 使用FPGA實現(xiàn)數(shù)字鎖相環(huán)的設(shè)計資料說明 24次下載
- TMS320C6474 DSP 軟件可編程鎖相環(huán)(PLL)控制器 15次下載
- 詳解FPGA數(shù)字鎖相環(huán)平臺 18次下載
- 高精度的數(shù)字電位器X9C103特性原理應(yīng)用電路 59次下載
- 基于LMX2315的讀寫器鎖相環(huán)應(yīng)用 18次下載
- 一種基于FPGA實現(xiàn)的全數(shù)字鎖相環(huán)
- 基于FPGA的全數(shù)字鎖相環(huán)設(shè)計
- 智能全數(shù)字鎖相環(huán)的設(shè)計
- 全數(shù)字鎖相環(huán)的設(shè)計
- 鎖相環(huán)的基本原理和主要作用 2270次閱讀
- 鎖相環(huán)的構(gòu)成和工作原理講解 2894次閱讀
- 鎖相環(huán)原理與公式講解 8292次閱讀
- 數(shù)字控制電位器和電阻器與激光驅(qū)動器接口 617次閱讀
- AD8400系列數(shù)字電位器的驅(qū)動設(shè)計與實現(xiàn) 3279次閱讀
- AD527x系列數(shù)字電位器的驅(qū)動設(shè)計與實現(xiàn) 1948次閱讀
- 基于FPGA器件和CPU控制實現(xiàn)數(shù)字鎖相環(huán)頻率合成系統(tǒng)的設(shè)計 1047次閱讀
- 關(guān)于2.4 GHz的低噪聲亞采樣鎖相環(huán)設(shè)計 9570次閱讀
- 數(shù)字移相器的設(shè)計電路圖大全(移相電路/倍頻電路/AD5227/鎖相環(huán)) 3w次閱讀
- 數(shù)字電位器x9c103應(yīng)用電路 4.9w次閱讀
- 數(shù)字電位器工作原理詳解_數(shù)字電位器應(yīng)用_數(shù)字電位器選型指南 5.8w次閱讀
- 數(shù)字電位器控制原理圖 3.4w次閱讀
- 數(shù)字電位器應(yīng)用實例_數(shù)字電位器四大應(yīng)用電路 4.5w次閱讀
- 鎖相環(huán)在調(diào)制和解調(diào)中的應(yīng)用及概念解析 1.4w次閱讀
- 一種新型帶寬自適應(yīng)全數(shù)字鎖相環(huán)的設(shè)計方案 2793次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多