高精度AD转换器LTC1606及其应用
在用DSP对LTC1606进行控制时,可用DSP的一次“假写”操作将WE引脚置低,并使LTC1606 R/ C引脚变低,从而启动LTC1606进行模数转换。在转换结束时,再由状态引脚BUSY的上升沿信号产生DSP的外部中断XINT1所需的中断源信号,从而在DSP的中断程序中读出模数转换结果,并进行相应处理,然后启动下一次模数转换。值得注意的是,TMS320LF2407A的XINT1外部中断的极性是可编程的,在该系统中,必须将其编程为上升沿触发。
图3所示为TMS320LF2407A控制LTC1606进行一次模数转换的时序图,在编制TMS320LF2407A的数据采集程序时,采用汇编语言具有较高的效率,下面给出和数据采集相关的初始化程序和读取模数转换结果的中断子程序:
(1) 数据采集初始化子程序
ADINIT
SETC INTM ;关总中断
CLRC SXM
CLRC OVM
CLRC CNF ;B0区被配置为数据空间
SPLK #0E8H,WDCR ;不使能WDT
LDP #0E1H
LACL MCRA
OR #04H
SACL MCRA ;配置串行口引脚为特殊功能:XINT1
LDP #0E0H ;指向7000h~7080h区
SPLK #0005H,XINT1CR ;使能XINT1中断,并将XINT1设为高优先级,同时使其在上升沿时产生中断
LDP #0H
SPLK #0001H,IMR ;使能中断第1级INT1
SPLK #0FFFFH,IFR ;清全部中断标志
CLRC INTM ;开总中断
RET
javascript:window.open(this.src);" style="cursor:pointer;"/>
(2) 据采集中断子程序
GISR1: ;优先级INT1中断入口保护现场
LDP #0E0H
LACC PIVR,1 ;读取外设中断向量寄存器(PIVR),并左移一位
ADD #PVECTORS ;加上外设中断入口地址
BACC ;跳到相应的中断服务
子程序
ADREAD_ISR: ;读取模数转换结果中断程序
LDP #0H
IN ADRESULT,0FFFFH ;读取A/D转换结果,将其存于变量ADRERULT中
CALL DATAMANAGE ;调数据处理函数
LDP #0H
SPLK #0FH , STARTAD
OUT STARTAD , 0FFFEH ;启动A/D转换
CLRC INTM ;开总中断,因为一进中断就自动关闭总中断
RET ;中段返回
4 结束语
由模数转换器LTC1606和TMS320LF2407A构成的数据采集电路中,其外围电路和接口均很简单,利用LTC1606的高分辨率和DSP的高速性能可满足高精度的数据采集要求,并能完成大量复杂的数据处理工作,从而兼顾了数据采集处理的高精度和高速性,因此,具有广泛的适用范围。