TLV2544/2548多通道12位串行A/D转换器的原理与应用
0111b | 7000h | 选择模拟通道7 | N/A |
1000b | 8000h | 选择模拟通道8 | SW电源跌落(模拟+参考) |
1001b | 9000h | 读CFR寄存器数据到SDO D(11~0) | |
1010b | A000h plus data | 将低12位数据写CFR | |
1011B | B000h | 测试选择,电压为(REFP+REFR)/2 | |
1100b | C000h | 测试选择,电压为REFM | |
1101b | D000h | 测试选择,电压为REFP | |
1110b | E000h | FIFO读,将FIFO内容送SDO D(15~4),D(3~0)=0000 | |
1111b | F000h plus data | 保留 |
如果前高4位输入数据被译码为转换命令之一,那么采样周期开始。一般有两种采样方式:正常采样和扩展采样。正常采样实际上是采用软件启动A/D变换方式,当 A/D转换器正常采样时,采样周期是可编程的,它可以是12SCLKs(短周期采样)或24SCLKs(长周期采样)。当SCLK高于10MHz或输入源电阻较高时,长周期采样可使被采样的输入模拟信号达到0.5LSB的精度。如果正常采样达不到所要求的A/D变换精度,则应采用扩展采样,扩展采样采用硬件启动A/D变换,在引脚CSTART输入一个宽度大于800ns的负脉冲信号后,A/D转换开始。CSTART的下降沿即为采样周期的开始,CSTART的上升沿是采样周期的结束和转换的开始。
3 TLV2544的转换模式
TLV2544 具有四种转换模式,分别为:单次模式、重复模式、扫描模式和重复扫描模式。可用模式00、01、10、11表示。每种模式的工作稍有区别,这取决于转换器如何采样和采用哪一种接口。转换的触发信号可以采用有效CSTART(扩展采样)、CS(正常采样、SPI接口)或FS(正常采样,TMS320系列 DSP接口)模式。当FS用作触发信号时,CS可保护一直有效而不需要通过触发顺序跳转。不同类型的触发信号不应在重复模式和扫描模式中混合使用。当 CSTART用作触发信号时,转换开始于CSTART的上升沿。如果一个有效CS或FS用作触发信号,则转换将在第16个或第28个SCLK的边沿开始。
TLV2544/2548 的工作时序分为二大类:转换和无转换。无转换周期为读和写周期(配置),这些周期都不执行转换,而转换周期有四种转换模式的周期,图3、图4分别给出了 TLV2544/2548的CFR写周期(FS=1)和模式00时单次扩展采样(使用FS信号,FS脚连至TMS320系列DSP)时序图。
另外,TLV2544/2548还具有一个内置基准,其电平可编程为2V或4V。如果采用内部基准,REFP就被设为2V/4V,而REFM则设为0V。如果基准源编程为外部,那么也可通过两个基准输入脚REFP和REFM使用外部基准。模拟输入、外部基准的最大或最小值不应超过正电源或低于GND。正输入信号等于或高于REFP时,数字输入为满度,而在输入信号等于或低于REFM时为零。
器件的上电和初始化要求先通过向TLV2544/2548写入A000h的方法确定处理器的类型,然后对器件进行编程。器件在上电后或从断电方式中恢复后的第一次转换无效。
4 应用
TLV2544 和微处理器之间的数据传输最快和最有效的方法是用串行外设接口(SPI),但这要求微带有SPI接口能力。对不带SPI或类似接口能力的微处理器,需用软件合成SPI操作来和TLV2544连接。图5为TLV2544和单片机AT89C2051的接口电路,因为是与微处理器连接,所以不用FS端(接至高电平)。该电路采用内部基准,REFP与REFM之间接0.1μF和10μF两个退耦电容。TLV2544的SDI、SCLK、EOC/INT、CS端由单片机的双向I/O口中的P1.3、P1.4、P1.5和P1.6提供。转换结果的输出(SDO)数据由口1的P1.2接收。电路使用扩展采样方式, CSTART端接P1.7,通过硬件来控制采样与转换。其接口软件由一个主程序和一个子程序组成。主程序首先对P1口初始化,后对TLV2544进行编程以确定的工作方式。子程序“SPI-IO”用来模拟SPI的I/O操作,SPI功能用累加器A和带进位的左循环移位指令(RLC)模拟SPI移位寄存器的操作来实现。程序如下:
ORG 0000H
AJMP START
ORG 0030H
START:MOV P1,#0FFH
MOV P3,#0FFH
CLR EA
CLR ET1
CLR P1.4
SETB P1.6
CONFIG:MOV R1,#0A0H
ACALL SPI_IO
MOV R1,#00H
ACALL SPI_IO
SETB P1.6
MOV R1,#10101000B;
ACALL SPI_IO
MOV R1,#00000000B
ACALL SPI_IO
SETB P1.6
S/R:MOV R1,#ACALL SPI_IO
RESULT
MOV R1,#00H
ACALL SPI_IO
MOC R3,A;LOW BYTE RESULT
SETB P1.6
NOP
CLR P1.7/CSTART LOW,START SAMPLING
MOV R6,#08H
DELAY:NOP
NOP
NOP
DJNZ R6,DELAY
SETB P1.7;
JB P1.5,$;/INT
SETB P1.6
?
?对转换结果的处理
?
AJMP S/R
SPI_IO;CLR P1.6
CLR P1.4
MOV R0,#08H
MOV A,R1
SPI_IO1:MOV C,P1.2
RLC A
MOV P1.3,C
SETB P1.4
CLR P1.4
DJNZ R0,SPI_IO1
RET
- TLV2544/2548多通道12位串行A/D转换器(01-25)
- 基于UCC3895与PIC单片机的智能充电器的设计(04-17)
- 基于TLV1562的四通道高速实时数据采集系统的设计(01-09)
- 看一款糟糕的 20W 放大器设计如何毁掉整个扬声器系统(06-25)
- 基于TLV1562的四通道高速实时数据采集系统(12-31)