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

[复制链接]
610|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吗?这种方式应该能满足你的微秒级时间精度。
童雨竹 发表于 2025-3-10 08:14 | 显示全部楼层
HAL库里应该有个HAL_TIM_PWM_PulseFinishedCallback,或许能利用它来控制DAC和ADC的启动时间。
万图 发表于 2025-3-10 08:16 | 显示全部楼层
我之前用STM32F4时,通过TIM触发DAC和ADC的DMA,效果还不错,F2应该也有类似的功能。
Wordsworth 发表于 2025-3-10 08:17 | 显示全部楼层
建议研究一下定时器的触发输出功能(TRGO),它能精准触发DAC和ADC的DMA传输。
Bblythe 发表于 2025-3-10 08:19 | 显示全部楼层
如果搞不定HAL库的话,可以直接用寄存器来配置TIM的触发功能,更灵活一些。
Pulitzer 发表于 2025-3-10 08:21 | 显示全部楼层
STM32F207的TIMx_CR2寄存器里有个MMS字段,可以配置成触发输出模式,或许能帮上忙。
Uriah 发表于 2025-3-10 08:22 | 显示全部楼层
用定时器的主从模式也许更稳妥,主定时器控制触发DAC,子定时器再延时触发ADC。
Clyde011 发表于 2025-3-10 08:24 | 显示全部楼层
如果仅仅是微秒级的时间控制,搞个精准的方波信号来触发DMA也许会更容易些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

53

帖子

0

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