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