软件实现高分辨率的非易失性数字电位器的方法(图)

出处:ninesunsz 发布于:2007-04-16 13:08:17

巧妙的利用软件编程,将X9241内部的四个64抽头数字电位器组成一个高分辨率低成本的数字电位器

 

数字电位器(DCP)是专为替代传统机械电位器、可变电阻器而设计的新型集成电路。其通过I2C、SPI以及CS,U/D,INC三线方式与MCU接口,可实现应用程控调节,也有按钮控制方式,从而实现与传统机械电位器或可变电阻器相同的电位、电阻调节功能的特殊集成电路。与传统机械电位器相比,数字电位器具有数字调节、长寿命、易于装配、节省空间、不受振动影响等突出优点,已被广泛应用于医用设备、仪器仪表、工业控制、计算机、家用电器、手机、数码产品等各个领域。

 

在有些应用中,如激光二极管的动态偏置调节,使用数字电位器或者微调DAC来控制电压,就受到了分辨率、接口、成本的限制。为了解决这类问题,我们将在这里介绍使用低分辨率(64抽头)、低成本的Intersil(Xicor)公司I2C总线控制数字电位器X9241组成一个高分辨率(8001抽头)的数字电位器的解决方法。

 

实现高分辨率的原理

 

我们假设有三个数字电位器,POT1和POT2为64抽头DCP,POT3为128抽头DCP,其中POT1和POT2用作POT3的VH和VL的设置,并且必须保证POT1和POT2始终为“1”个位置间隔,那么就有63种不同的电压间隔施加到POT3上。理论上,当POT3在特殊电压抽头127和下一个电压间隔的抽头0之间跳动时,应该还有一个多余的抽头位置,但是这些抽头不是多余的,它们的作用可以改善输出的线性度,因为在相邻的两个电压间隔中的抽头0和抽头127的电压是一样的。对于63个不同间隔的每一个,又借助127个不同的输出,就会有8001(63×127=8001)个不同的Vw输出可以在VH和VL之间获得。就是说明的这个概念。

 

 

如何使用X9241实现高分辨率(8001抽头)

 

Intersil(Xicor)公司的X9241把四个非易失性数字电位器集成在一个单片CMOS微电路中,它的功能框图如。X9241包含四个电阻阵列,每个阵列包含63个电阻单元。在每个单元之间和两个端点都有可以被滑动单元访问的抽头点。滑动单元在阵列中的位子由用户通过I2C总线控制。每个电阻阵列与一个滑动端计数寄存器(WCR)和四个8位数据寄存器联系在一起,四个数据寄存器和滑动端计数寄存可以由用户直接写入和读出。滑动端计数寄存器的内容控制滑动端在电阻阵列中的位置。数据寄存器的内容可以传输到滑动端计数寄存器以设置滑动端位置,当前滑动端的位置也可以传输到任何与之联系的数据寄存器中。滑动端计数寄存器是易失性的,器件上电时,滑动端计数寄存器自动的装入数据寄存器0(R0)中的值。四个数据寄存器是非易失性的,如果在应用中不需要对电位器有多种设置保存时,可以用作通用存储单元,用来保存系统参数或用户数据。

 

 

X9241内部有一个特殊的机制,可以把相邻的数字电位器逐个串联。允许多达253个不同抽头位置(当把全部DCP逐个串联的时候)。如所示,我们将POT1和POT2(X9241内部相邻的两个DCP)串连起来,用POT0为其提供VH(可以调节的),用POT3提供VL(可以调节的)。那么我们就得到了如前面所述原理一样的电路图。

 

 

POT0和POT3为POT1-2(POT1和POT2串连以后的叫法)设置端电压。也必须保证POT1和POT3始终为“1”个位置间隔,那么就有63种不同的电压间隔施加到POT1-2上。随着POT1-2的滑动端位置向上或者向下移动到端点时,POT0和POT3的位置也要在必要时进行调整。如果POT1-2的滑动端增加到超过127时,那么POT0和POT3将增加“1”,而POT1-2的滑动端将返回到抽头0。同样,POT1-2的滑动端减低到抽头0以下时,POT0和POT3的滑动端将减小“1”,并将POT1-2的抽头设置到127。这一点,请读者在理解后面所附的程序清单时注意。

 

X9241极适用于这个任务,因为其内部正好有四个独立的DCP,并且有相邻DCP串联的机制,而且其采用I2C总线控制接口,抽头位置可以在软件中直接改变而不需要通过每个中间位置转换。

 

4是使用X9241U(49.37K、49.38K、49.32K、49.24K)器件对电路进行测试得到的相邻抽头之间的典型结果。大图表示每个抽头的滑动端电压占所加总电压的百分比,其中插图为相邻抽头之间的分辨率占所加总电压的百分比。

 

 

使用X9241实现高分辨率的软件代码

 

为了方便理解实现控制的细节,我们提供了C语言源代码(代码由Xicor公司提供,我们做了一定的修改)。用户只需要自己再编写适用于不同单片机的I2C硬件接口函数(函数名称同程序中介绍一致),在应用程序中加入我们提供的源代码,简单的调用程序中介绍的5个函数,就可以方便地实现DCP的高分辨率控制。

 

关于X9241实现高分辨率的软件源代码,工程师可到https://www.icbase. com/download/X9241.c去。


  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!