为DS1845/DS1855数字电位器构建按钮接口

本应用笔记说明了使用microchip pic1845f1855微控制器实现ds12或ds509非易失数字电位器按钮接口的方法。
硬件设置
图1中的原理图说明了如何将按钮连接到微控制器。它还显示了ic接口是如何实现的。
其中三个开关为瞬时按钮型,用于递增 (up)、递减 (dwn) 和设置中间电位值 (mid)。按下时,这些开关会强制微控制器的三个通用i/o(gp0、gp1和gp3)为低电平。之所以明确选择这些i/o,是因为它们具有内部(可选)上拉电阻,如果启用低电流sleep模式,它们会产生唤醒中断。另一个输入开关是分配给gp2的dpdt开关。此开关可用于选择 pot0 或 pot1 进行编程。
sda、scl 和 led 上的输出信号分配给 gp5、gp4 和 gp0。sda和scl具有4.7kω上拉电阻,并直接连接到数字电位器的通信引脚。led 和 mid 瞬时开关均使用 gp0 引脚作为资源。gp0引脚大部分时间用作输入,轮询由mid按钮引起的低电平。但是,如果按下一个或两个其他瞬时按钮,则pic输出低电平,导致led被驱动。这样,只要按下 mid 按钮,led 就会被驱动,每当按下另一个按钮开关时,pic 就会驱动 led。r1、r2 和 r3 是可选的上拉电阻,使用 pic12f509 时无需填充。
图2给出了ds1845/ds1855用于评估的特定连接。提供跳线用于选择地址引脚,分隔共享的v抄送(五dd),以及隔离 sda 和 scl。
图1.pic12f509接口电路。
图2.ds1845/ds1855数字电位器连接到pic控制器。
固件说明
该项目的固件是用mplab ide(版本7.31)编译的汇编语言编写的。该工具目前可从microchip免费获得。整个程序由程序空间(闪存)中的不到512条指令和数据空间(ram)中的14个位置组成。
指令分为五个块:初始化、读取、up、dwn 和 mid。固件只是在循环中连续轮询输入引脚。由于程序的固有延迟和逻辑流程,开关去波化会自动合并到软件中。
初始化模块在 pic 上电时或唤醒后运行一次(如果启用了 sleep)。运行 initialize 块中的指令后,操作寄存器、标志和变量将加载到已知状态。执行这些指令后,其余模块串行形成无限循环,以轮询开关,通过ic读取或写入新的电位器值。
电位器值的ic读取仅在设置rd_flag时发生。此标志在初始化期间设置一次,然后在按钮调用将电位器寄存器写入新值时设置一次。通过在电位值变化期间和启动时仅执行ic read,当up、dwn或mid按钮未按下时,总线上不会发生多余的通信突发。例如,如果电位器已经在使用中控制电源微调参数,则连接按钮控制器以执行在线编程。在对电位器值执行ic写入之前,将读取当前的电位器值。ic写入完成后,再次设置rd_flag以生成新电位器值的最终ic读取。
up、dwn 和 mid 块在读取块之后按顺序运行。在每个模块中,相应的引脚被轮询为低状态。如果找到high状态,则程序将快速退出该块,而不会导致发生任何ic通信。如果检测到 low,则程序按照逻辑框图中的说明进行。
功能说明
该项目的固件和硬件允许在ds1845/ds1855上对电位器值进行编程时执行多种不同的操作。开关和 led 功能包括:
pot0/1(选择拨动开关) 此开关选择在下一次循环迭代中控制哪个电位器(如有必要)。此开关上的状态更改会选择 pot0 或 pot1,导致 ic 读取,并且对 led 没有影响。²
点击 mid、up或 dwn 按钮( 400 毫秒) 通过按住up或dwn按钮,所选电位器将进入快速递增或递减模式。现在,电位器值将继续变化,直到松开按钮或达到最大/最小位置。执行 ic 写入时,led 将亮起;它将保持亮起,直到松开按钮。按钮释放后,ic读取将在下一次循环迭代中进行。²²
按住 up,然后点击 dwn 按钮 通过按住up按钮,所选的电位器将开始递增。然后,在仍然按下up按钮的同时,点击dwn按钮,使所选电位器直接加载到最大位置。led 将亮起,直到松开开关。释放按钮后,ic读取将在下一次循环迭代中发生。²
按住 dwn,然后点击向上按钮 通过按住dwn按钮,所选电位器将开始递减。然后,在仍然按下dwn按钮的同时,点击up按钮,使所选电位器直接加载到最小位置0x00。led 将亮起,直到松开开关。释放按钮后,ic读取将在下一次循环迭代中发生。²
指示灯闪烁三次 每当上电期间初始化pic或看门狗定时器导致系统复位(如果启用)时,led将闪烁三次。
led 持续快速闪烁 每当发生ic错误时,led将持续快速闪烁。纠正错误后,指示灯将恢复正常功能。通过检查设备地址是否正确以及ic总线是否已连接来进行故障排除。²²
结论
本应用笔记介绍如何为ds1845/ds1855非易失数字电位器使用和构建简单、高性价比的控制器。按钮输入转换为ic命令,以递增、递减或设置中间位置,而无需主机。


护眼灯和led灯的区别
微型时控开关怎么调时间?
深度分析!三星、LG锂电池企业在中国的布局
泰克推出新一代中端示波器,主打“更快”、“更准”、“使用无忧”
【虹科】速度与激情:用于高速和高分辨图像处理的紧凑型计算机FantoVision 20
为DS1845/DS1855数字电位器构建按钮接口
天猫商城重磅上线天猫精灵方糖2金砖版智能音箱
使用单片机实现无线传输的资料概述
Lantiq推出全新ADSL芯片组,为业界提供最高密度和最低
何小鹏表示:汽车与安全密切相关,企业不能追求过低的价格
USB4设备路由器如何用于AI加速?
半导体大佬们集体预测:行业谷底已过,下半年将温和复苏!
炬力集成电路设计有限公司
爆华硕四款笔记本电脑新品:搭载锐龙 5000U 系列处理器
一种嵌入式系统实现的JTAG调试器
华为在巴基斯坦推出5G技术
如何用比较器设计复杂的逻辑电路?
上海橙群微电子InPlay 亮相IOTE 2020深圳国际物联网展
什么是云服务器安全组 它的作用是什么
智慧城市推动LED灯杆屏行业发展趋向成熟