飞思卡尔应用笔记之PWM.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
飞思卡尔应用笔记之PWM

作者:盛多铮 单位:安徽师范大学电子信息工程系 寒假的时候开始接触9S12XS128这款片子,并在寒假掌握了codewarrior开发环境的基本使用和SCI模块串口收发方面的编程。新学期一开始由于一直在忙着另外一个采集方面的课题,所以飞思卡尔的学习进展不是很快,今天看了PWM模块和PIT模块的相关资料,并自己写了一些小小的程序,在示波器上看到了理想的波形,所以趁着今晚有空,将这方面的学习感悟总结一下,在自我总结的同时,也希望给你的学习带来一些帮助,所谓赠人玫瑰,手留余香呵呵。。。。废话不多说,进入正题 PWM模块 9S12XS128共有8个独立的可编程的PWM通道,可配置成8个8位或4个16位的PWM通道,共有4个时钟源,可软件设置对齐方式和极性,这里所谓的极性就是说PWM一开始输出的是高电平还是低电平。 下面就我们常用的寄存器作简单介绍(因为别的寄存器我也没用到呵呵。。。。) 1、PWM Enable Register(PWME) PWME[7:0]分别控制着对应的8个通道的使能,例如: PWME_PWME0=0:禁止通道0的PWM输出 PWME_PWME7=1: 使能通道7的PWM输出 2、PWM Polarity Register(PWMPOL) ZA PWMPOL寄存器是用来控制PWM一开始输出时的信号高低情况,假如PPOLX设为1,则与之相应的PWM通道在开始的时候输出为高电平,然后等到计数器的值与你设置的那个PWM信号的值(PWMDTYx)相等的时候就输出低电平。PPOL的值为0的时候正好与这相反。 3、PWM Clock Select Register(PWM 时钟选择) PWMCLK寄存器是用来设置每个通道的参考时钟源的,每个通道都有2个时钟源,具体的为CLOCK A,CLOCK SA(0,1,4,5);CLOCK B,CLOCK SB(2,3,6,7),例如: PWMCLK_PCLK0=0;则通道0选择CLOCK A作为时钟源 PWMCLK_PCLK6=1;则通道6选择CLOCK SB作为参考时钟源 4、PWM Prescale Clock Select Regisrer(PWMPRCLK) PWMPRCLK的第3位和第7位没有定义,低三位用来设置CLOCK A的分频,4-6位则设置CLOCK B的分频,以CLOCK A为例,具体值的计算如下表: 假如说,外部晶振为12M,SYNR为1,REFDV的值为0,则总线时钟为24M,然后你将PWMPRCLK设为0x03,那么你这个CLOCK A的频率就为3M 5、PWM Center Align Enable Register(PWMCAE) PWMCAE寄存器用来设置每个通道的对齐方式,CAEx为0时,设置相应的通道为左对齐,CAEx为1时,设置相应的通道为中心对齐,例如:PWMCAE_PCAE=0,则通道0设置为左对齐,那么左对齐和中心对齐有什么不同呢,别急,这个等讲到PWMDTYx和PWMPERx这两个寄存器后要好解释一点。。。。 6、PWM Control Register (PWMCTL) PWMCTL寄存器可以控制相应通道之间的两两级联情况,以便将PWM口设置成16位的输出,这样有利于提高精度,比如你设置PWMCTL_CON01=1;那么通道0和通道1就级联成一个16位的PWM输出通道,这个16位的PWM通道的输出端为通道1的输出端口,其配置情况也由通道1的相应寄存器去设置。 除此之外,PWMCTL寄存器还可以设置PWM的运行模式,具体的解释为:当PSWAI=0的时候,则始终在等待模式下继续运行,当PFRZ=1的时候,则禁止PWM模块在Freeze模式下的运行 7、PWM Scale A Rerister(PWMSCLA) PWMSCLA寄存器是用来将CLOCK A寄存器继续压缩分频,以产生CLOCK SA,具体的计算公式如下: CLOCK SA=CLOCK/2*PWMSCLA 注意:当PWMSCLA为0的时候实际上是满标度值,也就是将COLCK A 512分频 寄存器各位如下所示 8、PWM Scale B Register(PWMSCLB) 该寄存器的使用情况和PWMSCLA一样,这里不累述,具体可参考上面一段 9、PWM Channel Period Registers(PWMPERx) 每个通道都有一个专用的用来设置周期情况的寄存器(PWMPERx),这个寄存器的值就决定了PWM通道输出信号周期的长短,如果我们已经知道的参考时钟源的值,那么就可以计算出PWM输出信号的周期了,计算方法如下: PWMxPeriod=ChannelClockPeriod*PWMPERx(左对齐情况下)

文档评论(0)

ds2fdsx + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档