amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 2051|回复: 3

AVR期末复习帖—关于比较单元的一些疑问

[复制链接]
发表于 2011-1-16 23:17:13 | 显示全部楼层 |阅读模式
在mega16的datasheet中,有以下这样一段话:
The OCR0 Register is double buffered when using any of the Pulse Width Modulation
(PWM) modes. For the normal and Clear Timer on Compare (CTC) modes of operation,
the double buffering is disabled. The double buffering synchronizes the update of the
OCR0 Compare Register to either top or bottom of the counting sequence. The synchronization
prevents the occurrence of odd-length, non-symmetrical PWM pulses, thereby
making the output glitch-free.
书上对于此段话的解释是不会产生奇边非对称的PWM,对此我一直不是很理解,难道指的是在PWM模式下我每一次对于OCR0的访问,都是先改变缓冲寄存器中的值,然后单片机将自动将OCR0的值在比较匹配时,自动填充?
发表于 2011-1-17 09:58:19 | 显示全部楼层
呵呵,要明白到这个程度上,是准备想考个90分以上的好成绩了。不过平时在做什么?早就该看,不明白就问,这才是好的认真的学习态度和方法。

如果对T/C0的工作方式没有全面掌握,以及对PWM的概念和产生过程不清楚的话,单看这一段,是不容易理解它在说什么的,哪怕你每个英文单词都知道,语法也了解。这个不是简单的字面翻译。

1。对于T/C0有4个工作模式:普通、CTC、快速PWM和相位可调(对称)PWM。

2。当T/C0工作在2种PWM模式时,OCR0寄存器为双缓冲方式工作:也就是给OCR0配上一个辅助的缓冲寄存器。这里就是OCR0 Register is double buffered的含义。

3。当T/C0工作在PWM模式时(其实对于所有的4个模式都一样),程序可以在任何时间读取OCR0的值,这里都是读到的真实OCR0的值,但对T/C0的工作是没有任何影响的。也就是读TCR0的值,不影响T/C0的工作。

4。主要的问题是写0CR0寄存器!!当T/C0工作在PWM模式时,如果可以随意改变0CR0值的话。就可能会产生一次(个)非正常的PWM波:

    比如快速PWM:假定原0CR0为150,当TCNT0计数到50时,你把OCR0改成了25,那么在此次PWM过程中就没有了比较匹配的过程,此次生成的PWM就乱了。

    比如对称PWM:假定原OCR0为150,TCNT0在上升计数过程中到150比较匹配了,继续上升到200时,你把OCR0改成25。那么当TCNT0下降过程中,应该到150产生第2次匹配(产生对称PWM),但此时只能到25才产生第2次匹配,本次产生的PWM就不对称了。

5。为了防止这样的情况产生,当工作在PWM方式时,硬件上采取了措施,OCRO匹配成双缓冲,用户程序在此时写入OCR0的值,只能写入到OCR0的辅助缓冲器中,并不直接写入OCR0本身,这样就不会对本次PWM产生任何影响。当TCNTO的值到达255时(快速PWM),或0时(对称PWM),硬件同步的将OCR0辅助寄存器的值更新到OCR0中,这样新的一次PWM产生,就使用新的比较值了。
    注意这里的同步更新不是发生在比较匹配时,是发生在update of the OCR0 Compare Register to either top or bottom of the counting sequence.

     其中的TOP是指快速PWM模式,BOTTOM是指对称PWM模式。都是与一次产生PWM过程中的结束(开始)点同步的。


不管什么MCU,AVR、STM32、M051...,只要是具备PWM功能的,基本都是这样的。
发表于 2011-1-17 10:15:54 | 显示全部楼层
单纯是应付考试,这个问题就不用多化时间了。
发表于 2015-11-26 22:19:04 | 显示全部楼层
” 其中的TOP是指快速PWM模式,BOTTOM是指对称PWM模式。都是与一次产生PWM过程中的结束(开始)点同步的。“
mark
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-9-16 17:09

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表