复现到了ADC出现0值的问题
之前有朋友发现在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低通的影响)
进入到单片机ADC引脚的波形:(示波器弹簧接地到单片机4脚,示波器表笔直连6脚,峰峰值约256mV)
ADC引脚波形时间放大:(确认过ADC引脚直流电压没有跌落,直流成分大概在700mV,噪声频率大约是10MHz左右)
单片机示波器功能采集到的波形:(示波器功能是正常的,可以查看开源工程的演示视频,正常纹波的波形也可以看到)
ADC会一直偶发一个0的值,这个现象之前用多种正常的开关电源也没有遇到过。
单片机电源引脚上的波形:(算上毛刺也只有20mV的峰峰值)
所有的测量都是表笔最小回路直连单片机引脚上。
这次出现问题的现象就是,保证了ADC引脚上没有出现跌落到0V的电压波形,电源干净,但ADC却采集到了一个0值。
这个问题希望官方可以找一下问题,如果需要电路实物,我可以寄出,可以配合找问题。
如果是你的单片机做的示波器采集到0值,请贴出示波器的输入电路。输入电路不同,有可能会出现采集到0值,因为给到ADC的就是0值。 梁工 发表于 2025-1-7 20:56
如果是你的单片机做的示波器采集到0值,请贴出示波器的输入电路。输入电路不同,有可能会出现采集到0值,因 ...
原工程已在立创开源平台上开源,在链接中可以直接看到。
贴的原理图就是里面的电压采集电路。
示波器是这个电子负载上的功能,在使用其它的电源做负载测试时,ADC采集都很稳定很正常。
主要是我用示波器测量ADC的引脚,并没有出现0V,噪声的幅度最大只有256mV,而ADC引脚的直流电压是700mV,按道理不应该出现0值。
rm543 发表于 2025-1-7 21:02
原工程已在立创开源平台上开源,在链接中可以直接看到。
贴的原理图就是里面的电压采集电路。
示波器是这 ...
ADC都是将采样到的电压通过逼近方式实现数字转换。如果转换结果为0,则就是采样到0电压了。ADC每次启动之后,就由硬件进行时序控制,采样、转换,每次的时序都一样。
你可以将输入接一个固定的电压试试,比如从参考电压用2个1K电阻分压后送给AGC输入端,AGC输入对地接1nF~100nF电容,再测试读数,看是否还能读到0,建议触发ADC后,用ADC中断读取转换结果。 梁工 发表于 2025-1-8 11:43
ADC都是将采样到的电压通过逼近方式实现数字转换。如果转换结果为0,则就是采样到0电压了。ADC每次启动之 ...
采集正常的信号并不会出现0值,输入方波正弦波三角波都能够正常读取,ADC引脚处已经加入1nF电容,麻烦点开原工程看一下原理图和布局确认一下。
采集固定的电压数值跳动范围在±1LSB,稳定的。
唯独是使用这个高干扰的开关电源时出现了0值,而且用示波器测量引脚并没有出现0电压,这个才是最大的问题。
rm543 发表于 2025-1-8 11:51
采集正常的信号并不会出现0值,输入方波正弦波三角波都能够正常读取,ADC引脚处已经加入1nF电容,麻烦点开 ...
因为你用的是没有独立verf引脚的单片机,所以mcu电源脚的干扰也会进入verf。
可以试试给mcu电源并一个大一些的电解电容,看看是否有所缓解。
可能是干扰太大进入verf了。 王昱顺 发表于 2025-1-8 12:36
因为你用的是没有独立verf引脚的单片机,所以mcu电源脚的干扰也会进入verf。
可以试试给mcu电源并一个大 ...
我用示波器测量单片机的电源引脚,(1楼有展示)是还算干净的,外部干扰没有从电源引脚进入,供电引脚旁边并联了10uF和0.1uF陶瓷电容。 rm543 发表于 2025-1-8 12:52
我用示波器测量单片机的电源引脚,(1楼有展示)是还算干净的,外部干扰没有从电源引脚进入,供电引脚旁 ...
有几个问题,没看懂请教一下:
这个电源显示的是5V浮动20mV吗,我看零点位置似乎在波形最底下?
还有就是有没有adc采样零时刻的电源波形图?
有没有可能示波器测量的时候,因为示波器的采样保持电容导致adc采样0显效消失?
亦或者是功率地和模拟地没有单点接地造成了功率信号波动干扰?
rm543 发表于 2025-1-8 11:51
采集正常的信号并不会出现0值,输入方波正弦波三角波都能够正常读取,ADC引脚处已经加入1nF电容,麻烦点开 ...
那换一个好的电源是不是就不会出现? 说明还是电源干扰采采样到了0电压。
原理上说,MCU并不知道你用什么电源,MCU都是一样的采样、转换,如果如果你的电源严重干扰了AVCC、AVREF、ADC输入信号,即使是us级别的,也会出现读数受干扰的偶发事件。MCU本身并不知道你的是什么电源、什么信号,所以读到0依旧是干扰导致,并非ADC本身,依旧要从电源干扰入手,否则就要用软件滤波剔除。 王昱顺 发表于 2025-1-8 13:46
有几个问题,没看懂请教一下:
这样的波形看不出什么来的。
ADC读到0时用一个IO输出一个信号作为同步通道,另一个通道检测电源,扫描速度在10uV/DIV或以下,估计就可以看出来。
页:
[1]
2