1.概述
A/D、D/A转换器是过程及仪器仪表、设备等检测与控制装置中应用比较广泛的器件。随着大规模集成电路技术的发展,各种高精度、低功耗、可编程、低成本的A/D转换器不断推出,使得微机控制系统的电路更加简洁,可靠性更高。
TLC2543与外围电路的连线简单,三个控制输入端为CS(片选)、输入/输出时钟(I/OCLOCK)以及串行数据输入端(DATAINPUT)。片内的14通道多路器可以选择11个输入中的任何一个或3个内部自测试电压中的一个,采样-保持是自动的,转换结束,EOC输出变高。
TLC2543的主要特性如下:
●11个模拟输入通道;
●66ksps的采样速率;
●最大转换时间为10μs;
●SPI串行接口;
●线性度误差最大为±1LSB;
●低供电电流(1mA典型值);
●掉电模式电流为4μA。
2.TLC2543引脚功能与接口时序
2.1TLC2543引脚排列
TLC2543的引脚排列如图1所示。引脚功能说明如下:
AIN0~AIN10:模拟输入端,由内部多路器选择。对4.1MHz的I/OCLOCK,驱动源阻抗必须小于或等于50Ω;
CS:片选端,CS由高到低变化将复位内部计数器,并控制和使能DATAOUT、DATAINPUT和I/OCLOCK。CS由低到高的变化将在一个设置时间内禁止DATAINPUT和I/OCLOCK;
DATAINPUT:串行数据输入端,串行数据以MSB为前导并在I/OCLOCK的前4个上升沿移入4位地址,用来选择下一个要转换的模拟输入信号或测试电压,之后I/OCLOCK将余下的几位依次输入;
DATAOUT:A/D转换结果三态输出端,在CS为高时,该引脚处于高阻状态;当CS为低时,该引脚由前一次转换结果的MSB值置成相应的逻辑电平;EOC:转换结束端。在最后的I/OCLOCK下降沿之后,EOC由高电平变为低电平并保持到转换完成及数据准备传输;
VCC、GND:电源正端、地;
REF+、REF-:正、负基准电压端。通常REF+接VCC,REF-接GND。最大输入电压范围取决于两端电压差;
I/OCLOCK:时钟输入/输出端。
2.2TLC2543的工作时序
TLC2543每次转换和数据传送使用16个时钟周期,且在每次传送周期之间插入CS的时序。时序如图2所示。
从时序图可以看出,在TLC2543的CS变低时开始转换和传送过程,I/OCLOCK的前8个上升沿将8个输入数据位键入输入数据寄存器,同时它将前一次转换的数据的其余11位移出DATAOUT端,在I/OCLOCK下降沿时数据变化。当CS为高时,I/OCLOCK和DATAINPUT被禁止,DATAOUT为高阻态。
3.TLC2543与80C31的连接
3.1硬件接口
由于MCS-51系列单片机不具有SPI或相同能力的接口,为了便于与TLC2543接口,采用软件合成SPI操作,为减少数据传送速受微处理器的时钟频率的影响,尽可能选用较高时钟频率。接口电路如图3所示。
TLC2543的I/O时钟、数据输入、片选信号由P1.0、P1.1、P1.3提供,转换结果由P1.2口串行读出。
3.2接口程序
设通道/方式控制字存放在R4中,程序在读出前一次转换结果的同时,将该通道/方式控制字发送到TLC2543中去,转换结果存放在相邻地址的存储器中。存储器地址从30H~45H,且高字节在前,低字节在后。
ORG100H
START:MOVSP,#50H;堆栈指针初始化
MOVP1,#04H;P1口引脚初始化
CLRP1.0
SETBP1.3
ACALLTLC2543
ACALLSTORE
JMPSTART
TLC2543:MOVA,R4
CLRP1.3
JBACC.1,LSB;如果A的位1为1,先做低字节
MSB:MOVR5,#08
LOOP1:MOVC,P1.2;数据位读入进位位RLCA
MOVP1.1,C;输出方式/通道位
SETBP1.0;产生I/O时钟
CLRP1.0
DJNZR5,LOOP1;输入/输出另一位
MOVR2,A;高字节送入R2
MOVA,R4
JBACC.1,RETURN
LSB:MOVR5,#08
LOOP2:MOVC,P1.2
RLCA
MOVP1.1,C
SETBP1.0
CLRP1.0
DJNZR5,LOOP2
MOVR3,A
MOVA,R4
JBACC.1,MSB
RETURN:RET
STORE:MOVA,R4
ANLA,#0F0H
SWAPA
MOVB,#02
MULAB
ADDA,#030H
MOVR1,A
MOVA,R2
MOV@R1,A
INCR1
MOVA,R3
MOV@R1,A
RET
END
以上程序用累加器和带进位的左循环移位的指令来合成SPI功能,读入转换结果的第一个字节的第一位到进位(C)位。累加器内容通过进位位左移,通道选择和方式数据的第一位通过P1.1输出。然后由P1.0先高后低的翻转来提供串行时钟。这个时序再重复7次,完成转换数据的第一个字节的传送。第二个字节由重复8次时钟脉冲和数据传送的整个序列来传送。