ADS1232之STM32程序——STM32测试高精度ADC篇(一)

来源:互联网 发布:汽车管理系统源码 编辑:程序博客网 时间:2024/05/19 14:40

1. ADS1232概述 

ADS1232是TI早期推出一款高精度低速率的ADC,性能参数如下

24位Σ-Δ型双差分模拟输入ADC、完整的桥传感器前端

高达23.5个有效位

低噪PGA、19.2-bit的无噪声分辨率(PGA= 64)

同时抑制50 Hz/60 Hz、10sps或80sps数据率

供电范围:2.7V至5.3v

性价比很高,非常适用于静态变量的测试,如电子秤、应变计、压力传感器、工业过程控制等应用。本人对ADS1232做了一次比较测试,分享下测试的结果

2. 硬件设计分析


        从结构图可以看出来,ADS1232是模拟区域与数字区域完全独立的ADC,在原理图设计方面按照官方指导文档,需要对两个区域做独立的布线与隔离处理,才能让信噪比最佳。另可靠的基准电压是高精度ADC“命根”,本次测试选择TI公司推出的REF5025作基准参考,REF5025可低于3µVpp/V 噪声、3ppm/°C 漂移,性能是十分出色的。


        由于经常做高频类项目,十分讨厌杜邦线/飞线测试方式,在高精度的领域,24位ADC梯度值2的2416777216,如果接入基准电压是2.5v,理论分辨率可达到0.149μV,做过高频的工程师深知杜邦线的弊端,根据上面的技术分析,哪怕线路被引入1μV的干扰,也可以让精度打上一定折扣。为了让ADS1232性能得以充分体现,特别做了一个测试载板,载板设计也很关键,分割模拟数字区域同时,连接地方大量使用钽电容做旁路电路,以把波纹抑制到最小,合理的布局与布线也很关键,敷铜区域也需要模数分离,以磁珠或者0-5R/电感隔开。


3.时序图解说


        由时序图看出来,ADS1232读写是简单的串行读数方式,类似IIC读数,时序实现也相对简单。以上升沿为标志,SCLk上升沿读取第23位的值(大端模式)依次类推。

4.  核心源码

unsigned long AD_read(void){int i=0;unsigned long ad_value=0;SCLK_L;PDWN_L;delay_us(10);A0_L; SPEED_H;    PDWN_H;  delay_us(20);while(GPIO_ReadInputDataBit(ADPORT_B,DOUT)==1);//数据更新for(i=0;i<24;i++){ad_value=ad_value<<1;SCLK_H;delay_us(2);if(GPIO_ReadInputDataBit(ADPORT_B,DOUT)==1){ad_value|=0x00000001;     }SCLK_L;delay_us(2);}SCLK_H;delay_us(2);SCLK_L;delay_ms(1);return ad_value;}

5. 测试结果

        测试源是AVDD电阻分压后的电压值,通过误差曲线的分析,摆幅稳定在±6µV,效果还是很理想的,能达到官方手册手册的噪音输出标准(下图)。


6.  总结

        作为一款低速高精度的ADC,ADS1232是个不错的选择,超高的性价比和出色的性能让它在同级别的ADC中有很强的竞争能力。欢迎大家一起交流技术,Q Q:1625874998,可提供部分资料,供大家设计参考。

原创粉丝点击