基于单片机的数字电位器的设计

时间:2012-09-19来源:网络

分辨率扩展

Ra和Rb同时并联在输入信号Vin的两端,其抽头数均为32。Ra和Rb的输出作Rc端口电压VH和VL设置,Ra始终比Rb高一个位置间隔,这样就可以将1/32Vi~31/32Vi共31种输入信号的电压变化加到Rc两端。由于Rc选用了100抽头的DCP,从而可以在Rc输出端得到31×(100-1)=3069级的Vin线性电压值。

随着Rc滑动端上下移动,Ra和Rb的位置也在MCU的控制下进行相应调整。在上移过程中,设Rc滑动端上移值与目前所在位置值相加后的值为M。若M小于100,说明这时只是Rc的滑动端发生移动,而Ra和Rb的滑动触点位置不变;若M值超过100,则Ra和Rb的触点均上移1个滑动位,Rc的滑动端返回M减去100之后所得实际值决定的触点位。类似地,在抽头下移过程中,若Rc的滑动端需要下移到抽头0以下时,则Ra和Rb的滑动端也需要同步下移1位,以保持电位器实际调整步数的平衡。

电位器Rc的抽头输出端设置了一级电压跟随器,可以减小因负载并联对级联后分压系数的影响。电位器触点的滑动过程属于不连贯的步进调节方式,故Rc的电阻值不是连续变化而是在滑动端调整到位后才具有所希望的输出,这样会使得输出电压出现一些小幅跳变。但由于输入信号Vin的绝对增量并不大,且整个电位器扩展系统的分辨率很高,对此我们可在Rc电位器的滑动输出端对地并联一只1000~2200pF的小电容C1,以减小输出电压的波动。

上述电位器分辨率扩展的思路具有较高的可行性与移植性,此前曾应用在我们的一项程控增益可编程高速放大器的系统设计方案中,取得很好的使用效果。

电阻值指数化

DCP的指数化处理采用软件方式实现,不需要额外增加硬件。由于通用单片机的函数运算功能非常有限,因此在算法上,将电位器每级切换所要求的触点移动步数以数组形式保存在单片机的ROM中。阻值调整时,MCU根据按键的UP/DOWN状态和当前的阶数值以查表方式取得各只DCP的实际偏移量,然后再由MCU控制DCP执行相应的步进切换动作。考虑到3069级的实际分辨率,系统从零到满幅输出共设置了24级的步进阶数,优于市场上主流机械式步进电位器18~21的步进阶数,具体的阶数与电位器抽头偏移量关系可参见表1。从表中不难看出,系统将DCP扩展到3069的高分辨率正是为了适应电位器阻值在指数化调整过程中步进值的精确辨析。

表1 阶数与电位器抽头偏移量关系

X9312与X9313是不能直接从片内存储单元读出滑动端当前所在位置的,因此,为了记忆各只数字电位器滑动触点的实际位置,必须在程序中设置变量对不同电位器的触点位置进行记忆。

结束语

高分辨率指数式数字电位器的解决方案以较低成本实现了通用型线性数字电位器在音响系统中的应用,具有较好的工程应用前景和推广价值。此外,由于DCP的指数式高分辨率扩展仅仅占用了很少的系统资源,因而可将MCU的剩余端口资源应用在音量状态的指示以及红外信号解码等功能性环节中,以完善系统功能。

1 2

关键词: 设计 数字电位器 单片机 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版