打印
[STM32F2]

DAC和ADC DMA转换之间有精确的时间间隔

[复制链接]
264|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cutfall|  楼主 | 2025-3-9 20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在测量产品中要求在连续的DAC和ADC DMA转换之间有精确的时间间隔。时间测量精确到微秒级,目前通过软件触发DMA传输以及在DAC和ADC DMA转换之间使用软件延时的方式,导致时间上的变动太大。
当前程序应用HAL库开发的stm32f207程序。已经搞了一周多定时器了,它太复杂了,弄不明白。
有没有一个简单的例子,在HAL中实现相隔N微秒启动的DACDMA和ADCDMA,并且每个功能都有1000个数据的缓冲区?

使用特权

评论回复
沙发
公羊子丹| | 2025-3-10 08:03 | 只看该作者
我之前也遇到过类似的问题,最后是用硬件触发才搞定的,软件延时确实很难精准。

使用特权

评论回复
板凳
周半梅| | 2025-3-10 08:10 | 只看该作者
STM32F2的定时器确实有点复杂,不过用触发器来同步DAC和ADC还是挺稳妥的。

使用特权

评论回复
地板
帛灿灿| | 2025-3-10 08:11 | 只看该作者
试过用定时器触发DAC和ADC的DMA吗?这种方式应该能满足你的微秒级时间精度。

使用特权

评论回复
5
童雨竹| | 2025-3-10 08:14 | 只看该作者
HAL库里应该有个HAL_TIM_PWM_PulseFinishedCallback,或许能利用它来控制DAC和ADC的启动时间。

使用特权

评论回复
6
万图| | 2025-3-10 08:16 | 只看该作者
我之前用STM32F4时,通过TIM触发DAC和ADC的DMA,效果还不错,F2应该也有类似的功能。

使用特权

评论回复
7
Wordsworth| | 2025-3-10 08:17 | 只看该作者
建议研究一下定时器的触发输出功能(TRGO),它能精准触发DAC和ADC的DMA传输。

使用特权

评论回复
8
Bblythe| | 2025-3-10 08:19 | 只看该作者
如果搞不定HAL库的话,可以直接用寄存器来配置TIM的触发功能,更灵活一些。

使用特权

评论回复
9
Pulitzer| | 2025-3-10 08:21 | 只看该作者
STM32F207的TIMx_CR2寄存器里有个MMS字段,可以配置成触发输出模式,或许能帮上忙。

使用特权

评论回复
10
Uriah| | 2025-3-10 08:22 | 只看该作者
用定时器的主从模式也许更稳妥,主定时器控制触发DAC,子定时器再延时触发ADC。

使用特权

评论回复
11
Clyde011| | 2025-3-10 08:24 | 只看该作者
如果仅仅是微秒级的时间控制,搞个精准的方波信号来触发DMA也许会更容易些。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

9

帖子

0

粉丝