1 / 5
模块采用TI公司的TLC254312位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源,且价格适中。其特点有: (1)12位分辨率A/D转换器; (2)在工作温度范围内10μs转换时间 (3)11个模拟输入通道; (4)3路内置自测试方式; (5)采样率为66kbps; (6)线性误差+1LSB(max) (7)有转换结束(EOC)输出; (8)具有单、双极性输出; (9)可编程的MSB或LSB前导; (10)可编程的输出数据xx。
TLC2543的引脚排列如图1所示。图1中AIN0~AIN10为模拟输入端;为片选端;DIN 为串行数据输入端;DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地。 I/OCLOCK:
控制输入输出的时钟,由外部输入。 DATAINPUT:
控制字输入端,用于选择转换及输出数据格式。
2 / 5
DATAOUT:
A/D转换结果的输出端。 TLC2543的使用方法
控制字为从DATAINPUT端串行输入的8位数据,它规定了TLC2543要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。其中高4位(D7~D4)决定通道号,对于0通道至10通道,该4位分别为00~10H,当为1011~1101时,用于对TLC2543的自检,分别测试(VREF++VREF-)/
2、VREF-、VREF+的值,当为1110时,TLC2543进入休眠状态。低4位决定输出数据长度及格式,其中
D3、D2决定输出数据长度,01表示输出数据长度为8位,11表示输出数据长度为16位,其他为12位。D1决定输出数据是高位先送出,还是低位先送出,为0表示高位先送出。D0决定输出数据是单极性(二进制)还是双极性(2的补码),若为单极性,该位为0,反之为1。 转换过程
上电后,片选CS必须从高到低,才能开始一次工作周期,此时EOC为高,输入数据寄存器被置为0,输出数据寄存器的内容是随机的。
开始时,CS片选为高,I/O CLOCK、DATA INPUT被禁止,DATA OUT
呈高阻状,EOC为高。使CS变低,I/OCLOCK、DATAINPUT使能,DATAOUT脱离高阻状态。
12个时钟信号从I/OCLOCK端依次加入,随着时钟信号的加入,控制字从DATAINPUT一位地在时钟信号的上升沿时被送入TLC2543(高位先送入),同时上一周期转换的A/D数据,即输出数据寄存器中的数据从DATAOUT一位地移出。TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。在第12个时钟下降沿,EOC变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs,转换完成后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出。
3 / 5
此后,可以进行新的工作周期。TLC2543与单片机的接口和采集
程序
目前使用的51系列单片机没有SPI接口,为了与TLC2543接口,可以用软件功能来实现SPI的功能,其硬件接口如图2所示。本示例采用延时进行采集,故省去了EOC引脚的接口。 TLC2543具有4线制串行接口,分别为片选端(CS),串行时钟输入端(I/OCLOCK),串行数据输入端(DATA IN)和串行数据输出端(DATA OUT)。它可以直接与SPI器件进行连接,不需要其他外部逻辑。同时,它还在高达4MHz的串行速率下与主机进行通信。 TLC2543除了具有高速的转换速度外,片内还集成了,15路多路
开关,其中12路为外部模拟量输入,3路为片内自测电压输入。在转换结束后,EOC引脚变为高电平,转换过程中由片内时钟系统提供时钟,无需外部时钟。在AD转换器空闲期间,可以通过编程方式进入断电模式,此时器件耗电只有25pA。 TLC2543的工作过程如下: 首先在
8、12或16时钟周期里向片内控制寄存器写入8位的控制字,控制字中的2位决定时钟长度,在最后一个时钟周期的下降沿启动AD转换过程,经过一段转换时间,在随后的 8、12或16个时钟周期里,从DATA OUT脚读出数据。 控制字的前四位(D7-D4)代表11个模拟通道的地址;当其为1100-1110时,选择片内检测电压;当其为11时,为软件选择的断电模式,此时,AD转换器的工作电流只有25u
A.控制字的第3位和第4位(D3一D2)决定输出数据的长度,01表示输出数据长度为8位;11表示输出数据长度为16位;X1表示输出数据长度为12位,X可以为1或0。控制字的第2位(D1)决定输出数据的格式,0表示高位在前,1表示低位在前。控制字的第1位(D0)决定转换结果输出的格式。
4 / 5
当其为0时,为无极性输出(无符号二进制数),即模拟电压为
Vnef+,时,转换的结果为FFH;模拟电压为Vnef-时,转换的结果为00H;模拟电压等于(Vnef+-Vnef-)/2时转换的结果为8000H。
当其为1时,为有极性输出(有符号二进制数),即模拟电压高于(Vnef+-Vnef-)/2时符号位为0;模拟电压低于(Vnef+-Vnef-)/2时符号位为1;模拟电压为Vnef+时,转换的结果为7FFH;模拟电压为Vnef-时,转换的结果为800H。模拟电压为(Vnef+-Vnef-)/2时,转换的结果为000H。 三、工作时序:
以MSB为前导,用CS进行12个时钟传送的工作时序如下图所示。
1.上电时,EOC=“1”,CS=“1”
2.使CS下降,前次转换结果的MSB即A11位数据输出到Dout供读数。
3.将输入控制字的MSB位即C7送到Din,在CS之后tsu>= 1.425us后,使CLK上升,将Din上的数据移入输入寄存器。 4.CLK下降,转换结果的A10位输出到Dout供读数。 5.在第4个CLK下降时,由前4个CLK上升沿移入寄存器的四位通道地址被译码,相应模入通道接通,其模入电压开始时对内部开关电容充电。
6.第8个CLK上升时,将Din脚的输入控制字C0位移入输入寄存器后,Din脚即无效。
7.第11个CLK下降,上次AD结果的最低位A0输出到Dout供读数。至此,I/O数据已全部完成,但为实现12位同步,仍用第12个CLK脉冲,且在其第12个CLK下降时,模入通道断开,EOC
下降,本周期设置的AD转换开始,此时使CS上升。 8.经过时间tconv<=10us,转换完毕,EOC上升。
9.使CS下降,转换结果的MSB位B11输出到Dout供读数。
5 / 5
10.将新周期的输入控制字的MSB位D7送到Din,在CS下降之
处,tSU时间处由CLK上升将Din数据移入输入寄存器。11.CLK下降,将AD结果的B10位输出到Dout。 上电时,第一周期读取的Dout数据无效,应舍去。