找回密码
 立即注册
查看: 961|回复: 17

复现到了ADC出现0值的问题

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-04-28 09:23:48

3

主题

43

回帖

493

积分

中级会员

积分
493
发表于 2025-1-7 19:57:52 | 显示全部楼层 |阅读模式
之前有朋友发现在ADC应用中会出现读取值为0的现象:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5784

我此前在产品中和最近做的小电子负载中并未复现出这个ADC采集出现0的现象,
ADC采集都表现得很好,不需要滤波也能保证每次采样的结果2LSB以内有效。
开源的小电子负载地址(立创开源广场):oshwhub.com/rm543/dig_loader_v06

但最近在一次测试中复现了这个问题:
当我对一个噪声比较大(峰峰值达到3V)的12V开关电源进行电压采样,ADC在读取时偶发会读取出一个0值。

*示波器测量均使用弹簧针最小回路接地,交流耦合,没有带宽抑制,X10倍衰减,100MHz带宽。
*开关电源输入再加入了一级隔离变压器,减少了从市电插座耦合的干扰成分。
*电子负载使用线性稳压电源提供辅助电源,主控使用 STC8G1K08A,SOP8封装,单片机供电使用线性降压到3.0V。

电源的输出噪声:(峰峰值达到3V)

电源输出

电源输出

这个是在小电子负载的负载输入端子测量的电源信号,确认是直流成分一直保持12V,没有直流跌落,处于空载没有加负载电流的状态。

负载电压采集电路:
(在分压电阻上并联电容是为了做示波器功能,让ADC的采集速度不受RC低通的影响)
截图202501071835228160.jpg
截图202501071841047865.jpg
截图202501071945118687.jpg

进入到单片机ADC引脚的波形:(示波器弹簧接地到单片机4脚,示波器表笔直连6脚,峰峰值约256mV)
截图202501071822142809.jpg
ADC引脚波形时间放大:(确认过ADC引脚直流电压没有跌落,直流成分大概在700mV,噪声频率大约是10MHz左右)
截图202501071823157266.jpg

单片机示波器功能采集到的波形:(示波器功能是正常的,可以查看开源工程的演示视频,正常纹波的波形也可以看到)
截图202501071845453794.jpg
ADC会一直偶发一个0的值,这个现象之前用多种正常的开关电源也没有遇到过。

单片机电源引脚上的波形:(算上毛刺也只有20mV的峰峰值)
截图202501071943103324.jpg

所有的测量都是表笔最小回路直连单片机引脚上。

这次出现问题的现象就是,保证了ADC引脚上没有出现跌落到0V的电压波形,电源干净,但ADC却采集到了一个0值。

这个问题希望官方可以找一下问题,如果需要电路实物,我可以寄出,可以配合找问题。









回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-1-7 20:56:58 | 显示全部楼层
如果是你的单片机做的示波器采集到0值,请贴出示波器的输入电路。输入电路不同,有可能会出现采集到0值,因为给到ADC的就是0值。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-04-28 09:23:48

3

主题

43

回帖

493

积分

中级会员

积分
493
发表于 2025-1-7 21:02:24 | 显示全部楼层
梁*** 发表于 2025-1-7 20:56
如果是你的单片机做的示波器采集到0值,请贴出示波器的输入电路。输入电路不同,有可能会出现采集到0值,因 ...

原工程已在立创开源平台上开源,在链接中可以直接看到。
贴的原理图就是里面的电压采集电路。
示波器是这个电子负载上的功能,在使用其它的电源做负载测试时,ADC采集都很稳定很正常。

主要是我用示波器测量ADC的引脚,并没有出现0V,噪声的幅度最大只有256mV,而ADC引脚的直流电压是700mV,按道理不应该出现0值。

点评

ADC都是将采样到的电压通过逼近方式实现数字转换。如果转换结果为0,则就是采样到0电压了。ADC每次启动之后,就由硬件进行时序控制,采样、转换,每次的时序都一样。 你可以将输入接一个固定的电压试试,比如从参考  详情 回复 发表于 2025-1-8 11:43
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-1-8 11:43:56 | 显示全部楼层
rm5*** 发表于 2025-1-7 21:02
原工程已在立创开源平台上开源,在链接中可以直接看到。
贴的原理图就是里面的电压采集电路。
示波器是这 ...

ADC都是将采样到的电压通过逼近方式实现数字转换。如果转换结果为0,则就是采样到0电压了。ADC每次启动之后,就由硬件进行时序控制,采样、转换,每次的时序都一样。
你可以将输入接一个固定的电压试试,比如从参考电压用2个1K电阻分压后送给AGC输入端,AGC输入对地接1nF~100nF电容,再测试读数,看是否还能读到0,建议触发ADC后,用ADC中断读取转换结果。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-04-28 09:23:48

3

主题

43

回帖

493

积分

中级会员

积分
493
发表于 2025-1-8 11:51:47 | 显示全部楼层
梁*** 发表于 2025-1-8 11:43
ADC都是将采样到的电压通过逼近方式实现数字转换。如果转换结果为0,则就是采样到0电压了。ADC每次启动之 ...

采集正常的信号并不会出现0值,输入方波正弦波三角波都能够正常读取,ADC引脚处已经加入1nF电容,麻烦点开原工程看一下原理图和布局确认一下。
采集固定的电压数值跳动范围在±1LSB,稳定的。
唯独是使用这个高干扰的开关电源时出现了0值,而且用示波器测量引脚并没有出现0电压,这个才是最大的问题。

点评

那换一个好的电源是不是就不会出现? 说明还是电源干扰采采样到了0电压。 原理上说,MCU并不知道你用什么电源,MCU都是一样的采样、转换,如果如果你的电源严重干扰了AVCC、AVREF、ADC输入信号,即使是us级别的,也  详情 回复 发表于 2025-1-8 14:04
因为你用的是没有独立verf引脚的单片机,所以mcu电源脚的干扰也会进入verf。 可以试试给mcu电源并一个大一些的电解电容,看看是否有所缓解。 可能是干扰太大进入verf了。  详情 回复 发表于 2025-1-8 12:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-8 12:36:24 | 显示全部楼层
rm5*** 发表于 2025-1-8 11:51
采集正常的信号并不会出现0值,输入方波正弦波三角波都能够正常读取,ADC引脚处已经加入1nF电容,麻烦点开 ...

因为你用的是没有独立verf引脚的单片机,所以mcu电源脚的干扰也会进入verf。
可以试试给mcu电源并一个大一些的电解电容,看看是否有所缓解。
可能是干扰太大进入verf了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-04-28 09:23:48

3

主题

43

回帖

493

积分

中级会员

积分
493
发表于 2025-1-8 12:52:41 | 显示全部楼层
王*** 发表于 2025-1-8 12:36
因为你用的是没有独立verf引脚的单片机,所以mcu电源脚的干扰也会进入verf。
可以试试给mcu电源并一个大 ...

我用示波器测量单片机的电源引脚,(1楼有展示)是还算干净的,外部干扰没有从电源引脚进入,供电引脚旁边并联了10uF和0.1uF陶瓷电容。

点评

有几个问题,没看懂请教一下: [attachimg]79636[/attachimg] 这个电源显示的是5V浮动20mV吗,我看零点位置似乎在波形最底下? 还有就是有没有adc采样零时刻的电源波形图? 有没有可能示波器测量的时候,因为示波器  详情 回复 发表于 2025-1-8 13:46
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5452

积分

版主

积分
5452
发表于 2025-1-8 13:46:18 | 显示全部楼层
rm5*** 发表于 2025-1-8 12:52
我用示波器测量单片机的电源引脚,(1楼有展示)是还算干净的,外部干扰没有从电源引脚进入,供电引脚旁 ...

有几个问题,没看懂请教一下:

截图202501081343278281.jpg
这个电源显示的是5V浮动20mV吗,我看零点位置似乎在波形最底下?
还有就是有没有adc采样零时刻的电源波形图?
有没有可能示波器测量的时候,因为示波器的采样保持电容导致adc采样0显效消失?
亦或者是功率地和模拟地没有单点接地造成了功率信号波动干扰?

点评

这样的波形看不出什么来的。 ADC读到0时用一个IO输出一个信号作为同步通道,另一个通道检测电源,扫描速度在10uV/DIV或以下,估计就可以看出来。  详情 回复 发表于 2025-1-8 14:08
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-1-8 14:04:40 | 显示全部楼层
rm5*** 发表于 2025-1-8 11:51
采集正常的信号并不会出现0值,输入方波正弦波三角波都能够正常读取,ADC引脚处已经加入1nF电容,麻烦点开 ...

那换一个好的电源是不是就不会出现? 说明还是电源干扰采采样到了0电压。

原理上说,MCU并不知道你用什么电源,MCU都是一样的采样、转换,如果如果你的电源严重干扰了AVCC、AVREF、ADC输入信号,即使是us级别的,也会出现读数受干扰的偶发事件。MCU本身并不知道你的是什么电源、什么信号,所以读到0依旧是干扰导致,并非ADC本身,依旧要从电源干扰入手,否则就要用软件滤波剔除。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2025-1-8 14:08:19 | 显示全部楼层
王*** 发表于 2025-1-8 13:46
有几个问题,没看懂请教一下:

这样的波形看不出什么来的。
ADC读到0时用一个IO输出一个信号作为同步通道,另一个通道检测电源,扫描速度在10uV/DIV或以下,估计就可以看出来。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 06:46 , Processed in 0.144459 second(s), 117 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表