你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

DMAMUX 使用内部外设Request Event(不使用TIM12和LPTIM)

[复制链接]
talk is cheap 提问时间:2025-12-8 16:08 / 未解决

问题描述:如何使用内部外设(TIM2)产生DMAMUX请求事件,作为其他外设的同步触发请求,硬件平台:STM32H750XBH7。 问题背景:首先描述业务逻辑:仪器需要定时10KHz频率通过DMA双缓冲向SPI总线(SPI菊花链控制多路DAC,已测试正常)上发送数据,同时触发一路串口发送ASCII数据(100Hz或者10Hz),仪器的主要性能指标在于jiteer(尽量避免定时触发的不稳定性,由于仪器是一个连续时间过程,jitter-定时触发的快慢变化会随着时间的累计误差逐渐增大),当前使用25M外部晶振(测试内部RC晶振-0.08%抖动会引起很大的累计偏差)+TIM12触发SPI和串口(均使用DMA双缓冲,数据不经过CPU),当前使用示波器解码(5M的SPI总线,示波器100Msa/s)观察,估算1s计时累计的时间抖动约在0.5ms附近。 image.png 期望结果:由于当前定时触发+SPI双缓冲链路过长,jitter属于不确定性因素,受限于硬件传输线路/温漂等因素,当前期望对其偏差进行补偿,通过调节定时器ARR自动重装载的数值来进一步减小误差(通过测量的频率来反馈修改定时器ARR数值),但不论是TIM12/LPTIM1/2/3均是16位,能够操作的空间很小,只能使用TIM2-32bit.

当前网上例程安富莱/ST论坛/CubeMX例程均使用TIM12/EXTI/LPTIM同步触发,当使用内部外设请求生成时,需要生成同步信号DMAMUX1_event,否则无法使用内部外设的触发信号(如果是硬连线的方式,理论和同步信号一样不经过中断,不跳转到对应的HAL_DMA_IRQHandler(&hdma_tim2_ch1)和HAL_DMAEx_MUX_IRQHandler(&hdma_tim2_ch1);,不知道生成事件后是否需要在中断进行操作),自己使用CubeMX配置这一部分无法同步触发(CubeMX例程全是使用LPTIM同步触发),希望给予指导或者参考例程 image.png

image.png

image.png

image.png
image.png
image.png
image.png
收藏 评论0 发布时间:2025-12-8 16:08

举报

0个回答

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版