飞思卡尔MC9S12X PWM驱动
今天带着大家学习飞思卡尔MC9S12X PWM驱动
首先什么是PWM及应用
脉冲宽度调制(PWM)是产生精确脉冲序列输出和实现D/A转换的有效方法,微控制器的脉宽调制模块被广泛应用于工业控制和新型消费机电产品中(如智能空调、节能冰箱、电动自行车等)。PWM信号通过软件编程调节波形的占空比、周期和相位,能够用于直流电动机调速、伺服电动机控制、D/A转换器等应用。
MC9S12X的PWM模块概述
MC9S12XS系列产生PWM信号的方法主要有两种:利用输出比较功能和MCU内置的PWM模块实现。利用输出比较功能可以通过软件编程设定输出任意脉冲信号,但会占用CPU资源,而且不易产生精确的脉冲序列;而MCU内部集成的PWM模块专门用于输出PWM信号,使用时极少占用CPU资源。
MC9S12XS128内置的PWM模块框图
MC9S12XS128的PWM模块具有8路8位独立PWM通道,通过相应设置也可以变为4个16位PWM通道,每个PWM通道由独立运行的8位通道计数器PWMCNT、两个比较寄存器为通道周期寄存器PWMPER和占空比寄存器PWMDTY等组成。通过对各寄存器的参数设置,确定PWM波形的输出周期和占空比,另外还可以通过通道极性寄存器PWMPOL和居中对齐使能寄存器PWMCAE设置PWM输出脉冲波形的极性和对齐方式。
PWM模块具有以下基本特征:
下面一起看下PWM模块寄存器
下面一起结合代码一起看下PWM驱动
PWM模块初始化主要包括:联接pwm0 pwm1 其实就是配成16位的pwm ,周期和占空比都可以达到16位
8位PWM0的话 周期占空比只能达到255,下面就是设置分频系数、时钟什么的、通过设置的时钟配置自己想要的PWM波形(就是配置相应的周期值和占空比值)、最后使能。。。
如需获取相关驱动源码,可以关注下微信公众号“嵌入式软件开发学习圈”,在微信公众号留言,获取相关资料,微信公众号还有其他相关学习资料,感兴趣的朋友们可以关注下,公众号内每天分享嵌入式学习资讯、汽车电子最新资讯等等