你好我好大家好! 发表于 2015-7-23 11:16:59

对高级定时器的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时,对应引脚上的电平都强制为本通道上的极性电平,不由定时器驱动。

stary666 发表于 2015-7-23 11:30:22

分析的很好,看看

moyanming2013 发表于 2015-7-23 12:15:25

学习了。。。

dsjsjf 发表于 2015-7-23 12:42:11

学习了
         

苏柚 发表于 2015-7-23 14:08:24

谢谢楼主分享,学习了

阳光_~~ 发表于 2015-7-26 04:06:23

楼主应该接口那个表格来分析会更加容易让我们搞懂

阳光_~~ 发表于 2015-7-26 04:20:31

我看那个表格的意思得出的结论是OSSR是指MCU的主时钟没挂掉的时候 TIM1各个通道的状态
OSSI是指MCU的主时钟挂掉以后,各个通道的状态。
这样设计我们感觉是从安全冗余角度出发的,如果不是这个功能,那就是画蛇添足了。当然我看了很久off_state不知道是什么意思,但是我从他们的表格和下面的注释推断出来就是时钟off_state.

你好我好大家好! 发表于 2015-7-26 06:35:08

阳光_~~ 发表于 2015-7-26 04:20
我看那个表格的意思得出的结论是OSSR是指MCU的主时钟没挂掉的时候 TIM1各个通道的状态
OSSI是指MCU的主时钟 ...

确定吗?按我的解释,在做方波驱动电机的时候是非常有用的啊

JackieLaura 发表于 2015-7-31 10:35:12

楼主这是要玩电机吧

你好我好大家好! 发表于 2015-7-31 17:07:06

JackieLaura 发表于 2015-7-31 10:35
楼主这是要玩电机吧

是的               
页: [1] 2
查看完整版本: 对高级定时器的OSSI和OSSR位理解,有不正确之处希望大家多...