1、硬件电路设计
数模转换电路中采用了1片参考电压基准产生芯片REF02AZ、1片超高精度双路轨至轨输出运算放大器AD8676、1片高精度单路轨至轨输出运算放大器AD8675和20位超高精度数模转换芯片AD5791构成。该电路性能稳定,运行效果非常好。下面对电路进行详细分析。
AD5791中,VDD为+15 V,VSS为-15 V。VREFPS和VREFPF用以提供AD5791的正参考电压输入,输入范围5V到VDD-2.5 V,本测试系统中使用了+5 V的参考电压。VREFNS和VREFNF用以提供AD5791的负参考电压输入,输入范围VSS+2.5到0 V,本测试系统中使用了-5 V的参考电压。AD5791的工作电压为3.3 V。+5 V参考电压由参考电压产生芯片REF02AZ产生,负电压是通过由OP177构成的单位增益反向放大器来实现。±5 V电压产生电路如图1所示。
AD5791有7个用于与STM32处理器进行通讯的引脚,下面逐一作详细介绍:
RESET/:复位引脚,可以实现AD5791的复位;
CLR/:清零引脚,可以将AD5791内部DAC寄存器的值恢复到用户定义的值,并更新DAC的输出;
LDAC/:用于更新AD5791内部DAC寄存器的值,并更新DAC的输出;
SDO:串行数据输出引脚;
SDIN:串行数据输入引脚;
SCLK:串行通讯时钟信号输入引脚,最高频率可高达35 MHz;
SYNC/:串行输入数据的帧同步信号;
由于STM32处理器采用了I/O口模拟SPI通讯的方式,所以通讯控制引脚可以连接到空余的STM32处理器的任何一个I/O引脚上,只要做相应配置就可以。AD5791的应用电路图如图2所示。其中,AD8675构成电压跟随器,作为AD5791的输出缓冲。硬件电路上模拟地和数字地分开,并在一点接地,同时各个电源都加有滤波电容,以消除干扰。
2、软件设计
系统采用模拟SPI总线通信,软件的关键是STM32处理器和 AD5791之间的时序匹配,输出电压值到AD5791的DAC寄存器的值的计算,下面分别进行详细介绍。
2.1 AD5791芯片配置
AD5791的配置,主要在于AD5791的控制寄存器的配置。为了使得AD5791和STM32处理器匹配使用,需要做如下配置,具体控制寄存器相关介绍和操作参见手册。DBn(n=1…9)代表控制寄存器的第n位。
DB1 RBUF=1 内部运算放大器关闭
DB2 OPGND=0 将DAC输出下拉到地的功能切换掉,使得DAC处于正常模式
DB3 DACTRI=0 使DAC处于正常操作模式
DB4 BIN/2sC=1 使用直接二进制编码,不使用二进制补码编码的形式
DB5 SDODIS=0 SDO数据输出使能
DB6-DB9 LIN_COMP=0 参考电压输入范围选择为10 V
按照上述的配置,将相应配置字写入到AD5791的控制寄存器内部,AD5791就可以正常工作了。此处值得注意的是DB4位,一定要选择好相应的编码形式,否则输出电压会和计算值不符合。