对高级定时器的OSSI和OSSR位理解,有不正确之处希望大家多...
首先介绍一下官方手册中所说的“定时器不工作”是什么意思:与输出使能(MOE)没有关系。定时器的工作与否,说的是定时器各通道的工作与否,就是CCxE和CCxNE是否为0。当CCxE=0就是某通道不工作,CCxNE=0就是某通道的互补通道不工作。一, OSSR:该位的作用是:当MOE=1的时候(MOE=0时,OSSR为0或为1不起任何作用),也就是允许各通道电平向引脚出时,引脚上电平的状态应该按什么原则变化。
当OSSR=0时,(1)当某一个通道和它的互补通道,有且仅有一个通道不工作时,也即CCxE=0,CCxNE=1或者CCxE=1,CCxNE=0时。假如CCxE=0,CCxNE=1那么该通道对应引脚上的电平应该是:本通道对应的引脚上输出低电平,本通道互补通道对应的引脚上输出本通道的参考信号(OCxREFxor极性)。(2)如果本通道和互补通道都不工作:CCxE=0且CCxNE=0时,对应引脚上的电平都强制为低电平,不由定时器驱动;
当OSSR=1时,(1)当某一个通道和它的互补通道,有且仅有一个通道不工作时,假如CCxE=0,CCxNE=1那么该通道对应引脚上的电平应该是:本通道对应的引脚上输出本通道上的无效电平,本通道互补通道对应的引脚上输出本通道的参考信号(OCxREFxor极性)。(2)如果本通道和互补通道都不工作:CCxE=0且CCxNE=0时,对应引脚上的电平为本通道上的极性电平CCXP。
二, OSSI:该位的作用是:当MOE=0的时候(MOE=1时,OSSR为0或为1不起任何作用),也就是允许各通道电平向引脚出时,引脚上电平的状态应该按什么原则变化。
当OSSI=0时,(1)当某一个通道和它的互补通道,有且仅有一个通道不工作时,也即CCxE=0,CCxNE=1或者CCxE=1,CCxNE=0时。假如CCxE=0,CCxNE=1那么该通道对应引脚上的电平应该是:本通道和互补通道输出禁止,经过一段死区时间后输出空闲状态电平OISx和OISxN。(2)如果本通道和互补通道都不工作:CCxE=0且CCxNE=0时,对应引脚上的电平都强制为本通道上的极性电平,不由定时器驱动;
当OSSI=1时,(1)当某一个通道和它的互补通道,有且仅有一个通道不工作时,假如CCxE=0,CCxNE=1那么该通道对应引脚上的电平应该是:本通道和互补通道输出无效电平,经过一段死区时间后输出空闲状态电平OISx和OISxN。(2)如果本通道和互补通道都不工作:CCxE=0且CCxNE=0时,对应引脚上的电平都强制为本通道上的极性电平,不由定时器驱动。
分析的很好,看看 学习了。。。 学习了
谢谢楼主分享,学习了 楼主应该接口那个表格来分析会更加容易让我们搞懂 我看那个表格的意思得出的结论是OSSR是指MCU的主时钟没挂掉的时候 TIM1各个通道的状态
OSSI是指MCU的主时钟挂掉以后,各个通道的状态。
这样设计我们感觉是从安全冗余角度出发的,如果不是这个功能,那就是画蛇添足了。当然我看了很久off_state不知道是什么意思,但是我从他们的表格和下面的注释推断出来就是时钟off_state.
阳光_~~ 发表于 2015-7-26 04:20
我看那个表格的意思得出的结论是OSSR是指MCU的主时钟没挂掉的时候 TIM1各个通道的状态
OSSI是指MCU的主时钟 ...
确定吗?按我的解释,在做方波驱动电机的时候是非常有用的啊 楼主这是要玩电机吧 JackieLaura 发表于 2015-7-31 10:35
楼主这是要玩电机吧
是的
页:
[1]
2