数控电位器与Plcl6cxx单片机的接口技术
1x9268器件描述
1X9268是Xicor公司生产的,把2个E2POT数控电位器集成在单芯片的CMOS集成电路上的一种数控电位器。它包含两个电阻阵列,每个电阻阵列包含255个电阻单元,在每个单元之间和二个端点都有可以被滑动单元访问的抽头点。滑动单元在阵列中的位置,由用户通过二线串行总线接口控制。每个电阻阵列,与1个滑动端计数寄存器(WCR)和4个8位数据寄存器(R0~R3)联系在一起,这4个数据寄存器可以由用户直接写入或读出。滑动端计数寄存器的内容,控制滑动端在电阻阵列中的位置。
数据寄存器可以由用户读出和写入。数据寄存器的内容可以传输到滑动端计数寄存器,以设置滑动端的位置。当前滑动端的位置可以被传输到与它相联系的任一个数据寄存器。X9268功能方框图如图l所示。
2 X9268的工作原理
X9268支持双向的定向规约,是一个从属器件。它的高四位地址为0101,即为器件的类型辨识符,低四位地址由A3~AO输入端的状态来定义。在SDA线上的数据,只有在SDL为低时才能改变状态。当SCL为高时,SDA状态的改变用来表示开始和终止条件。开始条件,SCL为高时,SDA由高到低的跳变;终止条件,SCL为高时,SDA由低到高的跳变。送给X9628的所有命令都由开始条件引导,在其后输出X9268的从器件地址。X9268把串行数据流与该器件的地址比较,若比较成功,则作出一个应答响应。送到X9268的下一个字节包括指令及寄存器指针的信息。高四位为指令,接着二位(RB和RA)用来选择4十寄存器中的一个,接下来的一位始终为O,最低位(PO)用来选择2个电位器中的一个。
9条指令中的4条以发送指令字节作为结束。这些二字节指令在WCR与数据寄存器中的一个之间交换数据;4条指令位三字节指令在主机与X9268之间传输数据,其中包括主机与WCR之间传输数据和主机与其中的一个数据寄存器之间传输数据;还有一条增加/减少指令。三类指令的指令序列及文字说明见图2及表1。
X9268包括2个WCR,每个E2POT电位器各有一个,WCR可以被认为是一个8位并行和串行装载的带有译码的计数器,用来选择电阻阵列的256选1开关。WCR是一个易失性存储器,若断电其内容将失去。虽然该寄存器将在上电时自动装入RO中的值,但必须注意这个值可能与断电时的值不同。
每个电位器有4个非易失性数据寄存器。这些寄存器可以被主机直接读出或写入,而且数据可以在4个数据存储器中任一个和WCR之间传输。需注意的是,在这些数据寄存器中任何一个改变数据的操作都是非易失性的操作,将花去10ms的时间(最大)。
3 X9628与Plcl6cxx单片机的接口电路及程序
图3为PIC16C72与X9628的接口电路,与此对应,给出了X9268所有命令的程序清单。在MAIN主函数中,先将40写入E2POT#2的WCR(即滑动端位置为#40),然后将滑动端抽头减少15个脉冲的位置,即此时WCR的值减少到25(即滑动端位置为#25)。随后,其它命令也都是相同的过程。
程序清单见本刊网络补充版www.dpj.com.cn。(单片机为P1C16C72,晶振频率为4CMHz)
数控电位器 Plcl6cxx单片机 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)