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

32G中断采集ADC速度

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-04-30 11:28:17
已绑定手机

7

主题

48

回帖

557

积分

高级会员

积分
557
发表于 2024-6-19 20:31:19 | 显示全部楼层 |阅读模式
32G中断采集ADC速度采集20ms内读取19次,中断优先级调到2级。
采用同样配置用DMA方式采集256次。
请问什么原因会导致中断速度这么慢?
正常情况下DMA比中断读取快多少?

回复

使用道具 举报 送花

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

717

主题

1万

回帖

1万

积分

管理员

积分
15613
发表于 2024-6-19 20:47:32 | 显示全部楼层
用仿真功能仿真看下,程序错在哪
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-6-20 10:23:58 | 显示全部楼层
中断采集速度跟ADC转换速度和中断执行时间有关。
所有中断都不要写太多程序,避免影响其它功能的响应速度。
附件例程供参考,在ADC中断里面加个IO口翻转,就可以测出产生中断的频率。

16路ADC中断轮询采样-串口1返回结果-STC32.zip

8.74 KB, 下载次数: 106

回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-6-22 23:26:37 | 显示全部楼层
可以看看我写的FFT频谱程序,采样25600Hz。也可以看看示波器程序,最高采样500KHz。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-04-30 11:28:17
已绑定手机

7

主题

48

回帖

557

积分

高级会员

积分
557
发表于 2024-7-1 08:35:39 来自手机 | 显示全部楼层
梁工 发表于 2024-6-22 23:26
可以看看我写的FFT频谱程序,采样25600Hz。也可以看看示波器程序,最高采样500KHz。 ...

我现在用DMA读ADC,采集市电,半波整流,ADC采集速度计算到12.8k,想20ms内采集256次。考虑到是一个完整的正弦波采集周期,所以采集的9路是一个DMA采集完成,中断保留结果,然后继续开始DMA读ADC。但是在读取过程中,测量市电压AD值会在2200-2600之间缓慢变化,吹风机电流会在150-350之间变化。DMA总线中断优先级都是3级。是这样循环采集原因还是说需要一个需要一个过零采样或是20ms中断启动?

点评

采样50Hz交流信号计算RMS这类应用,使用均匀采样,采样时间按20ms的倍数采样20*N ms,20ms采样100次以上比较好,我一般使用10KHz~20KHz采样,对应20ms采样200~400次。 1、使用定时器中断触发ADC,ADC中断读取结果并  详情 回复 发表于 2024-7-1 09:39
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-04-30 11:28:17
已绑定手机

7

主题

48

回帖

557

积分

高级会员

积分
557
发表于 2024-7-1 09:09:21 来自手机 | 显示全部楼层
梁工 发表于 2024-6-22 23:26
可以看看我写的FFT频谱程序,采样25600Hz。也可以看看示波器程序,最高采样500KHz。 ...

是市电频率在变?过零启动,固定一个20ms采集256次,还是计算市电频率,然后一个周期内采集采集256次?但是用DMA采集ADC如何微调时间?

点评

你采样50Hz信号的?主楼一开始说采样的是市电50Hz信号,我就直接建议处理方法了。 采样50Hz交流信号计算RMS这类应用,使用均匀采样,采样时间按20ms的倍数采样20*N ms,20ms采样100次以上比较好,我一般使用10KHz~20  详情 回复 发表于 2024-7-1 09:34
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-7-1 09:34:43 | 显示全部楼层
本帖最后由 梁工 于 2024-7-1 09:41 编辑
zgrfo*** 发表于 2024-7-1 09:09
是市电频率在变?过零启动,固定一个20ms采集256次,还是计算市电频率,然后一个周期内采集采集256次?但 ...

你采样50Hz信号的?主楼一开始说采样的是市电50Hz信号,我就直接建议处理方法了。
采样50Hz交流信号计算RMS这类应用,使用均匀采样,采样时间按20ms的倍数采样20*N ms,20ms采样100次以上比较好,我一般使用10KHz~20KHz采样,对应20ms采样200~400次。
使用高级PWM自动触发是最佳方案,ADC中断读取结果并计算平方和或累加和,ADC中断设置为最高优先级。
回复 支持 反对

使用道具 举报 送花

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

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2024-7-1 09:39:42 | 显示全部楼层
本帖最后由 梁工 于 2024-7-1 09:40 编辑
zgrfo*** 发表于 2024-7-1 08:35
我现在用DMA读ADC,采集市电,半波整流,ADC采集速度计算到12.8k,想20ms内采集256次。考虑到是一个完整 ...

采样50Hz交流信号计算RMS这类应用,使用均匀采样,采样时间按20ms的倍数采样20*N ms,20ms采样100次以上比较好,我一般使用10KHz~20KHz采样,对应20ms采样200~400次。
1、使用定时器中断触发ADC,ADC中断读取结果并计算平方和或累加和。
2、使用高级PWM自动触发ADC,ADC中断读取结果并计算平方和或累加和。
3、多通道时,在定时器中断里触发DMA,DMA中断读取结果并计算平方和或累加和。
使用到的中断设置为最高优先级。

可以参考我的例子:
交流电压/直流电压ADC测量, 计算有效值 ,送【STC-ISP|调试接口】显示
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=2199

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:35
  • 最近打卡:2025-04-30 11:28:17
已绑定手机

7

主题

48

回帖

557

积分

高级会员

积分
557
发表于 2024-7-2 13:22:57 来自手机 | 显示全部楼层
梁工 发表于 2024-7-1 09:39
采样50Hz交流信号计算RMS这类应用,使用均匀采样,采样时间按20ms的倍数采样20*N ms,20ms采样100次以上比 ...

用了过零检测,采集了两个完整的正弦波,启动就把十个全部采集完。个位数跳动厉害,就这样吧,要求不高。
回复 支持 反对

使用道具 举报 送花

0

主题

8

回帖

62

积分

注册会员

积分
62
发表于 2024-11-17 17:24:30 | 显示全部楼层
你Q多少  想请教交流信号采集  1276199975  我QQ

点评

有问题可以在这里提出。  详情 回复 发表于 2024-11-18 14:47
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 04:14 , Processed in 0.155789 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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