16位Σ-Δ A/D转换器AD7705与微控制器的接口设计
摘要:介绍了16位Σ-ΔA/D转换器AD7705的特点、结构和应用,并举例说明这种串行输入/输出的A/D转换器与微控制器的一般接口方式,指出了微控制器对AD7705片内寄存器编程的关键,并且给出了数据手册中没有的C51接口读写程序。 关键词:Σ-Δ A/D转换器 数字滤波器 增益可编程放大器 AD7705器件包括由缓冲器和增益可编程放大器(PGA)组成的前端模拟调节电路,Σ-Δ调制器,可编程数字滤波器等部件。能直接将传感器测量到的多路微小信号进行A/D转换。这种器件还具有高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压低功耗等特点,非常适合仪表测量、工业控制等领域的应用。它采用三线串行接口,有两个全差分输入通道,能达到0.003%非线性的16位无误码数据输出,其增益和数据输出更新率均可编程设定,还可选择输入模拟缓冲器,以及自校准和系统校准方式。工作电压3 V或5 V。3 V电压时,最大功耗为1 mW,等待模式下电源电流仅为8 μA。
1 内部结构 AD7705是完整的16位A/D转换器。内部结构如图1。若外接晶体振荡器、精密基准源和少量去耦电容,即可连续进行A/D转换。它采用了成本较低但能获得极高分辨率的Σ-Δ转换技术,可以获得16位无误码数据输出。这一点非常符合对分辨率要求较高但对转换数字要求不高的应用,例如数字音频产品和智能仪器仪表产品等。下面对该器件几个重要部分和特性作简要说明。 增益可编程放大器AD7705包括两个全差分模拟输入通道。片内的增益可编程放大器PGA可选择1、2、4、8、16、32、64、128八种增益之一,能将不同摆幅范围的各类输入信号放大到接近A/D转换器的满标度电压再进行A/D转换,这样有利于提高转换质量。当电源电压为5 V,基准电压为2.5 V时,器件可直接接受从0~20 mV至0~2.5 V摆幅范围的单极性信号和从0~±20 mV至0~±2.5 V范围的双极性信号。必须指出:这里的负极性电压是相对AIN(-)引脚而言的,这两个引脚应偏置到恰当的正电位上。在器件的任何引脚施加相对于GND为负电压的信号是不允许的。输入的模拟信号被A/D转换器连续采样,采样频率fS由主时钟频率fCLK和选定的增益决定。增益(16~128)是通过多重采样并利用基准电容与输入电容的比值共同得到的。
数字滤波和输出更新速率模拟信号由Σ-Δ调制器变换为占空比被模拟电压调制(调宽)的数字脉冲串,然后在片内使用低通数字滤波器将其解释成16位二进制数码并滤去噪声,以完成A/D转换。AD7705采用一个(sinNx/sinx)3函数低通数字滤波器,其振幅频率特性如下:
式中:N为调制速率与输出更新速率之比。 需要指出器件产生的噪声源主要来自半导体噪声和量化噪声,PGA放大量和滤波器第一凹口频率越低,则输出的半导体噪声和量化噪声越小,A/D转换器的实际分辨率越高。 校准和自校准为提高A/D转换质量,AD7705提供自校准和系统校准两种功能选择。每当环境温度和工作电压发生变化,或者器件的工作状态改变如输入通道切换、增益或数字滤波器第一凹口频率变动、信号输入范围变化等任一项发生时,必须进行一次校准。对于自校准方式,校准过程在器件内部一次完成。AD7705内部设置AIN(+)端和AIN(-)端为相同的偏置电压,以校准零标度;满标度校准是在一内部产生的VREF电压和选定的增益条件下进行的。系统校准则是对整个系统增益误差和偏移误差,包括器件内部误差进行校准。在选定的增益下,先后在外部给AIN(+)端施加零标度电压和满标度电压,先校准零标度点,然后校准满标度点。根据零标度和满标度的校准数据,片内的微控制器计算出转换器的输入输出转换函数的偏移和增益斜率,对误差进行补偿。 数字接口AD7705的串行数据接口包括5个接口,其中片选输入CS、串行时钟输入SCLK、数据输入DIN、转换数据输出口DOUT用于传输数据,状态信号输出口 用于指示什么时候输出数据寄存器的数据准备就绪。当 为低电平时,转换数据可用;当 为高电平时,输出寄存器正在更新数据,不能读取数据。器件的A/D转换过程是按设定的数据输出更新速率连续进行的。任何操作都需要对相应片内寄存器送入新的编程指令。 片内寄存器AD7705包括8个寄存器,均通过器件串行口访问。第一个是通信寄存器,它的内容决定下一次操作是对哪一个寄存器进行读操作还是写操作,并控制对哪一个输入通道进行采样。所有与器件的通信都必须先写通信寄存器。上电或复位后,器件默认状态为等待指令数据写入通信寄存器。它的寄存器选择位RS2~RS0确定下次操作访问哪一个寄存器,而输入通道选择位CH1,CH0则决定对哪一个输入通道进行A/D转换或访问校准数据。第2个是设置寄存器,它是一个可读/写8位寄存器,用于设置工作模式、校准方式、增益等等。第3个是时钟寄存器,它也是一个可读/写的8位寄存器,用于设置有关AD7705运行频率参数和A/D转换输出更新速率。第4个是数据寄存器,它是一个16位只读寄存器,它存放AD7705最新的转换结果。值得注意的是,数据手册上虽然说明它是一个16位的寄存器,但实际上它是由两个8位的存贮单元组成的,输出时MSB在前,如果接收微控制器需要LSB在前,例如8051系列,读取的时候应该分两次读,每次读出8位分别倒序,而不是整个16位倒序。其他的寄存器分别是测试寄存器、零标度校准寄存器、 满标度校准寄存器等,用于测试和存放校准数据,可用来分析噪声和转换误差。
2 微控制器接口应用举例 AD7705采用SPI/QSPI兼容的三线串行接口,能够方便地与各种微控制器和DSP连接,也比并行接口方式大大节省了CPU的I/O口。下图所示的应用电路中,采用80C51控制AD7705,对桥式传感信号进行模数转换。此方案采用二线连接收发数据。AD7705的CS接到低电平。DRDY的状态通过监视DRDY线相连的P32得到(也可通过访问通信寄存器的DRDY位来判断以节省一个I/O口)。该应用中采用同一个电源来产生传感器桥路激励电压和AD7705的基准参考电压,所以在电压的变化时它们所受到的影响比例相同,不会产生系统误差,因此降低了对电压稳定性的要求。这也是取代昂贵的高精度基准电压电路 而不降低性能的一般做法。80C51配置为串行接口方式0工作模式。其数据串口线RXD(P30)与AD7705的DIN、DOUT引脚连接在一起,并接一个10 kΩ的上拉电阻。时钟接口TXD与AD7705的SCLK(P31)相连,为传输数据提供时钟。无数据传送时,TXD闲置为高电平。 需要说明的是与读操作类似,在写操作模式下,80C51的数据输出为LSB在前,而AD7705希望MSB在前,所以数据写之前必须倒序。下面是关键的几个C51函数。
|