飞思卡尔MC9S12X PWM驱动

今天带着大家学习飞思卡尔MC9S12X PWM驱动

首先什么是PWM及应用

脉冲宽度调制(PWM)是产生精确脉冲序列输出和实现D/A转换的有效方法,微控制器的脉宽调制模块被广泛应用于工业控制和新型消费机电产品中(如智能空调、节能冰箱、电动自行车等)。PWM信号通过软件编程调节波形的占空比、周期和相位,能够用于直流电动机调速、伺服电动机控制、D/A转换器等应用。

MC9S12X的PWM模块概述

MC9S12XS系列产生PWM信号的方法主要有两种:利用输出比较功能和MCU内置的PWM模块实现。利用输出比较功能可以通过软件编程设定输出任意脉冲信号,但会占用CPU资源,而且不易产生精确的脉冲序列;而MCU内部集成的PWM模块专门用于输出PWM信号,使用时极少占用CPU资源。

MC9S12XS128内置的PWM模块框图

飞思卡尔MC9S12X PWM驱动

MC9S12XS128PWM模块具有88位独立PWM通道,通过相应设置也可以变为416PWM通道,每个PWM通道由独立运行的8位通道计数器PWMCNT、两个比较寄存器为通道周期寄存器PWMPER和占空比寄存器PWMDTY等组成。通过对各寄存器的参数设置,确定PWM波形的输出周期和占空比,另外还可以通过通道极性寄存器PWMPOL和居中对齐使能寄存器PWMCAE设置PWM输出脉冲波形的极性和对齐方式。

PWM模块具有以下基本特征:

l具有可编程周期和占空比的8个独立PWM通道;
l每个PWM通道具有独立的计数器;
l每个通道可编程允许/禁止PWM功能;
l每个通道可软件选择PWM脉冲极性;
l具有双缓冲的周期和占空比寄存器,当到达有效周期终点(PWM计数器到达0)或通道禁止时,修改值生效;
l每个通道可编程中心对齐或左对齐输出;
l88位通道或416位通道PWM分辨率;
l4个时钟源(ABSASB)提供宽频带频率;
l可编程的时钟选择逻辑;
l紧急关闭功能。

下面一起看下PWM模块寄存器

飞思卡尔MC9S12X PWM驱动

下面一起结合代码一起看下PWM驱动

飞思卡尔MC9S12X PWM驱动

PWM模块初始化主要包括:联接pwm0 pwm1 其实就是配成16位的pwm ,周期和占空比都可以达到16位

8位PWM0的话  周期占空比只能达到255,下面就是设置分频系数、时钟什么的、通过设置的时钟配置自己想要的PWM波形(就是配置相应的周期值和占空比值)、最后使能。。。

如需获取相关驱动源码,可以关注下微信公众号“嵌入式软件开发学习圈”,在微信公众号留言,获取相关资料,微信公众号还有其他相关学习资料,感兴趣的朋友们可以关注下,公众号内每天分享嵌入式学习资讯、汽车电子最新资讯等等

飞思卡尔MC9S12X PWM驱动