资讯详情

可编程数字电位器在AVR单片机中的应用

1 本文引用地址:http://www.eepw.com.cn/article/90326.htm

AVR嵌入式单片机具有丰富的硬件和软件资源,包括串行I2C接口可以满足许多应用程序的要求,两个AVR单片机通过I2C直接连接总线可实现单片机相互通信;AVR单片机也可以与任何单片机相匹配I2C在没有其他硬件电路支持的情况下,设直接连接。而X9221系列可编程数字电位器广泛应用于智能测试设备中I2C总线可以简单地构成单片机与各种外设甚至计算机之间的通信,建立友好的人机界面。硬件设计简单灵活,所有设备只需要SDA和SCL信号线分别并联拉电阻,有助于提高设备的自动化水平、可靠性、稳定性和电气装配工艺。AVR单片机和X9221系列可编程数字电位器内置E2ROM为用户保留一些工艺参数非常方便;X9221系列电位器0~63级的变化可以将电位器调整到手动无法达到的平滑水平,不会产生噪声,使用寿命长,不受机械振动污染的影响。

2 X921系列数字电位介绍

2.11电气特性及硬件结构原理

X9221系列电位器有15种规格型号,双列直插DIP20和表面贴装SOIC20两种封装。电源电压民品级、工业级为4.5~5.5V,军品级为2.7~5.5V;一组包装芯片中有两个数字电位器,见图1,X9221系列电位器封装及引脚功能。内置的E2ROM单元,可以在掉电时将数据很好地保存,上电时自动加载到自己的RAM单元、电位器接口标准I2C总线,数据寄存器可以通过I2C读写总线;电位器滑动端;(VW0/RW0,VW1/RW1)相当于普通电位器中间的抽头,无摩擦"触点"。

abb56ad2f087ba7c7e9ff327c664b32a.png

X9221系列电位器总电阻配置有3种阻值2 kΩ、10kΩ、50kΩ,用户可以根据自己的设计需要进行选择。每个芯片都有A0~A三四位二进制编程器件地址区分I2C因此,一条总线最多可以接入16个外设X9221器件。内部有两组寄存器"DATA"和"WCR",他们的访问由串行数据线上的命令确定。电阻阵列可码,电阻阵列可以有64种状态,0~63种状态的连续变化相当于电位器中心的抽头从普通电位器的一端滑动到另一端;所有的存储器都可以通过I2C双向操作总线,可读可写。

"在线"实时调节电位器"中间抽头位置"通过三种方法: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所有指令9221所有指令的正常执行至少需要三个步骤:①从机地址通过数据线编写;②写指令;③写数据。为了完成寄存器的读写,这四个指令适用于X9221三字节时序格式操作。如果是写在WCR在类型的寄存器中,数据丢失后丢失,写在DATA在类型的寄存器中,数据存在于断电后;串行数据线上至少需要两个步骤才能正常执行全球转换的四个指令:①从机地址通过数据线编写,②编写指令,以完成所有寄存器之间的数据交换,适用于X9221字节时序格式操作" /-"指令相当于"在线"上下调节电位器中间的抽头更直观,易于理解。" /-"指令仅访问WCR如果数据线,类型寄存器只写操作SDA保持高电平,下一个时钟信号SCL周期到来,WCR寄存器数据" 1"。" /-"指令仅访问WCR如果数据线,类型寄存器只写操作SDA保持高电平,下一时钟信号SCL周期到来,WCR寄存器数据" 1"。如果数据线SDA保持低电平,下一时钟信号SCL周期到来,WCR寄存器数据"-1"。然而,无论命令是什么,只要写DATA类型寄存器(芯片中的E2ROM存储单元),写作操作费用约10元 ms要完成时间,在设计通信软件时一定要特别注意。

3 AVR硬件和软件设计

3.1 X9221数字电位器AVR单片机硬件接口系列

X9221数字电位器AVR如图3所示。硬件连接非常简单,所有设备只需串行数据线SDA、串行时钟线SCL相连接并接10 kΩ左右上拉电阻即可。连接在I2C总线上的逻辑电平为"线与"逻辑关系,只要有设备降低,总线就会出现低电平,当所有设备总线都悬挂时,就会出现高电阻状态。主机发送模式是将数据写入其中一个外设,首先产生启动信号"START","START"发送成功后,将设备地址发送到外设。地址发送成功后,数据可以是1~N发送所有数据的字节,最后发送"STOP"完成主机写作过程。主机接收模式相同,过程相似。对X9221地址发送完成后,必须发送指令模式X上面提到了9221目前会做什么,指令的含义是指令模式后的一组数据,其他过程是一样的。

为了使I2C总线处于正常状态,所有总线上的设备都必须加电。如果有设备不加电,总线将处于异常工作状态。当总线上有几个设备同时想要发送数据时,在竞争中发现仲裁失败后,应立即返回从机状态或放弃总线请求,以确保获得总线控制的主机正常发送数据;不同的主机有不同的总线时钟频率SCL信号"线与"确保高电平是高电平中最短的,低电平是低电平中最长的,也就是说,协议"照顾"速度最慢的设备;所有收集在总线上的传输必须包含相同数量的数据包,否则不能定义多主机系统中的仲裁结果,应特别注意设计。

3.2 X9221数字电位器AVR单片机通信软件设计系列

以下是查询原因atmega16单片机向X9221发送数据的例程需要注意TWINT用软件写标志"1"清零(清除硬件位置标志),当前发送完成后,硬件会自动TWINT标志置"1",TWINT硬件不能清除标志;每次检查TWINT标志判断当前发送是否完成,读取状态寄存器TWSR判断发送的数据是否正确。

START:

LDI R16,$A4;设置AVR单片机I2C总线控制寄存器

OUT TWCR,R16;软件清除TWINT标志WAIT1:

IN R16,TWCR;读取控制寄存器TWCR

SBRS R16、7;等待硬件位置TWINT标志

RJMP WAIT1;TWINT标志没有位置,等待循环检查

IN R16,TWSR;读取状态寄存器TWSR

ANDI R16,$F8.屏蔽无效位

CPI R16,$08:检查"START"发送信号是否成功

BRNE ERROR;"START"信号发送失败,转入错误处理

LDI R16,$56;发送X9221器件地址56="5"器件标识,"6"器件地址

OUT TWDR,R16

LDI R16,$84

OUT TWCR,R16;软件清除TWINT标志

IN R16,TWSR

ANDI R16,$F8

CPI R16,$18;检查X9221装置地址是否成功发送?

BRNE ERROR;X9221装置地址发送不成功,转入错误处理

LDI R16,$2F;设置发送的数据(0~63有效,例中47)

OUT TWDR,R16.数据输出到数据寄存器TWDR

LDI R16,$84

OUT TWCR,R16;软件清除TWINT标志;检查数据"2F"与上述循环是否继续完成类似

.

.

LDI R16,$94;发送"STOP"信号,一次$2F完成数据发送

OUT TWCR,R16

ERROR:···;错误处理过程

END

在此例程中,设备地址对X9221为56,其中"5"与其他类型的设备不同,设备本身是固有的"6"设计硬件时规定,可以"0~F"任何十六进制值;例程AVR单片机仅作为主机使用X事实上,从9221发送数据X在9221中读取当前数据也是如此。本例程采用查询方式,程序繁琐,但如果采用中断方式,程序会简单得多,只要标记SREG寄存器中"I"位和I2C寄存器中的总线控制"TEWIE"置"1",也就是说,有效,当"TWINT"标志置"1"立即产生中断请求,表明完成当前数据发送,可以准备下一个字节数据发送或停止发送。 4 X可编程数字电位器在半导体专用设备中的应用研究

4.1用于测量微小电压的变化

图4为微小电压测量电路模型,用于检测吸头上是否有芯片吸附,吸头是否堵塞,或芯片是否丢失。当内径约为0时.1~0.15 mm当吸头吸附芯片时,如果芯片透明,光敏传感器检测到的电压变化较小,一般为10~50 mV同样,当吸头吸附一个小芯片时,气路真空的压力也会发生变化,这种压力变化由传感器电压输出。为了改变电器"中间抽头"以便与传感器检测输入电压相匹配,计算机通过RS232接口向单片机发送数据,单片机收到数据后转发给X9221可编程数字电位器以改变基准电压值。比较基准电压U∑+按下式确定:

U∑+是LM393运放同相输入端电压(在这种状态下,考虑到前级传感器输出基本上处于放大状态,所用传感器电源电压为+5 V,最高输出电压按3.5 V计算)

N是0~63共64种状态变化值,那么,当U∑+从0~3.5 V变化时,最小分辨率可以达到55 mV左右,用手工进行一般电位器调节达到这样的分辨率是难以掌控的。

基准电压(即U∑+)通过机器的人机界面可以"直接调节",如果将电位器数值进行标定,随时还可以看到当前的基准电压大小。传感器输出电压与基准电压比较,使电压比较器输出反应当前的状态,不同的时刻高低电平代表不同的意义,如"吸头阻塞"、"芯片丢片"、"真空不足"等。

4.2测量微小电流变化

图5是微小电流测量电路模型,用于引线键合设备中去检测断线、连线、短路等情况,被测器件是一个半导体元件,当在焊盘上键合上一根金线时,通过检测漏电流来判断这条金线与芯片键合过程中是否存在"断线"、"连线"、"短路"等情况。计算机通过界面操作发送指令以改变X9221可编程数字电位器的阻值,进而改变电压源的放大倍数以改变加在被测元件的电压,从而达到适应不同品种的半导体器件性能要求。

设:信号源的输出为Us,运放LM324输出为U0,X9221电阻为Rx,被测元件阻抗为Rz,被测元件流过的漏电流为I0,则用以下两个表达即可表达它们之间的关系:

通过主机界面改变Rx可编程电阻值,即可以改变U0,U0的改变等于改变了I0,而I0的改变等于改变了流过被测器件的最大允许电流,从而保护了被测器件不会因为检测漏电流而损坏,通过检测被测器件上施加的电压和U0之差值即可判断漏电流大小,从而检测金线是否与被测器件焊盘点键合上。I0是根据不同器件在工艺参数上需要经常调节的量,以适应不同场合的要求。

5 结束语

可编程数字电位器的最大优点在于直接可以和带有I2C总线单片机相连而无需特殊设计,上位机可以随机读取电位器当前设定值。利用它的这些优点,可以提高设备仪器的智能化水平,特别是在带有I2C总线的嵌入式单片机中应用十分灵活简单。随着电子技术的飞速发展,人们对设备、仪器以及家用电器的追求已不再仅仅满足功能使用上,而是在产品应用的人性化上要求越来越高,由于大多数自动化设备上,都具有友好的人机界面,人们通过计算机界面想完成所有操作,比如调节一个电位器以调节电流、电压或者电机速度、转矩、频率等物理量,利用可编程数字电位器完全可以通过界面完成。适时采用可编程数字电位器不但可以降低成本、简化电路设计、提高可靠性,而且可以使设计更加人性化。另外,AVR单片机可以通过JTAG接口完成仿真调试、下载程序;片内有FLASH和E2ROM存储单元,有标准的串行接口、I2C总线接口、SPI接口增强了其硬件功能;支持C语言编程,便于掌握C语言者无需太多地了解硬件就能进行一些编程。本文探讨了AVR单片机、X9221可编程数字电位器及其接口和软件编程的一些实际应用,许多问题是笔者在应用中的经验,可能会有些错误,希望读者批评指正。

标签: 电位器调到零301可调电位器电位器的类型3590电位器型号规格75mm直滑电位器4联双阻值电位器工作原理

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台