标题: TM1620会干扰单片机ADC采样? [打印本页]

作者: gongzhu    时间: 2022-5-20 22:25
标题: TM1620会干扰单片机ADC采样?
使用STC15W4k单片机,用官网ADC案例,通过测量基准(LM385-1.2)推算供电电压,串口输出监测电压测量很稳定(5.0V左右)。
后使用TM1620芯片驱动3位数码管显示电压,发现测量电压波动较大(2.4~7.5V)。
然后使数码管不显示,用串口输出监测测量电压无改进。
使用排除法发现,TM1620不能初始化,一旦初始化就影响ADC采样(哪怕不发送数据给TM1620)。


作者: 人工置顶员    时间: 2022-5-21 06:58
顶一下
作者: Hephaestus    时间: 2022-5-21 07:02
PCB布线错误会导致楼主描述现象。
作者: wulin    时间: 2022-5-21 07:35
在TM1620的电源端就近接100uF+0.01uF电容试试。
作者: 工工1999    时间: 2022-5-21 08:56
LED驱动片,不串联电阻驱动数码管,瞬间电流有180MA,电源可能不稳定。
作者: 啤酒瓶子老大    时间: 2022-5-21 13:18
ADC转换多延时一下。不用转换完了就显示。
忙什么。稳住。
另外外接一个电源试一下,比如充电宝。让电流足够大。或者手机充电器。
作者: yzwzfyz    时间: 2022-5-21 16:23
取决于你的设计经验。
例如:AD采样电路中有一段线,与驱动电路共用,有线就有电阻,由于驱动电路电流大,又不稳定。所以这段线的压降就不稳定。如此就影响AD值了。

作者: fj51hei    时间: 2022-5-21 17:13
感觉这个IC扫描时确实干扰很大,用示波器测VDD有方波
作者: robinsonlin    时间: 2022-5-21 17:45
多大的数码管?  15W4K的IO资源也不少,内存也够用。位用IO配合三极管,段直接拿IO脚直接推就好了,还用TM1620,有点浪费哦。  说实话,这个15W4K的AD说是有10位,真真没有感受到有10位的精度,只能当8位的用。
作者: cxh1944    时间: 2022-5-21 18:27
建议 5V 电源加电解电容16V470UF 后面加431加电解电容16v47UF通过电阻搭配获得比较稳定的电压
作者: 九月小伟    时间: 2022-5-23 16:07
干扰也是单片机被干扰,也不定是干扰就输出0V电压,一般单片机被干扰的机率主要看你设计的电路.电源等.
作者: gongzhu    时间: 2022-5-28 21:31
wulin 发表于 2022-5-21 07:35
在TM1620的电源端就近接100uF+0.01uF电容试试。

有接100uf+0.1uf电容。单片机侧电源端也有接这两个电容,使用充电器和充电宝都试过,TM1620不能初始化,一旦初始化就导致ADC采样不稳定
作者: gongzhu    时间: 2022-5-28 21:33
啤酒瓶子老大 发表于 2022-5-21 13:18
ADC转换多延时一下。不用转换完了就显示。
忙什么。稳住。
另外外接一个电源试一下,比如充电宝。让电流 ...

外接手机充电器电源和充电宝都试过,只要TM1620初始化就导致ADC采样不稳定
作者: gongzhu    时间: 2022-5-28 21:35
robinsonlin 发表于 2022-5-21 17:45
多大的数码管?  15W4K的IO资源也不少,内存也够用。位用IO配合三极管,段直接拿IO脚直接推就好了,还用TM1 ...

0.56英寸数码管,共6个。即便数码管初始化后不显示也会导致ADC采样不稳定
作者: gongzhu    时间: 2022-5-28 21:52
找到解决办法了,在ADC采样前关闭TM1620即可——发送 0x80 。
前面程序给TM1620发送的0x00,以为不点亮就不消耗电流,其实其内部仍然在振荡耗电!
作者: 188610329    时间: 2022-5-28 21:53
一口不能吃成胖子。
你先不要用 LM385-1.2 , 先用 STC15w 的内部基准电压, 先不要管准不准,先看,是不是波动变小了?
是的话告诉你你的问题怎么解决,不是的话,当我没说。
作者: gongzhu    时间: 2022-5-28 22:24
本帖最后由 gongzhu 于 2022-5-28 22:28 编辑

OK
最开始使用的是STC官方教程,通过内部BandGap能够测出准确电压值  我要精确计时,使用外部晶振就没法用BandGap了。我再加入TM1620看看稳定性

作者: gongzhu    时间: 2022-5-28 23:38
188610329 发表于 2022-5-28 21:53
一口不能吃成胖子。
你先不要用 LM385-1.2 , 先用 STC15w 的内部基准电压, 先不要管准不准,先看,是不是 ...

使用bandgap和内部晶振确实电压波动小多了,电脑usb供电,测量结果 4.75~5.1V。
作者: gongzhu    时间: 2022-5-29 00:08
使用内部晶振,使用内部基准,初始化TM1620后,测试结果截图:


作者: 188610329    时间: 2022-5-29 01:14
gongzhu 发表于 2022-5-28 23:38
使用bandgap和内部晶振确实电压波动小多了,电脑usb供电,测量结果 4.75~5.1V。

所以,这说明,对你ADC测量结果波动大的,根本原因,有两个:
1) 单片机的VCC 有波动。
2) 你的LM385-1.2 没有稳定在 1.2V。也有波动。
这两个波动一叠加,就波动的离谱了。

解决方案,分两步,
1) STC15W 系列属于宽电压,即单片机其实不是必需要在5V条件下工作,可以在2.5~5.5V下工作,
所以,比较简单的方法: VCC 先接2级管,再接你的两个电容(有条件的话把0.1uf 的那个换0.01uf, 或0.022uf), 然后接单片机VCC。
然后,测试BandGap, ADC, 此时应该基本没有波动了。

其实,象STC15系列这种没有 Verf 引脚的单片机,建议你就用BandGap,作为基准,无数试验证明外接基准其实反而不准。你一定要外接基准,那么,在 (1) 已经稳定的前提下:

2) LM385-1.2  同理,也是先 二级管,再电容。然后接单片机。

做完上面两步,应该能达到比较能接受的结果。



作者: gongzhu    时间: 2022-5-29 20:28
188610329 发表于 2022-5-29 01:14
所以,这说明,对你ADC测量结果波动大的,根本原因,有两个:
1) 单片机的VCC 有波动。
2) 你的LM385 ...

OK,明白!
不使用内部基准的原因是我要精确计时,使用的外部12M晶振。STC使用外部晶振是没法读取内部基准的。只有通过修改电路图来优化了。
作者: 188610329    时间: 2022-5-29 22:28
gongzhu 发表于 2022-5-29 20:28
OK,明白!
不使用内部基准的原因是我要精确计时,使用的外部12M晶振。STC使用外部晶振是没法读取内部基 ...

首先,内部的BandGap ,是参考电压,不是基准电压,STC15系列,由于没有Verf引脚,所以基准电压只有一个,就是VCC电压,你测量LM385-1.2,也是以VCC为基准,LM385-1.2只是“参考电压”而已。所以在此再次郑重提醒,要ADC测量准确,必须要先保证单片机VCC的稳定。而单片机VCC的稳定,最简单有效的方法,就是单片机的供电处,先二极管再电容。
其次,谁告诉你,用了外部晶振,就不能读取内部参考电压的? 内部参考电压,和晶振没有任何关系的好吧?





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1