STM32/STM8技术论坛
直播中

郑聪

7年用户 191经验值
私信 关注
[问答]

通过dma和通用定时器产生任意波形

有谁用过STM32f103的定时器?为什么高级定时器可以使用DMA,但是通用定时器不可以使用DMA?


回帖(7)

李艳婷

2018-9-26 09:26:01
你好,所谓的高级定时器其实有一个通用特征,就是高级定时器可以同时输出2X3总共6路PWM波形,2X3一般是6路两两互补的PWM波形,一般用于在无刷直流电机的驱动,2X3路PWM,可以驱动一个电机,STM32F03XXX系列只有一个高级定时器,所以只能驱动一个电机,STM32F103系列有2个高级定时器,可以同时驱动2个电机,因为一个电机的驱动需要6个PWM波形,这些波形之中一个相的互补波形不能同时为高或者低,必须时刻保持反向,不然电机就会烧坏,但是从高到低或者从低到高的,总会有几百微妙的延时,我们称为死区,STM32F103所有高级定时器都带有死区补偿功能,在高速电机控制中,我们都使用MCU的DMA进行数据传送,以便快速调整PWM波形的占空比或者周期,使用DMA的方式也可以防止因为程序的原因,让STM32F103死区补偿机制出现问题,所以STM32设计师在做这个的时候就已经考虑到这种应用,所以才添加了DMA通道,其他定时器虽然没有DMA通道,但是可以模拟DMA。希望对你有所帮助。
举报

刘欢

2018-9-26 09:32:48
技术手册上就是这么说的。
举报

袁富存

2018-9-26 09:38:15
外设使用DMA是有芯片制造商决定的,你只能参考手册DMA,没有为什么
举报

h1654155275.5614

2018-9-26 09:47:39
顶一个
举报

周玮

2018-9-26 09:54:20
引用: xiuzhen122 发表于 2018-9-26 13:40
你好,所谓的高级定时器其实有一个通用特征,就是高级定时器可以同时输出2X3总共6路PWM波形,2X3一般是6路两两互补的PWM波形,一般用于在无刷直流电机的驱动,2X3路PWM,可以驱动一个电机,STM32F03XXX系列只有一个高级定时器,所以只能驱动一个电机,STM32F103系列有2个高级定时器,可以同时驱动2个电机,因为一个电机的驱 ...

学习了。。。。。。。。
举报

汤敏树

2018-9-26 10:06:30
举报

alonggege

2019-7-11 10:50:22
不错的经验,感谢分享,学习中
举报

更多回帖

发帖
×
20
完善资料,
赚取积分