打印

STM32F103ZET6主频72M,输出24路50HZ,占空比可调的PWM

[复制链接]
5103|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
luxinsun|  楼主 | 2010-6-8 21:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的要求是16bit,并且每路占空比都可调。24路pwm输出只是其中的一个很小的任务。大家评估一下,最好用硬件PWM来做,不要浪费太多cpu资源。
沙发
司徒老鹰| | 2010-6-8 22:10 | 只看该作者
不懂,帮顶~~

使用特权

评论回复
板凳
香水城| | 2010-6-8 23:11 | 只看该作者
使用STM32定时器的PWM输出模式,每个定时器的4个通道全部打开,这样所有通道的频率是一样的,4个TIMx_CCR寄存器可以分别调整4个通道的占空比。

STM32固件库中有PWM输出模式的例子,稍加修改可用于4个通道。

使用特权

评论回复
地板
luxinsun|  楼主 | 2010-6-9 13:14 | 只看该作者
香水城,
我的cpu跑在72M,输出的PWM的频率是50HZ,怎么才能把频率调到50HZ.

使用特权

评论回复
5
香水城| | 2010-6-9 14:16 | 只看该作者
香水城,
我的cpu跑在72M,输出的PWM的频率是50HZ,怎么才能把频率调到50HZ.
luxinsun 发表于 2010-6-9 13:14


STM32的定时器是16位,最大计数65536;50Hz的周期是20ms,如果把72MHz进行22分频,在16位计数范围可以获得50Hz的周期。

所以只要把72MHz分频系数设置为大于22即可产生50Hz的PWM信号。

使用特权

评论回复
6
hua00| | 2010-6-9 15:01 | 只看该作者
路过

使用特权

评论回复
7
luxinsun|  楼主 | 2010-6-9 16:30 | 只看该作者
香水城,
我明白了,先试验一下。谢谢。

使用特权

评论回复
8
香水城| | 2010-6-10 18:08 | 只看该作者
顺便看了一下引脚分配,100脚的STM32刚好可以有24个定时器通道,符合楼主的需要:

       CH1    CH2    CH3    CH4
TIM1:   PE9    PE11    PE13  PE14   使用remap
TIM2:   PA15  PB3      PB10  PB11   使用remap
TIM3:   PA6    PA7      PB0    PB1
TIM4:   PB6    PB7      PB8    PB9
TIM5:   PA0    PA1      PA2    PA3
TIM8:   PC6    PC7      PC8   PC9

使用特权

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

本版积分规则

11

主题

102

帖子

1

粉丝