STM32F429第二十篇之高级定时器——PWM(OSSI,OSSR)

本文深入探讨了STM32F429微控制器的高级定时器在PWM模式下的应用,包括PWM波的生成、高级定时器的对外接口、互补通道和刹车功能。通过分析重要寄存器如CCMR1、CR1、EGR、CCER和BDTR,阐述了如何配置这些寄存器以实现无延时的双通道互补PWM波,并解释了OSSI和OSSR的作用。此外,还介绍了输入输出接口、PWM频率与占空比的设定以及断路情况下的寄存器行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

从本文开始,介绍F429的高级时钟特性。本文主要介绍高级时钟的PWM功能的应用。关于PWM,本文重点介绍实现带有断路功能的双通道互补无延时的PWM波的实现方式。

本文主要参考文献为:

  • ST.RM0090 参考手册
  • 刘火良.STM32库开发实战指南.机械工业出版社

更新列表:

  • 2021.02.23——更新关于OSSI与OSSR分析。
  • 2021.04.16——更新关于PWM时序

高级定时器

本文不打算详细介绍高级定时器的每个特点,因为高级定时器的内容太多琐碎与复杂。本文决定通过以实验的方式,分别介绍高级定时器的三个应用场景:

  • PWM波输出
  • 输入捕获
  • 编码器功能

通过三个比较常用的应用场景,比较全面的将高级定时器分解介绍。若以后遇到其他的应用场景,再详细介绍。
在这里插入图片描述
首先,我们看一下官方提供的高级定时器框图。该框图相对于基本定时器十分复杂,先大致了解一下即可。在此处,本文重点介绍高级定时器与芯片外部的接口。在框图中,输入接口在框图的左边,输出接口在框图的右边。通过观察该框图,可以了解到:F429的高级定时器与外部的物理接口可以大致分成以下三种类型:

  1. 外部触发输出接口 TIMx_ETR。
  2. 刹车输入接口 TIMx_BKIN
  3. 四通道接口

其中,前两种接口在图上比较明确不再详细展开,下面重点讲解一下四通道接口:
在高级定时器中,每个定时器有4个通道。而每个通道与芯片外部都有对应的物理接口。需要注意的是,其中输入接口是的对应关系可以通过寄存器配置,而输出接口是直接对应无法改变的。输入接口与通道是一一对应的,而每个通道提供输出接口的同时还提供对应的互补接口。也就是说,每一个通道对应两个输出接口。另外需要注意的就是,虽然在框图中将每个通道输入接口和输出接口分开画在框图的左右两侧,其实在物理上,名称相同的接口为同一个接口。

高级定时器与通用定时器的对外接口与F429的管脚对应关系总结如下:

通道TIM1TIM8TIM2TIM5TIM3TIM4TIM9TIM10TIM11TIM12TIM13TIM14
CH1PA8/PE9/PC10PC6/PI15PA0/PA5/PA15PA0/PH10PA6/PC6/PB4PD12/PB6PE5/PA2PF6/PB8PF7/PB9PH6/PB14PF8/PA6PF9/PA7
CH1NPA7/PE8/PB13PA5/PA7/PH13
CH2PE11/PA9PC7/PI6PA1/PB3PA1/PH11PA7/PC7/PB5PD13/PB7PE6/PA3PH9/PB15
CH2NPB0/PE10/PB14PB0/PB14/PH14
CH3PE13/PA10PC8/PI7PA2/PB10PA2/PH12PB0/PC8PD14/PB8
CH3NPB1/PE12/PB15PB1/PB15/PH15
CH4PE14/PA11PC9/PI2PA3/PB11PA3/PI0PB1/PC9PD15/PB9
ETRPE7/PA12PA0/PI3PA0/PA5/PA15PD2PE0
BKINPA6/PE15/PB12PA6/PI4

PWM模式

PWM即脉冲宽度调制模式,PWM的频率由TIMx_ARR寄存器值确定,其占空比由比较寄存器TIMx_CCRx值确定。
在这里插入图片描述
在PWM模式中,信号流经的主要模块已经通过红色方框圈起来,大致分成以下三个部分:

  1. 时钟来源和基础定时器一样,直接来自RCC提供的内部时钟。
  2. 计数器模块和基本定时器基本一致。和基本定时器相比,只是多了一个重复计数器(Repetion Counter)。该功能暂时不到,暂且不论。所以,这部分只需要当做基本定时器的结构处理即可。
  3. 输出通道。输出通道共有4个,本文圈出只是1通道,以此为例。
    在这里插入图片描述

关于基本定时器的更多知识,可以参考博客<STM32F429第十八篇之基本定时器> 。

其基本原理是,随着内部时钟的脉冲,CNT的计数值不断变化。当CNT的值产生溢出或者等于Capture/Compare 1 寄存器时,其OCxREF的电平发生变化,从而输出通道与互补输出通道的电平跟着变化。所以,自动重载寄存器(AutoReload Register)的值决定了计数器(CNT)的计数周期,也就是PWM的频率。而比较寄存器(Capture/Compare 1 Register)的值决定了PWM的占空比。

以边缘对齐模式为例,只要 TIMx_CNT < TIMx_CCRx,PWM 参考信号 OCxREF 便为 高电平,否则为低电平。如果 TIMx_CCRx 中的比较值大于自动重载值(TIMx_ARR 中),则 OCxREF 保持为“1”。如果比较值为 0,则 OCxRef 保持为“0”。

在这里插入图片描述
注意:

  1. ARR寄存器的数值加1,才是PWM波的周期数。
  2. CCRx寄存器的值直接等于有效电平的时间。

互补通道与刹车

互补通道与刹车功能是高级寄存器特有的功能。

在使用互补通道时,往往还需要考虑死区等特殊功能。而本文为了简单起见,不再考虑死区区间。通过配置TIMx_CCER寄存器,来使能互补通道,且将OCxREF 重定向到 OCx 输出或 OCxN 输出。

互补信号 OCx 和 OCxN 通过以下多个控制位的组合进行激活:TIMx_CCER 寄存器中的 CCxE 和 CCxNE 位以及 TIMx_BDTR 和 TIMx_CR2 寄存器中的 MOE、OISx、OISxN、OSSI 和 OSSR 位。

在这里插入图片描述
注意:
此处中文文档过于陈旧,最新的英文参考手册有不同的描述,如下所示:
在这里插入图片描述
关于OSSR和OSSI的作用,看文档有点云里雾里,通过实验,我个人认为其主要作用如下:

OSSR在MOE=1时起作用,即PWM处于运行状态。下面分条陈述:

  1. 若互补通道都使能(CCxE=CCxNE=1),此时很容易理解,两个端口按照配置正常输出PWM波。
  2. 若互补通道都禁用(CCxE=CCxNE=0),此时存疑,可以认为两个端口都处于高阻状态。
  3. 若互补通道有一个使能,一个禁用。则使能的端口正常输出PWM波,禁用的端口的状态与OSSR相关。
    若OSSR=0,则禁用端口输出高阻(存疑),与CCxP或者CCxNP无关。
    若OSSR=1,则禁用端口输出无效电平。假设OC1N为被禁用,即(CC1NE=0),则此时OC1N的输出为无效电平,即CC1NP为0时,高电平有效,输出电平为0,CC1NP为1是,低电平有效,输出电平为1。

OSSI与OSSR的作用很类似,其只有在MOE=0时起作用,即PWM处于高阻状态。我们假定互补的两个通道都使能,下面分条陈述:

  1. 若OISx与OSIxN不同,有且只有一个电平为高电平,则通道输出的电平对应空闲状态。即OCxN=OSIxN,OCx=OISx。
  2. 若OISx=OSIxN=1时,只有CCxP=CCxNP=0时,OCx=OCxN=0;其余时候OCx=OCxN=1。
  3. 若OISx=OSIxN=0时,与前面相似,只有CCxP=CCxNP=1时,OCx=OCxN=1,其余时候OCx=OCxN=0。
    上面3种情况是OSSI=1的效果,若OSSI=0,此时输出高阻(存疑)。

可以这样理解:若是OISx=OSIxN且CCxP=CCxNP时,此时输出的是无效电平。其余的时候,OCxN=OSIxN,OCx=OISx。

真值表如下:

OSSI01111
OSIxx0011
OSIxNx0101
CCxPx1xx0
CCxNPx1xx0
OCxx1010
OCxNx1100
OSSR01111
CCxPx使能使能01
CCxNPx01使能使能
OCxx使能使能01
OCxNx01使能使能

发生断路(断路输入上出现所选电平)时:

在这里插入图片描述

重要寄存器

与PWM通道相关的重要寄存器如下所示:

CCMR1
在这里插入图片描述
在该寄存器中,需要配置以下几位:
在这里插入图片描述

在这里插入图片描述

CR1

在这里插入图片描述

在该寄存器中,需要配置以下几位:
在这里插入图片描述
在这里插入图片描述

EGR
在这里插入图片描述
在这里插入图片描述

CCER
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

BDTR

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

CR2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值