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

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

带死区控制的互补输出应用之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.mzph.cn/diannao/65464.shtml

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

相关文章

brupsuite的基础用法常用模块(1)

proxy模块: Options: 设置代理端口,默认为8080端口,若8080端口被占用可在该界面更改代理端口. HTTP history: 拦截的历史请求,右键可做更多操作,很多操作与其他模块有关。(清除历史的话右键选择clear p…

Linux 笔记 SELinux 常见操作与介绍

SELinux(Security-Enhanced Linux)是 Linux 操作系统中的一种安全模块,旨在提供更细粒度的访问控制。它最初由美国国家安全局(NSA)开发,目的是增强 Linux 系统的安全性。SELinux 通过强制访问控制&#xff…

Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言

目录 七、Postman 1、安装 2、postman的界面介绍 八、Postman执行接口测试 1、请求页签 3、响应页签 九、Postman的环境变量和全局变量 1、创建环境变量和全局变量可以解决的问题 2、postman中的操作-全局变量 1️⃣手动设置 2️⃣代码设置 3️⃣界面获取 4️⃣代…

旅游管理系统|Java|SSM|VUE| 前后端分离

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

vulhub-wordpress靶场

一.主题上传漏洞 来到靶场点击主题选择add new 这里有一个上传主题的地方 我们可以去网上找到wordpress主题下载一个 wordpress模板 网页设计模板 免费 免费下载 - 爱给网 下载完成后对我们有用的东西只有这一个目录,把它拖出来 点开moban目录后,创建…

【人工智能视角下的计算机系统:硬件、操作系统与进程管理基础】

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 电脑硬件的基本常识电脑操作系统(软件)的基本常识进程进程操作PCB的属性PCB…

Flink源码解析之:如何根据算法生成StreamGraph过程

Flink源码解析之:如何根据算法生成StreamGraph过程 在我们日常编写Flink应用的时候,会首先创建一个StreamExecutionEnvironment.getExecutionEnvironment()对象,在添加一些自定义处理算子后,会调用env.execute来执行定义好的Flin…

IntelliJ IDEA Docker集成

一、概述 Docker是一种用于在隔离和可复制环境中部署和运行可执行文件的工具。这可能很有用,例如,在与生产相同的环境中测试代码。 IntelliJ IDEA集成了Docker功能,并为创建Docker映像、运行Docker容器、管理Docker Compose应用程序、使用公…

【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存!

添加图片注释,不超过 140 字(可选) 【closerAI ComfyUI】快速洗图!高效快速的提示词反推节点——cliption,让洗图出图快人一步不爆显存! 大家好,我是Jimmy。反推提示词的节点有很多,像Florence2 、Joycaption2、喵手等。都是非常优秀的。但是呢,就是占用设备资源,加…

Pandas-数据组合

文章目录 一. 连接数据1.简介2. 加载数据1. 添加行① 添加行-DataFrame连接② 添加行-DataFrame和Series连接③ 添加行-append函数④ 添加行-重置索引 2. 添加列① 添加列-concat函数② 添加列-通过dataframe[列名] [值]③ 添加列-通过dataframe[列名] Series对象④ 添加列-重…

软件架构设计——数据表状态切换开关—未来之窗行业应用跨平台架构

一、样式 二、样式 /*开关示例*/.东方仙盟_灵颜妙手 {position: relative;display: inline-block;width: 60px;height: 34px;border-radius: 17px; /* 添加圆角效果,使开关看起来更圆润美观 */box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); /* 添加淡淡的阴影效果&…

django --递归查询评论

表数据 树状结构 action(methods(GET, ), detailFalse) def get_info_pinglun(self, request, *args, **kwargs) -> Response:根据评论id查所有回复params wenxian_pinglun_id --> 评论id;wenxian_pinglun_id self.request.GET.get(wenxian_pinglun_id)results se…

适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成

适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成 现代项目经理的核心职责是提供可视性、保持团队一致,并确保团队拥有交付出色工作所需的资源。在过去几年中,由于分布式团队的需求不断增加,项目经理这一角色已迅速…

基于JAVA+SpringBoot+Vue的问卷调查系统

基于JAVASpringBootVue的问卷调查系统 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接🍅 哈喽兄…

Vue开发环境搭建上篇:安装NVM和NPM(cpnm、pnpm)

文章目录 引言I 安装NVM1.1 Windows系统安装NVM,实现Node.js多版本管理1.2 配置下载镜像1.3 NVM常用操作命令II NPM永久使用淘宝源安装 cnpm安装pnpm【推荐】see also: vscode常用插件引言 淘宝镜像:http://npm.taobao.org 和 http://registry.npm.taobao.org 已在 2022.06.3…

Kimi进行学术方向选择精讲!

目录 1.文献搜索 2.辅助选题 3.选题判断 在我们之前的文章中,小编都强调了选题在文章价值中的核心作用。一篇优秀的文章背后,肯定有一个精心挑选的选题。选题的好坏直接影响着文章能够发表的期刊等级。许多宝子们却采取了相反的做法,将大量…

YOLO系列正传(五)YOLOv4论文精解(上):从CSPNet、SPP、PANet到CSPDarknet-53

系列文章 YOLO系列基础 YOLO系列基础合集——小白也看得懂的论文精解-CSDN博客 YOLO系列正传 YOLO系列正传(一)类别损失与MSE损失函数、交叉熵损失函数-CSDN博客 YOLO系列正传(二)YOLOv3论文精解(上)——从FPN到darknet-53-C…

Vulnhub靶场-Driftingblues 6靶机(至获取shell)

靶机安装好后,照例扫描IP 端口 目录 首页为一个图片,没有什么信息 访问robots.txt,存在一个textpattern/textpattern目录,我们访问为一个登录窗口,sqlmap无法注入 提示我们扫目录时添加.zip扩展名,所以我们…

基于springboot的汽车租赁系统丨源码+数据库+万字文档+PPT

作者简介: 作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 技术框架 开发语言:Java 框架:spring…

Qt父窗口处理子窗口大小变化消息installEventFilter

1.需求描述 父窗口从上到下时标题栏,播放窗口和工具栏,希望监测中间播放窗口的大小变化,来根据分辨率自动调整播放画面的宽高;因为工具栏和标题栏可以隐藏,所以父窗口大小不变,中间的播放窗口也会随着工具…