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. 测试结果
6. 总结
作为一款低速高精度的ADC,ADS1232是个不错的选择,超高的性价比和出色的性能让它在同级别的ADC中有很强的竞争能力。欢迎大家一起交流技术,Q Q:1625874998,可提供部分资料,供大家设计参考。- ADS1232之STM32程序——STM32测试高精度ADC篇(一)
- A7799之STM32程序——STM32测试高精度ADC篇(二)
- AD7190之STM32程序——STM32测试高精度ADC篇(三)
- AD1256之STM32程序——STM32测试高精度ADC篇(四)
- STM32——ADC
- STM32——ADC
- STM32——ADC
- R9 STM32之ADC—电压采集
- STM32 ADC—DMA传输
- STM32之ADC学习
- STM32之ADC学习
- STM32之ADC配置
- STM32之ADC
- STM32之ADC
- STM32之ADC
- STM32之ADC
- STM32之ADC转换
- STM32--ADC(DMA)
- 正确理解DOM(非废话版)
- Git Learning
- 完全平方II
- 如何在评论中以超链接的方式放置链接
- StringBuffer类详解
- ADS1232之STM32程序——STM32测试高精度ADC篇(一)
- 外边距合并及塌陷
- sleep和wait有什么区别
- java集合框架之LinkedHashSet类
- delete的思考
- HashMap实现原理分析
- Codeforces 241E:Flights
- 打油诗——和代码的青春七年
- 编程之美:判断两链表是否相交