[STM32L4] 使用ADC采样发现有个1us左右的干扰波形

[复制链接]
 楼主| houcs 发表于 2020-1-22 22:40 | 显示全部楼层 |阅读模式
L4系列ADC采样自带干扰怎么回事
tian111 发表于 2020-1-22 22:45 | 显示全部楼层
看看图
 楼主| houcs 发表于 2020-1-22 22:45 | 显示全部楼层
liuzaiy 发表于 2020-1-22 22:48 | 显示全部楼层
频率和采样频率设置有关系
 楼主| houcs 发表于 2020-1-22 22:51 | 显示全部楼层
如果关闭ADC采样就没有这个波形,接一个稳压源输出的固定电平也这样,因此认为这个是ADC自己产生的。一直不理解这个是为什么,怎么去掉。
zyf部长 发表于 2020-1-22 22:54 | 显示全部楼层
配置代码发下吧
 楼主| houcs 发表于 2020-1-22 22:56 | 显示全部楼层

hadc1.Instance = ADC1;
  hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV16;
  hadc1.Init.Resolution = ADC_RESOLUTION_12B;
  hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  hadc1.Init.ScanConvMode = ADC_SCAN_ENABLE;
  hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV;
  hadc1.Init.LowPowerAutoWait = DISABLE;
  hadc1.Init.ContinuousConvMode = ENABLE;
  hadc1.Init.NbrOfConversion = 11;
  hadc1.Init.DiscontinuousConvMode = DISABLE;
  hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
  hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
  hadc1.Init.DMAContinuousRequests = ENABLE;
  hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED;
  hadc1.Init.OversamplingMode = DISABLE;
hanwe 发表于 2020-1-22 22:59 | 显示全部楼层
那个型号?
 楼主| houcs 发表于 2020-1-22 23:05 | 显示全部楼层
STM32L476
zhuww 发表于 2020-1-22 23:08 | 显示全部楼层
这是 ADC 采用保持电路工作引起的, 逐次比较类型的 ADC 都这样. 你的信号源的阻抗越小, 这个脉冲就越小.
huwr 发表于 2020-1-22 23:11 | 显示全部楼层
其实采样时间超过这个 波形宽度越大, 那么影响越小
 楼主| houcs 发表于 2020-1-22 23:13 | 显示全部楼层
谢谢解答,有办法彻底规避吗?软件\硬件方法都可以,求指点
chuxh 发表于 2020-1-22 23:16 | 显示全部楼层
降低采样速度看看;
 楼主| houcs 发表于 2020-1-22 23:18 | 显示全部楼层
产品要求,采样频率已经是最慢,不能在下降了。
dingy 发表于 2020-1-22 23:23 | 显示全部楼层
那就只能这样了,或者结果矫正。
wuhany 发表于 2020-1-22 23:27 | 显示全部楼层
没办法的,你可以做隔离,比如用跟随器隔离两边。这样就不会影响到那边数据
 楼主| houcs 发表于 2020-1-22 23:30 | 显示全部楼层
没办法了,现在只能在提高一下采样频率
yinxiangh 发表于 2020-1-22 23:32 | 显示全部楼层
然后算平均数?
 楼主| houcs 发表于 2020-1-22 23:34 | 显示全部楼层
嗯,目前测试可以
pangb 发表于 2020-1-22 23:35 | 显示全部楼层
试试降低采样速度
您需要登录后才可以回帖 登录 | 注册

本版积分规则

743

主题

8382

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部