LiHooo 发表于 2023-10-21 21:02:28

分享一种错误的ADC接法,大家注意ADC_VREF+脚并不是高阻输入的

本帖最后由 LiHooo 于 2023-10-21 22:19 编辑

单片机STC8H8K64U @VCC=3.3V f=24MHz 有开启USB-CDC
ADC_VREF+(Pin9)不光是ADC的参考电压脚,也会吃电流。
所以想省电,还是要用官方推荐的电路。图放在在最后了。


一开始认为Vref+只是做参考电压,R4=10K,C9=NC, 结果读出来的ADC非常不稳定,软件取10次平均数依然不稳定,
能看到ADC值明显跳动,接上示波器发现ADC_REF+纹波非常大,把R4减小到4.7K后,并且焊上C9,发现ADC_REF+脚上呈锯齿波(为什么是锯齿波?要了解内部ADC的大佬来回答了)。
测量3V3的供电端是LDO产生的,测量纹波也很小,排除电源问题。


ADC_REF+脚上的波形:




官方推荐读的ADC高精度接法,通过IO口输出高电平来打开基准电压的电路,
官方要在TL431上串联这么小的电阻做基准电压,看起来ADC_VREF+的输入阻抗不高。





YULE 发表于 2023-10-21 22:47:11

这个和单片机没关系。是TL431的要求,TL431要求至少1mA的输入电流才能稳定工作。所以 3.3-2.5=0.7,所以电阻要小于700欧。

LiHooo 发表于 2023-10-22 00:34:14

YULE 发表于 2023-10-21 22:47
这个和单片机没关系。是TL431的要求,TL431要求至少1mA的输入电流才能稳定工作。所以 3.3-2.5=0.7,所以电阻 ...

1.抱歉TL431的1mA的问题,确实没注意到。 我又换了470Ω、100Ω 还是不行,
2.我是在分享错误的案例,
3.我说的”ADC_VREF+脚并不是高阻输入的“没错吧?它把我的基准电压搞得不准了。

3.3-2.5=0.8V
470Ω时,0.8V/470Ω=1.7mA, ADC_REF+上的波形:

100Ω时,0.8V/100Ω=8mA,ADC_REF+上的波形:





LAOXU 发表于 2023-10-22 04:01:50

能看到ADC值明显跳动,接上示波器发现ADC_REF+纹波非常大,把R4减小到4.7K后,并且焊上C9,发现ADC_REF+脚上呈锯齿波(为什么是锯齿波?要了解内部ADC的大佬来回答了)。


================================================================

老兄 , 你确实分享了一种 错误的ADC接法,这和人家 ADC_VREF+脚 输入阻抗 高低 根本没有 半毛钱关系.


至于 ADC_REF+脚上呈锯齿波, 更和ADC_VREF+脚 输入阻抗 挂不上勾.


严格的说, 你分享了一种 错误的 431基准接法, 使得 431产生自激振荡, 基准电压秒变信号发生器, 牛逼啊{:lol:}{:lol:}{:lol:}

产生的 锯齿波, 波型挺漂亮的~~~

下次我也用 431 搞个 信号发生器 玩玩, 线路超级简单, 值得推荐.




LAOXU 发表于 2023-10-22 04:09:37

友情提示:

431两端的电容, 要么不接, 要接就接10UF以上的.

否则, 就容易出现如同老兄这样, 产生非常漂亮的锯齿波~~~

神农鼎 发表于 2023-10-22 07:57:51

如下高清参考线路图,如下高清说明

STC 一贯全球第一的专业说明风格,
大家可以先按STC的正确的推荐来,然后再改进,
不要上来就改,然后自己不懂直接改错

大国崛起,专业典范

http://www.stcmcudata.com/STC8F-DATASHEET/STC8H.pdf

http://www.stcmcudata.com/STC8F-DATASHEET/STC32G.pdf


神农鼎 发表于 2023-10-22 08:01:00

要供电的I/O, 用强推挽输出;
而不是准双向口,此处也有贴心交代

神农鼎 发表于 2023-10-22 08:10:18


此处老专家老许已指出楼主错在这个电容:
或者焊10uF以上,或者不焊,
楼主错误的焊成了0.1uF

LiHooo 发表于 2023-10-22 12:13:32

LAOXU 发表于 2023-10-22 04:01
能看到ADC值明显跳动,接上示波器发现ADC_REF+纹波非常大,把R4减小到4.7K后,并且焊上C9,发现ADC_REF+脚 ...


大佬你好,麻烦再解答一下。
这次不接TL431,不接电容,ADC_REF+直接串联470接3.3V(程序是没变,8次ADC采样,取平均值)
黄线是3.3V波形,绿色是ADC_REF+波形。
这是不是输入阻抗小?外部470Ω,都能拉低0.3V,将近10%。
我觉得是ADC在转换时,ADC_REF+通过电子开关和内部阻抗较低的参考点接通,导致有电流流进ADC_REF+脚,所以ADC_REF+上有一个瞬时电流。没有转换时,ADC_REF+与内部断开,又恢复高阻状态。



另外,在此基础上加上0.1uF电容就稳了,ADC也比较稳定了。 我的玩具示波器已经抓不到尖峰了。





LiHooo 发表于 2023-10-22 12:53:29

神农鼎 发表于 2023-10-22 08:10
此处老专家老许已指出楼主错在这个电容:
或者焊10uF以上,或者不焊,
楼主错误的焊成了0.1uF


多谢提醒!因为我们公司的项目TL431都用100nF的电容。所以没用数据手册推荐值。看来我们论坛的大神都是很牛逼{:4_250:}

不接电容ADC_REF+在ADC工作时,基准电压容易抖动,加了<22uF的电容又会引起TL431自激。
官方能不能在datasheet中加红字备注“接小于22uF的电容会引起TL431自激”
R=470Ω,C=NC

R=470Ω,C=100nF


R=470Ω,C=10uF



页: [1] 2
查看完整版本: 分享一种错误的ADC接法,大家注意ADC_VREF+脚并不是高阻输入的