可编程数字电位器与AVR单片机的通信说明
1 引言
AVR嵌入式单片机具有丰富的硬件、软件资源,其中的串行I2C接口能满足很多应用场合的要求,两个AVR单片机通过I2C总线直接连接就可实现单片机相互通信;AVR单片机还可以和任何具有I2C总线接口的外设直接连接而无须其它硬件电路支持。而X9221系列可编程数字电位器在智能测试设备上应用非常广泛,通过I2C总线可以简单地构成单片机与各种外设之间乃至与计算机之间的通信,建立友好的人机界面联系。硬件设计简单、灵活,只需要将所有设备的SDA和SCL信号线分别并联在一起并加上拉电阻即可,有助于提高设备的自动化水平、可靠性、稳定性及电气装配的工艺性。AVR单片机和X9221系列可编程数字电位器都有内置的E2ROM单元,可以非常方便地为用户保留一些工艺参数;X9221系列电位器0~63级的变化可以将电位器调节到手动无法实现的平滑级别,调节过程中不会产生噪声且寿命长、不受机械振动污染潮湿影响等。
2 X9221系列数字电位器介绍
2.1电气特性及硬件结构原理
X9221系列电位器共有15种规格型号,有双列直插DIP20和表面贴装SOIC20两种封装。电源电压民品级、工业级为4.5~5.5V,军品级为2.7~5.5V;一组封装芯片内有两个数字电位器,参见图1,X9221系列电位器封装及引脚功能。内置的E2ROM单元,可以在掉电时将数据很好地保存,上电时自动加载到自己的RAM单元,电位器接口是标准的I2C总线,其中的数据寄存器可通过I2C总线进行读写操作;电位器滑动端(VW0/RW0,VW1/RW1)相当于普通电位器中间抽头,是无摩擦"触点"。
X9221系列电位器总电阻配置有3种阻值2 kΩ、10kΩ、50kΩ,用户可根据自己的设计需求来选型。每一个芯片有A0~A3四位二进制编程的器件地址以区分I2C总线上接入的不同外设,因此,一条总线上最多可接入16个X9221器件。器件内部有两组类型的寄存器"DATA"和"WCR",他们的访问则由串行数据线上的命令字来确定。电阻阵列通过内部编码可以有64种状态,0~63种状态的连续变化,相当于电位器中心抽头从普通电位器的一端滑动到另一端;所有的寄存器都可以通过I2C总线进行双向操作,即可读可写。
"在线"实时的调节电位器"中间抽头位置"可以有3种方法:通过I2C总线向WCR寄存器写数据(串行加载)、通过对相应的DATA类寄存器直接写数据(并行加载)、以及增量减量命令(下面会讨论到)直接写数据;概念上电位器"中间抽头位置"可以由"WCR"寄存器来替代,其另一类寄存器可以由"DATA"寄存器来替代。
2.2数字电位器I2C总线时序及指令
2.2.1一般I2C总线通信时序
X9221系列数字电位器其接口是按标准的I2C总线设计的,因此,硬件连接非常简单,只需把串行时钟线SCL、串行数据线SDA与之对应相连即可。其通信完全符合I2C总线协议要求,串行时钟线SCL、串行数据线SDA按照规定的协议产生一序列脉冲串,进而完成传输一组数据的任务。参见图2 I2C总线通信时序。
X9221系列数字电位器完全以从机的身份出现在I2C总线上,它不可以主机的身份出现在I2C总线上,也就是说对其寄存器的读写操作都受控于主机,这一点一定要在硬件和软件设计上留意。当主机发出"START"信号后,从机(X9221A)芯片即将拉高SDA线,表明放弃数据线权限由主机控制,主机发送一个字节后再由从机(X9221A)芯片自动拉低SDA线,表明数据收到,如果此时从机将SDA线拉不低,表明从机没有正常接受数据,主机必须启动下一个写周期。可以理解为主机每发送一个字节后都会等待一个ACK回答响应信号,否则,主机认为从机(X9221A)没有正常接收数据。
2.2.2 X9221指令表
表1是X9221所有指令说明,其中前4种指令的正常执行需要在串行数据线上至少有3个步骤:①通过数据线写从机地址;②写指令;③写数据。才能完成一个寄存器的读或写,这4种指令适用于X9221三字节时序格式操作。如果是写在WCR类型的寄存器中,掉电后数据丢失,写在DATA类型的寄存器中,掉电后数据存在其中;全局转换的4种指令的正常执行需要在串行数据线上至少有2个步骤:①通过数据线写从机地址、②写指令,才能完成所有寄存器之间的数据交换,适用于X9221两字节时序格式操作;最后一种"+/-"指令相当于"在线"上下调节电位器中间抽头,比较直观,很好理解。"+/-"指令仅访问WCR类型寄存器,且只是写操作,如果数据线SDA保持高电平,下一个时钟信号SCL周期到来,WCR寄存器数据"+1"。如果数据线SDA保持低电平,下一个时钟信号SCL周期到来,WCR寄存器数据"-1"。然而,不管哪种命令,只要写DATA类型的寄存器(芯片内的E2ROM存储单元),写操作要花费大约10 ms时间才能完成,在设计通信
- 可编程数字电位器在atmega16单片机中的应用(12-22)
- 锁相环控制及初始化简析(08-27)
- 基于AVR单片机的串口转FSK的通信模块设计(01-23)
- 基于AVR单片机的服装压力检测系统设计(05-03)
- 基于Atmel AVR单片机的无线图像侦检系统(10-19)
- avr单片机串口多机通讯及实例(12-03)