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

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之STM32程序——STM32测试高精度ADC篇(一)_第1张图片

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

ADS1232之STM32程序——STM32测试高精度ADC篇(一)_第2张图片

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

ADS1232之STM32程序——STM32测试高精度ADC篇(一)_第3张图片

3.时序图解说

ADS1232之STM32程序——STM32测试高精度ADC篇(一)_第4张图片

        由时序图看出来,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. 测试结果

ADS1232之STM32程序——STM32测试高精度ADC篇(一)_第5张图片
        测试源是AVDD电阻分压后的电压值,通过误差曲线的分析,摆幅稳定在±6µV,效果还是很理想的,能达到官方手册手册的噪音输出标准(下图)。
ADS1232之STM32程序——STM32测试高精度ADC篇(一)_第6张图片

6.  总结

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

你可能感兴趣的:(STM32读写高精度ADC)