模块采用TI公司的TLC2543 12位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源,且价格适中。其特点有: TLC2543的引脚排列如图1所示。图1中AIN0~AIN10为模拟输入端; 为片选端;DIN 为串行数据输入端;DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地。 2 TLC2543的使用方法 2.1 控制字的格式 控制字为从DATAINPUT端串行输入的8位数据,它规定了TLC2543要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。其中高4位(D7~D4)决定通道号,对于0通道至10通道,该4位分别为0000~1010H,当为1011~1101时,用于对TLC2543的自检,分别测试(VREF++VREF-)/2、VREF-、VREF+的值,当为1110时,TLC2543进入休眠状态。低4位决定输出数据长度及格式,其中D3、D2决定输出数据长度,01表示输出数据长度为8位,11表示输出数据长度为16位,其他为12位。D1决定输出数据是高位先送出,还是低位先送出,为0表示高位先送出。D0决定输出数据是单极性(二进制)还是双极性(2的补码),若为单极性,该位为0,反之为1。 2.2 转换过程 上电后,片选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 TLC2543与单片机的接口和采集程序 目前使用的51系列单片机没有SPI接口,为了与TLC2543接口,可以用软件功能来实现SPI的功能,其硬件接口如图2所示。本示例采用延时进行采集,故省去了EOC引脚的接口。 一、引脚: TLC2543为20脚DIP封装,引脚图如下图所示。 TLC2543具有4线制串行接口,分别为片选端(CS),串行时钟输入端(I/O CLOCK),串行数据输入端(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脚读出数据。 控制字的定义见下表:
控制字的第3位和第4位(D3一D2)决定输出数据的长度,01表示输出数据长度为8位;11表示输出数据长度为16位;X1表示输出数据长度为12位,X可以为1或0。 控制字的第2位(D1)决定输出数据的格式,0表示高位在前,1表示低位在前。 控制字的第1位(D0)决定转换结果输出的格式。当其为0时,为无极性输出(无符号二进制数),即模拟电压为Vnef+,时,转换的结果为FFFFH;模拟电压为Vnef-时,转换的结果为0000H;模拟电压等于(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供读数。 10.将新周期的输入控制字的MSB位D7送到Din,在CS下降之处,tSU时间处由CLK上升将Din数据移入输入寄存器。 11.CLK下降,将AD结果的B10位输出到Dout。 上电时,第一周期读取的Dout数据无效,应舍去。 |
详情:http://hi.baidu.com/ylranscj/blog/item/e41c659b074c65bdc9eaf4cc.html
文章评论(0条评论)
登录后参与讨论