您的位置 首页 系统

根据STM 32和AD 5791的高精度数模转化电路设计

崔海朋(青岛杰瑞工控技术有限公司 青岛266071)摘 要:现在很多智能仪表中,要求有超高精度的电压信号输出,而且要求刷新率高、噪声低,常规的处理电路比较复杂,难以实现自动校准。为了解决该问题

  崔海朋(青岛杰瑞工控技能有限公司 青岛266071)

  摘 要:现在许多智能外表中,要求有超高精度的电压信号输出,并且要求刷新率高、噪声低,惯例的处理电路比较杂乱,难以完成主动校准。为了处理该问题,选用了20位的高精度数模转化器(DAC)AD5791,并运用于根据STM32的丈量外表中。本文详细介绍了软硬件规划。此体系完成了超高精度的单路可调电压输出,精度高和噪声低。

  关键词:数模转化器STM32AD5791

  0 导言

  现在许多智能丈量外表要求具有超高精度的电压信号,一起要求高安稳性、高线形度和低噪声、低温度漂移。这样的模仿体系规划面临杂乱的工程技能应战,惯例的办法是选用多个较低分辨率的DAC和很多分立元件与支撑IC整合在一起,一起伴随着相当大的开发危险和高价值的修正时刻,才干优化电路参数、减小差错和规划出杂乱的主动校准电路,这样不只增加了硬件规划的杂乱性,一般到达的精度也不是很高。本体系规划的根据STM32微处理器和AD5791的20位超高精度丈量体系中,完成了单路超高精度可调电压信号的输出,输出电压信号的幅值能够经过软件来设置。该体系可靠性高,不需求校准电路。

  AD5791是美国ADI公司推出的一款高功用的单路20位电压输出数模转化器, 它是业界首款具有真实1 ppm(百万分之一)分辨率和精度的DAC器材 [1-2] 。双极作业电压高达33 V。一起AD5791具有1 ppm的分辨率和精度、低噪声(l ppm以下)、快速刷新率(1 us)和十分低的输出漂移(在l ppm以下)。该器材选用了多功用三线串行接口,并与SPI、QSPI TM 、MICROWIRE TM 和DSP接口标准兼容。该器材集成了一个上电复位电路,以保证DAC输出能到达0V,并保持在已知输出阻抗状况,直到有用写入停止。该器材还供给了一个输出钳位功用,这使得其输出在一个限制的负载状况。综上知,选用该款芯片,削减了杂乱校准算法的必要性,能极大地简化规划使命、削减开发和保护本钱,一起下降危险。国内相关学者在精细电压源和医疗仪器中也得到了运用 [3-4]

  本体系的 Cortex-M3处理器为意法半导体公司推出的32位RISC处理器 STM32F103VCT6,主频最高可达72 MHz,运用也比较广泛 [5] 。该处理器具有256KB的程序存储器,48 KB的RAM,一起它有8个定时器、5路串口、3路SPI、2路I2C,具有独立看门狗和窗口看门狗,十分适合于与AD5791构成高精度的丈量体系。

  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所示。

微信截图_20200605111418.jpg

  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位,一定要挑选好相应的编码办法,不然输出电压会和核算值不符合。

  2.2 ST M 32接口装备

  STM32处理器的SPI 发送和接纳都选用的是I/O口模仿的办法,因而I/O的初始化比较简单,除了DAC1_SDO网络标号的引脚设置为输入办法外,其他通讯用的引脚都设置为输出办法。

1591327343404254.jpg

  2.3 数模转化输出

  数模转化输出,首要触及3个子程序,芯片上电初始化子程序,芯片操控寄存器初始化子程序和电压输出子程序3个部分。下面给出AD5791读写函数和测验的比如。

  u32 AD5791_Read(void)//读取的24bit的数据

{

unsigned int i,j;

u32 data,c;

data=0;

AD5791_sync_0();

AD5791_sclk_0();

for(i=0;i<24;i++)

{

j=3;

data=data<<1;

AD5791_sclk_1();

while(j–);

c=GET_AD5791_SO();

AD5791_sclk_0();

data=data|c;

}

AD5791_sclk_0();

AD5791_sync_1();

return(data);

}

void AD5791_Write(unsigned long OutData) //写一

个24 bit的数值

{

unsigned char i;

unsigned long value;

value = OutData & 0x00ffffff; //取低24bit

value = value<<8; //左移8位,ok

AD5791_ldac_1();

AD5791_sclk_1();

AD5791_sync_1();

AD5791_sync_0();

for ( i = 0; i < 24; i ++ )

{

AD5791_sclk_1();

ad5791delay();

if((value & 0x80000000) == 0x80000000)

{

AD5791_sdin_1();

}

else

{

AD5791_

sdin_0();

}

ad5791delay();

AD5791_sclk_0();

ad5791delay();

value = value << 1;

}

AD5791_sync_1();

ad5791delay();

AD5791_ldac_0();

ad5791delay();

AD5791_ldac_1();

ad5791delay();

}

/*进口参数:outvalue 输出的电

压的值*/

void test_ad5791(double outvalue)

{

double temp=0.0;

long temp1=0;

Ad5791_gpio_init(); //AD5791 I/O口初始化

Ad5791_clr_init();//AD5791 清零

Reset_ad5791(); //AD5791 复位

Write_ad5791_control_register();//写AD5791的控

制寄存器

temp=((outvalue+5.0)*1048575.0)/10.0;//计

算DAC输出值

temp1=(long)temp | 0x00100000;

Write_ad5791_dac_register(temp1);//写AD5791的

dac寄存器,一起输出相应电压

}

  程序中对AD5791芯片进行相应初始化以及写AD5791的相应寄存器都选用I/O模仿相应时序的办法。其间写办法的时序如图3所示。写数据时,留意先写高位,再写低位,有必要严厉依照时序来写入。

1591327262865382.jpg

1591327262231834.jpg

  3 结束语

  本体系成功完成了根据STM32处理器和AD5791的20位高精度电压输出体系,给出了全新有用的硬件和软件规划,适用于对输出高精度模仿电压有需求的智能外表场合中。该体系精度高,漂移低,可靠性高,能够运用于医疗仪器、测验丈量外表、工业操控以及高端科学和航空航天仪器中,具有很好的运用远景。

  参阅文献:

  [1]AD5791 Datasheet Rev.E[EB]. Analog Devices, Inc,2018.

  [2]AD5791:20位电压输出数模转化处理方案[J].国际电子元器材,2011(2    ):15-16.

  [3]薛巨峰,李壮,鲁志军.根据20位DAC—AD5791的高精度电压源的规划[J].电子技能,2015,44(09):59-62.

  [4]Jan-Hein Broeders.选用ADI 20位DAC规划医疗成像体系[J].电子规划技能,2011(7):58.

  [5]王永虹,徐炜,郝立平.STM32系列ARMCortex-M3微操控器原理及实践[M].北京:北京航空航天大学出版社,2008.

  (注:本文来源于科技期刊《电子产品国际》2020年第06期第39页,欢迎您写论文时引证,并注明出处。)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/123483.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部