1、问题描述
客户在使用 STM32G0B1 进行产品开发的时候,使用到了 ADC 模块通道 0 进行电压检测,在产品生产过程中,测试发现某些样机 ADC 采样到的数据与实际不符合,误差比较大,样品除了 ADC 采样数据误差较大,其它功能都正常,客户进行了交叉测试,发现问题是随着 MCU 走,因此排除了板子的问题,同时我方对客户的原理图以及软件部分代码进行了复查,也没有发现问题。下图是客户产品的部分电路图。
▲ 图1. 部分原理图
因此客户怀疑这些样片有缺陷,申请了 FA 检测,最终的测试报告表示样片正常,但是客户需要一个解释,为什么某些样片会存在 ADC 采样数据偏差较大。
2、问题分析
通过客户反馈信息来看,排除了软件代码的问题,同时也排除了电路原理图的问题,而 FA 测试也排除了芯片本身的问题,Division 在客户返回的样品上进行应用测试,得出的结论是,ADC 在参考电压 3.3V 的情况下,ADC 转换得到的数据是符合要求的,如下图所示。
▲ 图2. ADC Conversion Data with Ref 3.3V
而客户的板子,ADC 参考电压为 1.8V,重新进行测试,最终发现 ADC 转换的数据偏差在 20mV 左右,结果如下。
▲ 图3. ADC Conversion Data with Ref 1.8V
根据上面的结果,实际转换后的数据与实际输入的数据相差 20mV 左右,ADC 分辨率 为 12bit,所以误差在 50LSB 左右,这个远远超出了数据手册中定义的误差范围。
▲ 图4. ADC accuracy
客户根据数据手册和实际数据比较,所以认为 ADC 不符合要求,其实在 STM32G0 的勘误表 ES0548 上,对于 ADC 还有这样的说明。
▲ 图5. ADC offset error
按照勘误表上的描述,当 STM32G0B1 ADC 参考电压小于 3.0V,其误差最大在 50LSB,而客户板子 ADC 的参考电压为 1.8V,所以最终测试出来的误差接近 50LSB。针对这个缺陷,勘误表给出了相应补救方案,但是对于客户已量产的板子而言,补救方案并不适用。
3、问题解决
STM32G0B1 ADC 的局限性,导致了这个问题,如果使用 STM32G0 系列 ADC,需要得到精确的采样数据,注意 ADC 的参考电压不得小于 3.0V。
4、总结
在设计之前,强烈建议客户除了阅读参考手册,数据手册等资料外,阅读芯片勘误表也是极为重要的,这样可以规避芯片本身已知的一些局限。
来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。