2 u013159804 u013159804 于 2016.05.02 01:32 提问

如下,STM32F103RCT6怎么产生15.6K占空比可调的PWM

现在硬件已经确定
引脚A8,A9,A10 功能有TIM1 CH 1,2,3
左电机A,B,C三相 0时关断 1时导通 上MOSFET接VIN
引脚B13,B14,B15 功能有TIM1 CH 1 N,2 N,3 N
左电机A,B,C三相 1时关断 0时导通 下MOSFET接GND

引脚C6,C7,C8 功能无 重定义功能TIM3 CH 1,2,3
右电机A,B,C三相 0时关断 1时导通 上MOSFET接VIN
引脚A7,B0,B1 功能有TIM3 CH 2,3,4 重定义功能 TIM1 CH 1N,2N,3N
右电机A,B,C三相 1时关断 0时导通 下MOSFET接GND

STM32使用内部晶振 64M主频

现在两个电机 共6个桥臂,每个桥臂有两个MOS管

问题是 目前需要这6个桥臂都能产生15.6K,占空比精度至少为1.2%的PWM,该PWM的产生,当输出为高时,上MOS导通,下MOS关断。当输出为低时,上MOS关断,下MOS导通。即同一时刻上下MOS必须有且只有一个导通。另外同一个电机的3个桥臂PWM输出需要中心对齐。左电机用TIM1没有问题,关键是右电机功能冲突,配不出来像样的PWM。

楼主目前只分析出来并尝试了以下几种方案:

1.用定时中断计数,计数值在某个范围内时控制电平翻转。由于64M主频,15.6K的PWM,占空比精度1.2%的话,也就是需要50个时钟周期就需要进行一次中断,并且执行完中断函数中的各类判断的语句。处理速度跟不上,用不成。

2.用定时器中断进行电平翻转,同时改变定时器中断周期。这样在两次定时器中断之间,由于需要执行一部分程序,会存在一个最小的延时。这种方法可以产生15.6K 占空比在6%~94%之间可满足精度要求的占空比。但存在的问题是需要有三个PWM输出,而且是中心对齐。如果在同一个定时器中去按上面这个方法去做,那么两个PWM占空比至少得相差6%,而实际上两者之间可相差任意值。另外如果是用TIM2,TIM3,TIM4这四个定时器的中断分别翻转来控制产生占空比,那怎么对齐呢?有点想不通了。。

3.在WHILE(1)的大循环里面用计时器计数,进行电平翻转,这样可以正常输出。但问题是在执行中断时,会影响到计数,输出波形不稳定。

4.另外还有一个是直接用TIM3,用C6,C7,C8输出PWM,可以控制接VIN的3个MOS管导通或者关断,但无法保证接GND的3个MOS管在合适的时间导通或者关断。楼主对STM32了解还不是特别深入,了解到PWM输出是通过比较设定值与当前计数值大小来进行输出的,但不清楚是不是可以通过这个设定值与当前计数值比较产生中断呢,如果能通过这种方法产生中断,就可以在中断中翻转对应桥臂的下MOS管,这样就可以在上MOS关开通时,下MOS管关断,上MOS管关断时,下MOS管开通了。

求教求教,谢谢大家!

1个回答

devmiao
devmiao   Ds   Rxr 2016.05.02 05:13
u013159804
u013159804 谢谢,但这个不行的
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MSP430G2253 产生占空比可调的PWM
msp430 msp430G2553 PWM 占空比 可调 SPWM
频率、占空比可调的PWM波产生的C语言代码
在msp430中用C语言编写的程序代码,可产生频率和占空比调的PWM波,若改变频率,若要保持原占空比不变,则需重新设置占空比
STM32通用定时器实现频率占空比可调互补PWM输出
利用STM32的通用定时器,通过多种方法实现互补PWM波形的输出,并且实现频率和占空比可任意调节,高级定时器资源有限,资源不够又需要输出(互补)PWM时此为有效的解决方法
avr频率占空比可调波形输出子函数
avr单片机通过调用此函数轻松输出任意频率任意占空比的方波,然后#include<KPWM.H>就行了 ,也可直接COPY出来用:),当然要注意的是函数产生的频率都是以K为单位的,要是需要0-100Hz的频率的话,自己修改一下主频计算部分的公式,大家一看都明白了的
利用单片机定时器产生的占空比可调的PWM程序
利用单片机定时器产生的占空比可调的PWM程序,采用C51编写的。
555可调PWM波发生器,可以调节占空比。
555可调PWM波发生器,Proteus仿真模型。
硬件电路设计-NE555实现占空比可调的100KHZ的PWM方波
NE555仿真PWM波形,占空比可调,频率为100KHZ,硬件电路搭建,软件运行环境为Multisim,仿真成功。如有疑问请联系QQ:3103800391(秋水)
stm32f103pwm输出 频率连续可调 占空比可变
适用于stm32f103开发板,主要是实现pwm输出,同时可以实现频率连续可调和占空比的连续可变
STM32F4_TIM输出PWM波形(可调频率、占空比)
Ⅰ、概述 上一篇文章关于STM32基本的计数原理明白之后,该文章是在其基础上进行拓展,讲述关于STM32比较输出的功能,以输出PWM波形为实例来讲述。 提供实例工程中比较实用的函数:只需要调用该函数,参数为频率和占空比 void TIM2_CH2_PWM(uint32_t Freq, uint16_t Dutycycle);   先看一下实例中1KHz、20%占空比波形图 TIM2_CH
Labview程序---占空比可调方波发生器
可作为PWM控制,的输出发生器 占空比可调