• Stm32高级定时器(三)


    Stm32高级定时器(三)

     

    1 互补输出和死区插入

    1.1 死区:某个处于相对无效状态的时间或空间

    clip_image002

    本来OCX信号与OCXREF时序同相同步,OCXN信号与OCXREF时序反相同步。但为了安全考虑,以OCXREF为参考基准,OCXN和OCX通道将理论上本该导通的时间点往后延时一下,即做从截止切换到导通状态的延时。

    特点:

    ● OCx输出信号与参考信号相同,只是它的上升沿相对于参考信号的上升沿有一个延迟。

    ● OCxN输出信号与参考信号相反,只是它的上升沿相对于参考信号的下降沿有一个延迟。

    1.2 STM32高级定时器中的死区的计算(请看底部参考文献)

    计算时,先确定Tdts,然后结合你需要的死区时间选择相应的计算档位,最后确定DTG[7:0]。假设STM32f407的TIM1工作在168M,设置Tdts=1/168 us,死区设置为4us,经过估算该死区时间落在DTG[7:5]=111段。

    先算得DTG[4:0]=01010B,再跟DTG[7:5]组合在一起,最后算得DTG[7:0]=11101010B,即0xEA.

    需要注意的是,死区时间的计算是分段计算的,各段的时间步长和计算方式有差别,不可随便填写数据。

    1.3 STM32高级定时器配置死区参数不合适时的问题

    死区时间不能比嵌入死区前的互补通道的有效脉冲还宽,否则相应通道的输出呈无效状态。

    当死区时间比有效电平还长时,就没有机会输出有效电平了。

    clip_image004

    死区波形延迟大于负脉冲

    clip_image006

    死区波形延迟大于正脉冲

    2 使用刹车功能:PWM急停

    通过硬件紧急终止输出

    当使用刹车功能时,依据相应的控制位(TIMx_BDTR寄存器中的MOE、OSSI和OSSR位,TIMx_CR2寄存器中的OISx和OISxN位),输出使能信号和无效电平都会被修改。

    刹车源既可以是刹车输入引脚又可以是一个时钟失败事件。时钟失败事件由复位时钟控制器中的时钟安全系统产生。

    clip_image008

    上图说明,刹车信号(BREAK[MOE])触发时,输出OCx与OCxN在不同的CCxE,CCxP,OISx,CCxNE, CCxNP, OISxN位控制下的输出组合

    3 单脉冲模式(OPM)

    这种模式允许计数器响应一个激励,并在一个程序可控的延时之后产生一个脉宽可程序控制的脉冲。

    clip_image010

    延时时间与脉冲宽度设置主要通过比较:定时器的计数值TIM_CNT、定时器的比较值TIM_CCRx与定时器的周期值TIM_ARR 这三个值来得出。具体如下:
    比较

    向上计数方式

    向下计数方式

    延时时间

    TIM_CCRx - 0

    TIM_ARR - TIM_CCRx

    脉冲宽度

    TIM_ARR - TIM_CCRx

    TIM_CCRx - 0

    4 参考文献

    [1] ST MCU定时器应用中的死区控制话题

    [2] stm32之通用定时器TIM

    [3] STM32高级定时器死区时间设置探究

  • 相关阅读:
    text-overflow white-space word-break word-wrap word-spacing line-clamp 傻傻分不清楚0.0=>文本超出显示省略号/数字英文字母折行有关css 属性/显示两行,第二行省略号显示css方法
    jq 操作表单中 checkbox 全选 单选
    用 pdf.js兼容部分安卓显示PDF在线预览 时,a标签直接链接参数文件不能含中文的解决办法
    通过form实现enter事件
    小白随笔之数组的方法
    引用类型之Array
    Reset
    js常用事件
    让女朋友能懂的网络技术篇之动态代理
    图论之Dijkstra算法
  • 原文地址:https://www.cnblogs.com/OneFri/p/5925599.html
Copyright © 2020-2023  润新知