沐紫 发表于 2015-4-22 13:16:29

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

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

这是网友在FAQ栏目中的提问,欢迎大家去FAQ帮助解答:https://www.stmcu.org.cn/faq/index/detail/id-70522

魏科 发表于 2015-4-22 13:16:30

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

bldc小菜鸟 发表于 2015-4-22 13:45:19

技术手册上就是这么说的。

wambob 发表于 2015-4-22 21:48:16

外设使用DMA是有芯片制造商决定的,你只能参考手册DMA,没有为什么

qimeiya 发表于 2015-5-13 16:53:24

顶一个:)

chendiand 发表于 2015-5-13 17:41:55

魏科 发表于 2015-4-22 13:16
你好,所谓的高级定时器其实有一个通用特征,就是高级定时器可以同时输出2X3总共6路PWM波形,2X3一般是6路 ...

学习了。。。。。。。。

wz002 发表于 2015-5-13 22:20:13

:):):):):)
页: [1]
查看完整版本: 通过dma和通用定时器产生任意波形