一、PWM模块介绍
PWM在工业领域应用很广,是实现D/A转换和精确脉冲序列输出的有效手段。许多单片机都设置了PWM输出功能。XEP100单片机的PWM模块具有如下特点:
(1)XEP100单片机具有8个可编程的PWM通道,与单片机的PP0—PP7管脚复用。每个通道的周期和占空比是可以独立控制的,8个通道都是8位精度的。通过设置寄存器PWMCTL可以将相邻的两个通道连接成一个16位精度的PWM通道,因此一个XEP100单片机可以提供4个16位精度的PWM通道;
(2)每个PWM通道都有独立的计数器;
(3)每个通道都可以设置为使能或禁能状态;
(4)每个通道占空比的极性是可以通过软件选择的,通过设置寄存器PWMPOL实现,相应的位置1为高电平有效,清0为低电平有效;
(5)周期和占空比循环是双缓冲的,在每个周期结束时,更新的设置就可以生效;
(6)每个通道可以独立的设置为左对齐和中央对齐模式,通过设置寄存器PWMCAE进行设置;
(7)PWM模块有4个时钟(A、B、SA和SB)能够提供宽范围的频率;
(8)可编程的时钟选择逻辑;
(9)紧急停止功能。
PWM在控制中应用广泛,可以用于电机调速,舵机控制,步进电机控制等,在本实验中,我们只介绍如何使用单片机的PWM模块来产生PWM信号。关于PWM的深层次的应用,读者可以自己研究练习。
二、例程测试
在这个实验中,我们通过单片机的PWM模块输出一路1Hz的方波信号,并用这个方波型号对LED灯进行控制。
在这个实验的程序中,主要的代码是PWM模块的初始化,如下所示
void init_pwm(void)
{
PWMCTL_CON01= 1; //联结通道0,1为16位的PWM
PWMPOL_PPOL1= 1; //通道01的极性为高电平有效
PWMPRCLK = 0x55; //A时钟和B时钟的分频系数为32,频率为1MHz
PWMSCLA = 100; //SA时钟频率为5KHz
PWMSCLB = 100; //SB时钟频率为5KHz
PWMCLK =0x02; //通道01用SA时钟作为时钟源
PWMCAE = 0x00; //脉冲模式为左对齐模式
PWMPER01 = 5000; //通道01的周期为1Hz
PWMDTY01 = 1000; //通道01的占空比为20%
PWME_PWME1 = 1; //使能通道01
}
为了能够看懂代码,我们对PWM模块的工作原理进行简单介绍。XEP100单片机的PWM模块可以独立生成8路8位的PWM信号,可以将这8路PWM信号,两两级联成4路16位的PWM信号,PWMCTL_CON01= 1;这一句就是将0通道和1通道级联成一个16位的PWM通道。PWMPOL_PPOL1= 1;设置级联后的01通道极性为高电平有效。
PWM模块的时钟来源是总线时钟,为了用来生成PWM信号,PWM模块可以生成自己内部的时钟,它内部有4个时钟,分别为A、B、SA、SB。其中A和B时钟通过总线分频得到,SA和SB时钟通过A和B时钟分频得到。在这个代码中,PWMPRCLK = 0x55;将A和B时钟的分频系数都设置为32,由于总线时钟的频率设置为32MHz,所以A和B时钟的频率为1MHz。PWMSCLA和PWMSCLB寄存器用来设置SA和SB时钟的分频系数,程序中设置为100,以A和SA为例,Clock SA=Clock A/(2*PWMSCLA),所以SA和SB时钟的频率为5KHz。PWMCLK =0x02;这一句将01通道的时钟源设置为SA时钟。
PWMCAE=0x00; 将脉冲模式为左对齐模式。
PWMPER01和PWMDTY01分别用来设置PWM的周期和占空比,PWMPER01设置PWM的周期,代码中PWMPER01的值为5000,由于SA时钟的频率为5KHz,时钟的周期为0.2ms,所以PWM的周期为0.2ms*5000=1s。PWMDTY01设置PWM的占空比,占空比的值为PWMDTY01/PWMPER01=1000/5000=20%。
最后将01通道使能,设置之后01通道就会源源不断的输出方波信号,频率为1Hz,占空比为20%。将PWM信号与LED灯连接起来就可以看到LED以1Hz的频率闪烁。
上一篇:飞思卡尔16位单片机(九)——ECT模块测试
下一篇:飞思卡尔16位单片机(七)——SCI串口测试
推荐阅读最新更新时间:2024-11-13 16:59
设计资源 培训 开发板 精华推荐
- “泰”想开车 智能篇:智能网联汽车,实现无忧驾驶
- 是德科技(Keysight)感恩月,百台仪器免费送!
- 泰科电子工业事业部邀您云逛展 ——打破时间、空间的限制,TE Connectivity 线上工博会为您带来沉浸式VR观展体验
- TI 有奖直播 | 毫米波雷达在楼宇自动化的应用
- 有奖直播:瑞萨电子安全物联网套件为您提供安全云联接解决方案
- 【已结束】直播“戴”“芯”:英飞凌可穿戴设备保姆级解决方案
- 【赠书100%有礼】一本书教你如何开发测试系统,深入了解数据采集系统
- vishay照明,智勇闯关赢好礼!
- ADI有奖下载活动之18 ADI双光束分光光度计演示系统和解决方案
- EEWorld加磅双重礼 ELEXCON深圳国际电子展诚邀您参加