初学STM32 ---高级定时器互补输出带死区控制

news2025/1/3 4:58:25

互补输出,还带死区控制,什么意思?

带死区控制的互补输出应用之H 

 

 捕获/比较通道的输出部分(通道13

 死区时间计算

举个栗子(F1为例):DTG[7:0]=250,250即二进制:1111 1010,选第四条

DT = (32+26)*16*55.56 ns=51.55968us

TIMx_CR1

这里的CKD[1:0]这个位是在HAL_TIM_PWM_Init中进行设置:TIM_Handle_complementary_output_struct.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4;

 TIMx_BDTR

 刹车(断路)功能

使能刹车功能:将TIMx_BDTRBKE位置1,刹车输入信号极性由BKP位设置

使能刹车功能后:由TIMx_BDTRMOEOSSIOSSR位,TIMx_CR2的OISxOISxN位,TIMx_CCERCCxECCxNE位控制OCxOCxN输出状态

无论何时,OCxOCxN输出都不能同时处在有效电平

 发生刹车后,会怎么样?

1MOE位被清零,OCxOCxN为无效、空闲或复位状态(OSSI位选择)

2 OCxOCxN的状态:由相关控制位状态决定,当使用互补输出时:根据情况自动控制输出电平,参考参考手册使用刹车(断路)功能小节

3BIF位置1,如果使能了BIE位,还会产生刹车中断;如果使能了TDE位,会产生DMA请求

4,如果AOE位置 1,在下一个 更新事件UEV时,MOE位被自动置 1

高级定时器互补输出带死区控制实验配置步骤

1,配置定时器基础工作参数        HAL_TIM_PWM_Init()

2,定时器PWM输出MSP初始化        HAL_TIM_PWM_MspInit()     配置NVICCLOCKGPIO

3,配置PWM模式/比较值等        HAL_TIM_PWM_ConfigChannel()

4,配置刹车功能、死区时间等        HAL_TIMEx_ConfigBreakDeadTime()

5,使能输出、主输出、计数器        HAL_TIM_PWM_Start()

6,使能互补输出、主输出、计数器        HAL_TIMEx_PWMN_Start()

相关HAL库函数介绍

 关键结构体介绍

typedef struct 
{ 
   uint32_t OCMode; 	  /* 输出比较模式选择 */
   uint32_t Pulse; 	            /* 设置比较值 */
   uint32_t OCPolarity;       /* 设置输出比较极性 */
   uint32_t OCNPolarity;    /* 设置互补输出比较极性 */
   uint32_t OCFastMode;   /* 使能或失能输出比较快速模式 */
   uint32_t OCIdleState;     /* 空闲状态下OCx输出 */
   uint32_t OCNIdleState;  /* 空闲状态下OCxN输出 */ 
} TIM_OC_InitTypeDef;
typedef struct 
{
    uint32_t OffStateRunMode;    /* 运行模式下的关闭状态选择 */ 
    uint32_t OffStateIDLEMode;   /* 空闲模式下的关闭状态选择 */ 
    uint32_t LockLevel; 		 /* 寄存器锁定设置 */ 
    uint32_t DeadTime; 	          /* 死区时间设置 */ 
    uint32_t BreakState; 	          /* 是否使能刹车功能 */ 
    uint32_t BreakPolarity;		 /* 刹车输入极性 */ 
    uint32_t BreakFilter; 		 /* 刹车输入滤波器(F1/F4系列没有) */ 
    uint32_t AutomaticOutput; 	/* 自动恢复输出使能,即使能AOE位 */
} TIM_BreakDeadTimeConfigTypeDef;

注释:

OffStateRunModeOffStateIDLEMode 是用于配置定时器在不同工作状态下的输出行为的两个重要成员。它们的作用是决定当定时器处于运行模式空闲模式时,输出引脚的状态是否被设置为关闭(Off State),以确保系统的安全性或特定的运行需求。

作用和区别

1. OffStateRunMode
  • 含义
    设置当定时器处于**运行模式(Run Mode)**时,输出引脚是否进入“关断状态(Off State)”。
    • 运行模式通常是指定时器正在正常计数、产生PWM信号或其他功能时的状态。
  • 作用
    如果需要在定时器工作时遇到特定条件(如MOE位被清除或发生断路信号时),保证输出引脚能够进入安全的关闭状态
  • 应用场景
    • 电机控制:当某种错误(如过流或断路)发生时,需要关闭所有输出引脚以保护电机或功率电子设备。
    • 需要在运行状态下触发“保护性”关断的场景。
2. OffStateIDLEMode
  • 含义
    设置当定时器处于**空闲模式(Idle Mode)**时,输出引脚是否进入“关断状态(Off State)”。
    • 空闲模式通常是指定时器未运行或被停止时的状态(即计数器未运行)。
  • 作用
    如果需要在定时器停止后,确保输出引脚进入安全的“关闭状态”,以防止悬空信号对外部电路造成意外影响。
  • 应用场景
    • 系统在空闲时防止输出引脚出现意外信号。
    • 例如在PWM输出停止时,将引脚状态拉低或设置为安全状态。

配置选项(参考 @ref

两者的配置选项通常包括以下内容:

  • TIM_OSSR_ENABLETIM_OSSI_ENABLE
    使能在对应模式下的“关断状态”。当MOE位(主输出使能)被清除时,输出信号会强制进入低电平或高阻态(取决于配置)。
  • TIM_OSSR_DISABLETIM_OSSI_DISABLE
    禁用在对应模式下的“关断状态”。即使发生错误,输出引脚也会保持其当前状态。

总结

  • OffStateRunMode 用于运行模式下的输出安全关断控制,保证在定时器正常工作时遇到问题能立即关闭输出,避免损坏设备。
  • OffStateIDLEMode 用于空闲模式下的输出安全关断控制,确保定时器停止后引脚进入安全状态。

实际案例:

  • 在电机控制应用中:
    • OffStateRunMode 可以确保在运行时发生过流或过温等故障时,输出信号被关闭以保护电机。
    • OffStateIDLEMode 确保系统停止工作时,PWM输出关闭,防止电机意外启动或出现噪声信号。

这两个设置对于电机控制器、逆变器或任何需要可靠输出信号管理的系统都是非常重要的配置项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2268382.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RoboMIND:多体现基准 机器人操纵的智能规范数据

我们介绍了 RoboMIND,这是机器人操纵的多体现智能规范数据的基准,包括 4 个实施例、279 个不同任务和 61 个不同对象类别的 55k 真实世界演示轨迹。 工业机器人企业 埃斯顿自动化 | 埃夫特机器人 | 节卡机器人 | 珞石机器人 | 法奥机器人 | 非夕科技 | C…

Hadoop HA安装配置(容器环境),大数据职业技能竞赛模块A平台搭建,jdk+zookeeper+hadoop HA

HA概述 (1) 所谓HA(High Availablity),即高可用(7*24小时不中断服务)。 (2) 实现高可用最关键的策略是消除单点故障,HA严格来说应该分为各个组件的HA机制,H…

国产文本编辑器EverEdit - 如何让输出窗口的日志具有双击跳转到文件指定行的功能

1 开发参考:编写脚本时如何向输出窗口打印可跳转到文件位置的日志 1.1 应用场景 编写脚本时,有时对文本进行分析,需要将提示信息打印到输出窗口,同时希望将文本的行、列信息也打印在日志中, 最好是双击日志信息可以跳…

《云原生安全攻防》-- K8s安全配置:CIS安全基准与kube-bench工具

在本节课程中,我们来了解一下K8s集群的安全配置,通过对CIS安全基准和kube-bench工具的介绍,可以快速发现K8s集群中不符合最佳实践的配置项,及时进行修复,从而来提高集群的安全性。 在这个课程中,我们将学习…

3、redis的集群模式

主从模式 哨兵模式 集群 主从模式:这是redis高可用的基础,哨兵模式和集群都是建立在此基础之上。 主从模式和数据库的主从模式是一样的,主负责写入,然后把写入的数据同步到从, 从节点只能读不能写,rea…

计算机图形学知识点汇总

一、计算机图形学定义与内容 1.图形 图形分为“图”和“形”两部分。 其中,“形”指形体或形状,存在于客观世界和虚拟世界,它的本质是“表示”;而图则是包含几何信息与属性信息的点、线等基本图元构成的画面,用于表达…

自动化测试模型(一)

8.8.1 自动化测试模型概述 在自动化测试运用于测试工作的过程中,测试人员根据不同自动化测试工具、测试框架等所进行的测试活动进行了抽象,总结出线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试这4种自动化测试模型。 线性测试 首先&#…

医疗数仓数据仓库设计

医疗数仓数据仓库设计 数据仓库构建流程数据调研明确数据域构建业务总线矩阵明确统计指标交易主题医生主题用户主题评价主题 维度模型设计汇总模型设计 数据仓库构建流程 数据仓库分层规划 优秀可靠的数仓体系,需要良好的数据分层结构。合理的分层,能够…

Go-知识 注释

Go-知识 注释 行注释块注释包注释结构体&接口注释函数&方法注释废弃注释文档 在 go 语言中注释有两种,行注释和块注释 行注释 使用双斜线 // 开始,一般后面紧跟一个空格。行注释是Go语言中最常见的注释形式,在标准包中,…

1230作业

思维导图 作业 将广播发送和接收端实现一遍&#xff0c;完成一个发送端发送信息&#xff0c;对应多个接收端接收 自实验 //广播发送端 #include <myhead.h> #define G_PORT 8765 #define G_IP "192.168.124.255" int main(int argc, const char *argv[]) {//…

U盘格式化工具合集:6个免费的U盘格式化工具

在日常使用中&#xff0c;U盘可能会因为文件系统不兼容、数据损坏或使用需求发生改变而需要进行格式化。一个合适的格式化工具不仅可以清理存储空间&#xff0c;还能解决部分存储问题。本文为大家精选了6款免费的U盘格式化工具&#xff0c;并详细介绍它们的功能、使用方法、优缺…

Windows系统使用Koodo Reader轻松搭建在线私人图书馆远程看书

文章目录 前言1. Koodo Reader 功能特点1.1 开源免费1.2 支持众多格式1.3 多平台兼容1.4 多端数据备份同步1.5 多功能阅读体验1.6 界面简洁直观 2. Koodo Reader安装流程2.1 安装Git2.2 安装Node.js2.3 下载koodo reader 3. 安装Cpolar内网穿透3.1 配置公网地址3.2 配置固定公网…

开关电源调试思维导图

开关电源辐射发射问题调试一直以来都是工程师们非常头疼的事情&#xff0c;也不知道如何下手&#xff0c;今天就通过几个思维导图把开关电源辐射发射问题调试的思路呈现给广大工程师们&#xff0c;希望能照亮大家辐射调试的黑暗道路。 01、反激电路辐射发射问题调试思维导图 0…

【brainpan靶场渗透】

文章目录 一、基础信息 二、信息收集 三、反弹shell 四、提权 一、基础信息 Kali IP&#xff1a;192.168.20.146 靶机 IP&#xff1a;192.168.20.155 二、信息收集 似乎开放了9999&#xff0c;10000端口&#xff0c;访问页面没有太多内容&#xff0c;扫描一下目录 dirs…

使用MFC编写一个paddleclas预测软件

目录 写作目的 环境准备 下载编译环境 解压预编译库 准备训练文件 模型文件 图像文件 路径整理 准备预测代码 创建预测应用 新建mfc应用 拷贝文档 配置环境 界面布局 添加回cpp文件 修改函数 报错1解决 报错2未解决 修改infer代码 修改MFCPaddleClasDlg.cp…

html+css+js网页设计 美食 美食家6个页面

htmlcssjs网页设计 美食 美食家6个页面 网页作品代码简单&#xff0c;可使用任意HTML辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1&#xf…

【第四期书生大模型实战营基础岛】L1G5000——XTuner 微调个人小助手认知任务

基础任务————使用 XTuner 微调 InternLM2-Chat-7B 实现自己的小助手认知&#xff0c;如下图所示&#xff08;图中的尖米需替换成自己的昵称&#xff09;&#xff0c;记录复现过程并截图。 环境配置与数据准备 步骤 0. 使用 conda 先构建一个 Python-3.10 的虚拟环境 cd …

android知识巩固(二.非线性数据结构)

非线性结构:是从逻辑结构上划分,其元素存在一对多或者多对多的相互关系 1.前言 在前一章中,我们了解了数据结构的基本思想,学习了部分基本的线性数据结构,了解了计算机是如何表示和存储数据的,良好的数据结构思想有助于我们写出性能优良的应用 2.目录 目录.png 3.非线性数据结构…

列车票务信息系统|Java|SSM|JSP|

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

LabVIEW中实现多个Subpanel独立调用同一个VI

在LabVIEW中&#xff0c;如果需要通过多个Subpanel同时调用同一个VI并让这些VI实例独立运行&#xff0c;可以通过以下方法实现&#xff1a; 1. 问题背景 LabVIEW默认的VI是以单实例方式运行的。当将同一个VI加载到多个Subpanel时&#xff0c;会因为共享同一内存空间而导致冲突…