资料介绍
描述
带 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控制LED亮度 0次下载
- 使用Arduino和X9C104控制555定时器 0次下载
- 基于FPGA的高性能全数字锁相环 45次下载
- 使用FPGA实现数字锁相环的设计资料说明 24次下载
- X9119单个数字控制电位器的数据手册免费下载 2次下载
- 优化数字电位器电路设计方案 11次下载
- 自动变模控制的宽频带全数字锁相环 79次下载
- 一种基于FPGA实现的全数字锁相环 30次下载
- DAC与数字电位器 62次下载
- 理解和应用数字电位器 52次下载
- 从机械式电位器升级到数字电位器 45次下载
- 基于FPGA的全数字锁相环设计 141次下载
- 智能全数字锁相环的设计 72次下载
- 区分数字电位器的性能 21次下载
- 全数字锁相环的设计 56次下载
- 用线性数字电位器实现对数调节 889次阅读
- 数字控制电位器和电阻器与激光驱动器接口 411次阅读
- 数字电位器取代机械电位器 1477次阅读
- 数字电位计的按钮控制控制开关转换器的稳压输出 1222次阅读
- AD8400系列数字电位器的驱动设计与实现 2662次阅读
- 如何理解数字电位器 8979次阅读
- 如何制作数字电位器_数字电位器制作方法 1.9w次阅读
- 常用数字电位器芯片有哪些 10.9w次阅读
- 一个实验教你搞定数字电位器的控制与调试 3.6w次阅读
- 数字电位器x9c103应用电路 4.5w次阅读
- 数字电位器工作原理详解_数字电位器应用_数字电位器选型指南 5.7w次阅读
- 数字电位器控制原理图 3.2w次阅读
- 数字电位器应用实例_数字电位器四大应用电路 4.3w次阅读
- 数字电位器怎么选型_数字电位器选型指南 8504次阅读
- 如何使用外部模拟电压控制数字电位器 6585次阅读
下载排行
本周
- 1储能电源市场分析
- 7.99 MB | 11次下载 | 免费
- 2储能电源市场分析报告
- 2.61 MB | 7次下载 | 免费
- 3labview文档教程资料(一)
- 24.29 MB | 2次下载 | 免费
- 4第三代SiC功率半导体动态可靠性测试系统介绍
- 8.02 MB | 1次下载 | 免费
- 5用于便携可穿戴设备的RX8130CE
- 277.67 KB | 1次下载 | 免费
- 6英集芯IP5353 QFN32 规格书pdf
- 2.70 MB | 1次下载 | 免费
- 742V、5A SIMPLE SWITCHER® 特性降压稳压器LM22677/-Q1数据表
- 1.54MB | 1次下载 | 免费
- 83.5V 至 36V 输入、1V 至 20V 输出、6A 电源模块LMZM33606数据表
- 1.97MB | 1次下载 | 免费
本月
- 1STM32国内外发展现状
- 1.15 MB | 16次下载 | 免费
- 2传感芯片选型指南
- 3.60 MB | 12次下载 | 免费
- 3储能电源市场分析
- 7.99 MB | 11次下载 | 免费
- 4ATmega8芯片中文手册
- 2.45 MB | 8次下载 | 1 积分
- 5TDK电容器产品指南
- 11.88 MB | 7次下载 | 1 积分
- 62A多电池高效开关充电器AN_SY6912A中文资料规格书
- 1.43 MB | 7次下载 | 免费
- 7储能电源市场分析报告
- 2.61 MB | 7次下载 | 免费
- 816A 输出电流,高可靠、高效率 同步降压转换器PCD3201产品手册
- 0.47 MB | 6次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935091次下载 | 免费
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420050次下载 | 免费
- 3Altium DXP2002下载入口
- 未知 | 233068次下载 | 免费
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191317次下载 | 免费
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183316次下载 | 免费
- 6labview8.5下载
- 未知 | 81567次下载 | 免费
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73789次下载 | 免费
- 8NI LabVIEW中实现3D视觉的工具和技术
- 未知 | 70088次下载 | 免费
评论
查看更多