硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1417|回复: 9
收起左侧

[ADC] STM32H743进行4Mhz的DMA采样周期对不上

[复制链接]

4

主题

9

回帖

21

积分

新手上路

积分
21
发表于 2024-6-20 10:44:01 | 显示全部楼层 |阅读模式
本帖最后由 冰泮-Y 于 2024-6-20 10:45 编辑

遇到问题:定时器T1以4Mhz触发ADC(PA6)采样,DMA缓存4100个点。理论上采集40Khz的正弦波,测试DMA的200个缓存数据应该有2个周期,可是实际有3个多周期(如图1)。

疑惑:已经使用了高速通道PA6,同时降低ADC分辨率为12位;测试400Khzc采样频率采集200个4Khz的正弦波点是正常的,为何4Mhz不对了呢?



(图1)

(图1)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-20 11:16:28 | 显示全部楼层
注意这个问题,可以试试2Msps,12bit,这个不管那个封装,肯定是没问题的。

STM32H7中ADC功能被ST玩出花,现在分直接通道,快速通道和慢速通道,不同封装最高速不同, LQFP封装速度最低
https://forum.anfulai.cn/forum.php? ... id=97343&fromuid=58
(出处: 硬汉嵌入式论坛)

回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-6-20 13:58:42 | 显示全部楼层
eric2013 发表于 2024-6-20 11:16
注意这个问题,可以试试2Msps,12bit,这个不管那个封装,肯定是没问题的。

STM32H7中ADC功能被ST玩出花 ...

谢谢eric答复!另外想请教下,我想使用产生的100HZ的PWM信号的上升沿控制高频ADC采样的启停,请问有什么推荐的方法吗
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-21 08:57:45 | 显示全部楼层
冰泮-Y 发表于 2024-6-20 13:58
谢谢eric答复!另外想请教下,我想使用产生的100HZ的PWM信号的上升沿控制高频ADC采样的启停,请问有什么 ...

这个使用外部中断触发就行。
回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-6-25 16:36:11 | 显示全部楼层
eric2013 发表于 2024-6-21 08:57
这个使用外部中断触发就行。

硬汉哥,我想请问下在外部中断触发下,每次中断到读取DMA都会有一小段延迟误差。导致我30组采集的250kHZ正弦波相位不对齐,有什么好的解决方法吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-26 08:34:02 | 显示全部楼层
冰泮-Y 发表于 2024-6-25 16:36
硬汉哥,我想请问下在外部中断触发下,每次中断到读取DMA都会有一小段延迟误差。导致我30组采集的250kHZ ...

可以考虑使用DMA双缓冲方式
回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-6-26 10:54:15 | 显示全部楼层
eric2013 发表于 2024-6-26 08:34
可以考虑使用DMA双缓冲方式

我在代码中并没有打开DMA中断,仅仅是外部中断(100hz脉冲)触发读取DMA数据,这样也会有很大延迟吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-27 08:57:03 | 显示全部楼层
冰泮-Y 发表于 2024-6-26 10:54
我在代码中并没有打开DMA中断,仅仅是外部中断(100hz脉冲)触发读取DMA数据,这样也会有很大延迟吗?

你现在的采样率是多少,误差是多少。另外能保证每组都是对应位置采集的吗
回复

使用道具 举报

4

主题

9

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2024-6-27 10:16:22 | 显示全部楼层
eric2013 发表于 2024-6-27 08:57
你现在的采样率是多少,误差是多少。另外能保证每组都是对应位置采集的吗

采样率4Mhz,每次触发的误差在1us以上(每组的波形相位像是随机的,不能保证同一位置开始采集)有解决方法吗?因为对于250KHz的正弦波而言,每次存在一点相位误差最终算平均值结果就很难看
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117564
QQ
发表于 2024-6-28 09:26:26 | 显示全部楼层
冰泮-Y 发表于 2024-6-27 10:16
采样率4Mhz,每次触发的误差在1us以上(每组的波形相位像是随机的,不能保证同一位置开始采集)有解决方法 ...

这个速度的话,误差造成已经不在ADC上了,得想办法解决你的触发位置采集问题。这种的可以考虑从触发位置开始,往后查找到一个更符合条件的位置点作起始点,不知道满足需求不。

回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 01:35 , Processed in 0.048777 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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