这里是一些通用的固件设计技巧,可用来降低系统或信号噪声,以实现更好的ADC 转换精度:
1. 在即将开始ADC 转换时,避免启动任何通信外设的数据传输,因为I/O的切换可能会在供电电压中产生一些噪声,尤其高速率通信;或者回避可能导致电源波动、噪声加剧的操作。
我在这里做个友情提醒:STM32芯片的GPIO输出速率通常多档位选择配置,但不要动不动就选择最高,并非最高就最好,满足输出要求就好。所谓合适的标准就是输出波形无失真就行。其实随意选择最高输出速率对系统毫无益处,一方面加剧电源噪声和对系统的干扰,另一方面也加大了功耗。
2. 尽量避免切换高灌电流I/O,往往会在电源中产生噪声波纹,从而给ADC转换带来误差。
3. 尽量避免使用与AD输入脚处于在同一GPIO 端口的IO脚切换数字输出。如果A/D 输入正在被转换时,这会将切换噪声引入模拟输入中。
4.ADC应用中采用求平均值的方法可用来较好地消除源于输入信号上的噪声。即对模拟输入实行多次采样,将所有转换结果累加后取均值。
5. 对于STM32F2/F4系列, ART 配置为启用数据缓存 + 指令缓存,禁用指令预取。这可避免CPU对Flash 额外访问而导致额外的噪声,开启预取在有些应用中这会极大地降低ADC精度!
-
adc
+关注
关注
100文章
7380浏览量
553674 -
GPIO
+关注
关注
16文章
1313浏览量
55697
原文标题:基于代码固件方面保障ADC精度的几点建议
文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
献给新手们——STM32学习 建议
给学习嵌入式者10点建议
给学习嵌入式者10点建议
如何设计高精度ADC采样系统(架构和数据处理方法)?
学习嵌入式者10点建议分享
我对嵌入式linux学习的5点建议
ADC精度:精度与分辨率的理解
学习嵌入式系统的10点建议
ADC误差的产生以及如何提高ADC的精度
关于学习编程的实用建议
STM32的ADC代码例程

关于学习代码固件ADC精度的5点建议
评论