- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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(左对齐情况下)
您可能关注的文档
最近下载
- 《万用表的使用》课件.ppt VIP
- 2025年时事政治热点题库道附参考答案.docx VIP
- 传统食品工业2025年智能化生产线设备更新改造研究报告.docx
- 新版中职英语1基础模块1Unit3 Shopping 教学设计 中职英语教案.docx VIP
- 关于成立“六项机制”建设领导小组的通知.doc VIP
- 一年级语文上册基于课程标准的教学设计(1).docx VIP
- 中小学主题班会-《筑牢网络防线,守护绿色童年》【课件】.pptx VIP
- 2025年马鞍山市公安局第三季度招聘警务辅助人员139名笔试参考题库附答案解析.docx VIP
- 服装裁剪知识.docx VIP
- 2024重庆市九龙坡区谢家湾街道专职网格员招聘考试真题及答案.docx VIP
文档评论(0)