找回密码
 立即注册
楼主: 我的用户名

ADC采集为什么有时候是0?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:403
  • 最近打卡:2025-04-29 08:28:43

12

主题

319

回帖

2017

积分

金牌会员

积分
2017
发表于 2023-12-23 13:38:19 | 显示全部楼层
采用DMA_ADC功能,通过软件去掉极值,再算平均值。https://www.stcaimcu.com/forum.p ... D%E5%87%86%E4%BA%86
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2024-01-15 09:24:33

1

主题

12

回帖

82

积分

注册会员

积分
82
发表于 2023-12-25 12:08:08 | 显示全部楼层
我初次弄的时候,没加参考电压,就是随机的,不知道你加没加参考电压
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-12-25 12:52:15 | 显示全部楼层
ADC是硬件外设,每次转换都执行相同的操作:采样-量化,输入电压部位0,不会读到0的。请用示波器仔细看看ADC输入脚的信号是否有干扰。ADC输入脚一定要设置为高阻。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-25 13:44:06 | 显示全部楼层
jw*** 发表于 2023-12-23 13:38
采用DMA_ADC功能,通过软件去掉极值,再算平均值。https://www.stcaimcu.com/forum.php?mod=viewthread&tid ...

8H1K08没有DMA功能
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-25 13:45:25 | 显示全部楼层
梁*** 发表于 2023-12-25 12:52
ADC是硬件外设,每次转换都执行相同的操作:采样-量化,输入电压部位0,不会读到0的。请用示波器仔细看看AD ...

已经高阻了,不高阻的话测出来完全不准的,现在一切正常,只是而尔出现一次0值
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2023-12-25 13:54:45 | 显示全部楼层

参考下图:
截图202312251353548100.jpg

截图202312251354355252.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-25 17:41:12 | 显示全部楼层
谢谢各位大神的回复,多谢了!
回复 支持 反对

使用道具 举报 送花

3

主题

13

回帖

81

积分

注册会员

积分
81
发表于 2024-4-16 15:23:18 | 显示全部楼层
这个问题时STC单片机自带AD的一个BUG,STC的绝大部分自带AD单片机型号都有这个BUG,AD采样数据都会随机出0,不是程序问题,技术解答说要在AD输入端并接一个RC电路,并且电容值不能太小,这样才不会随机出0,但是这样一来,STC单片机自带AD的使用就局限了,只能测量直流电压或低频率交流信号,不能测量方波信号和高频率信号,都被RC电路过滤成平滑的波形了。

点评

你有确凿的证据说是BUG吗? 最经典的就是做示波器,ADC后显示波形,我从来没发现有出现0的情况,哪怕用500KHz的速度采样显示波形(比如观察10KHz的正弦波),都没有发现过出现0,因为出现0的时候,波形会很难看的。  详情 回复 发表于 2024-4-18 10:26
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-4-18 10:26:47 | 显示全部楼层
本帖最后由 梁工 于 2024-4-18 10:30 编辑
any8*** 发表于 2024-4-16 15:23
这个问题时STC单片机自带AD的一个BUG,STC的绝大部分自带AD单片机型号都有这个BUG,AD采样数据都会随机出0 ...

      我没有发现能读到0.
      最经典的就是做示波器,ADC后显示波形,我从来没发现有出现0的情况,哪怕用500KHz的速度采样显示波形(比如观察10KHz的正弦波),都没有发现过出现0,因为出现0的时候,波形会很难看的。如果谁测试示波器发现波形中有读到0的情况,可以告知我。
      输入接RC是ADC基本都用的,不是仅仅STC的ADC要用,用于滤除干扰、抗混叠滤波(你可以了解下什么是抗混叠),至于说只能测低频交流信号,频率高低都是相对的(比如1MHz相对工频就是高频,但相对射频就是低频),我不知道你说的高频是多高。接了RC,比如1K+1nF,其低通转折频率为159KHz,RC值为1us,这个时间已经小于500KHz的2us了,也就是说,输入使用1K+1nF滤波(RC值1us),使用500KHz采样(2us间隔),则即使输入方波信号,某次采样时电平为0,采样完成出现上升沿,则下次采样幅度已经升到86.5%了,如果使用100KHz采样,则完全可以忽略RC值的影响。
RC的C还可以给采样电容瞬间供电,减小输入电阻的影响,这个你可以参考别的贴的论述。

       几十年来我看到的、用过的ADC输入电路,不管是单独的ADC芯片还是MCU自带的ADC,基本都是带RC的,就是基于上述原因。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:18
  • 最近打卡:2025-01-16 21:37:59

3

主题

11

回帖

123

积分

注册会员

积分
123
发表于 2024-4-23 20:56:55 | 显示全部楼层
我也遇到了这个情况,用的是stc8g1k08的单片机,采样时很容易出现0的现象,最后多次采集去掉0后取平均数,但是总感觉哪里不对,对于一个成熟的单片机不会出现这种情况,但是遇到了想知道是什么原因
回复 支持 1 反对 0

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:19 , Processed in 0.236124 second(s), 122 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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