深圳市昴泽电子有限公司

(非本站正式会员)

深圳市昴泽电子有限公司

营业执照:已审核经营模式:贸易/代理/分销所在地区:广东 深圳

收藏本公司 人气:2237482

企业档案

  • 相关证件:营业执照已审核 
  • 会员类型:普通会员
  •  
  • 昴泽电子-方小姐 QQ:2881953952
  • 电话:0755-23206614
  • 手机:18124613512
  • 昴泽电子-候小姐 QQ:2881953951
  • 电话:0755-23202135
  • 手机:18124624362
  • 地址:宝安区西乡街道固兴鸿宇大厦9层
  • 传真:0755-23202135
  • E-mail:756566693@qq.com

产品分类

您的当前位置:

深圳市昴泽电子有限公司 > 技术资料 > 技术解密:如何提高基于C8051F020温度采集系统的MCU ADC采样精度?

技术解密:如何提高基于C8051F020温度采集系统的MCU ADC采样精度?

发布时间: 2022/1/19 16:05:31 | 129 次阅读

笔者解决了一个基于C8051F020 MCU做温度采集(内部结构框图如图1)、但采集的结果却不稳定的问题。该温度采集系统软件及硬件,一切看似中规中矩,但在多个细节处却隐藏了导致异常的隐患, 终导致测试结果跳动。现在总结如下,供小伙伴们参考。


 

图1:C8051F02010位ADC功能框图


在实际中,该采集系统处在进风道处,安装了PTC温度传感器,通过电阻桥来采样温度。测试发现,刚开机的时候,温度显示比较稳定,但当风机运行后,温度偶尔会出现不同频率的跳动。再了解到,这种现象概率不高,大概在10%左右。初步检查系统的硬件电路,基本正常,只是电阻桥离MCU会比较远,使用了外部参考电压。


为了搞清楚输出的数据的特征,将ADC结果通过串口输出,经分析数据发现,ADC结果也存在跳动,即说明,温度的跳动的确来自ADC的结果异常,并且这种异常很可能是硬件产生的。


再次检查该采集系统的电路板,在温度电压输入上,尽快加了滤波电容,但离MCU很远,约10CM,因此,在靠近MCU处、在ADC输入上,加了滤波电容,104pf;再次测试,稳定度好了很多;另外,系统的板子用了外部参考电压,但滤波电容只放了一个4.7uf,加一个104pf的滤波电容,再次测试,效果又有改善,跳动的问题,基本消失。


为了检查修改效果,现场休整并测试了3台机器,基本上不出现跳动的情况了,但3台机器之间存在 高0.9°的偏差;根据以前解决的经验,这应该属于偏移误差。现场修改了代码,用外部高精度温度传感器、将ADC校准了,如此,3台输出消除了偏移误差。


至此,该客户的测试结果异常的问题,已经解决,主要用3个措施:

1)靠近MCU处、在ADC输入通道上,加了滤波电容,根据该采集系统信号的特点,容值取104pf。

2)系统PCB板子用了外部参考电压,但滤波电容只放了一个4.7uf,根据Silicon Labs的推荐电路(如图2)又加了一个旁路电容,104pf。

3)修改了代码,用外部高精度温度传感器、将ADC校准了,消除偏移误差。


 

图2:C8051F020电压基准功能框图


另,为了使问题更具有全面性,如下还列举了其他一些因素,可以影响到ADC精度,攻城狮们可以作为参考:

1)此次涉及的是C8051F020,它的分辨率是10位。显然的,如果使用12位,或14位,或16位,再或24位的,它的精度肯定会更高。

2)在需要通道切换的应用中(比如在C8051F020中,即指变换AMUX),如果切换时间非常快,可能会有刚切通道换后、采集到的数据失真的情况,因此,需要丢弃一些数据,才能保证数据是真实的,至于丢掉是2个3个还是更多,需要根据实验来确定,这与现实的、ADC通道上的电阻、电容有关。

3)数字地与模拟地分开;强电与弱电分开。

4)过采样、求平均,也可以显著提高ADC精度。