初学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.rhkb.cn/news/501586.html

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

相关文章

MarkDown怎么转pdf;Mark Text怎么使用;

MarkDown怎么转pdf 目录 MarkDown怎么转pdf先用CSDN进行编辑,能双向看版式;标题最后直接导出pdfMark Text怎么使用一、界面介绍二、基本操作三、视图模式四、其他功能先用CSDN进行编辑,能双向看版式; 标题最后直接导出pdf Mark Text怎么使用 Mark Text是一款简洁的开源Mar…

华为ensp-BGP路由过滤

学习新思想,争做新青年,今天学习的是BGP路由过滤 实验目的: 掌握利用BGP路由属性AS_Path进行路由过滤的方法 掌握利用BGP路由属性Community进行路由过滤的方法 掌握利用BGP路由属性Next_Hop进行路由过滤的方法 实验内容: 本实…

HackMyVM-Airbind靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 使用ipv6绕过iptables 四、结论 一、测试环境 1、系统环境 渗透机:kali2021.1(192.168.101.127) 靶 机:debian(192.168.101.11…

springcloud篇3-docker需熟练掌握的知识点

docker的原理请参考博文《Docker与Kubernetes》。 一、安装docker的指令 1.1 安装yum工具 yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken补充:配置镜像源 注意: yum安装是在线联网下载安装,而很多的资源…

ES IK分词器插件

前言 ES中默认了许多分词器,但是对中文的支持并不友好,IK分词器是一个专门为中文文本设计的分词工具,它不是ES的内置组件,而是一个需要单独安装和配置的插件。 Ik分词器的下载安装(Winows 版本) 下载地址:…

BP神经网络的反向传播算法

BP神经网络(Backpropagation Neural Network)是一种常用的多层前馈神经网络,通过反向传播算法进行训练。反向传播算法的核心思想是通过计算损失函数对每个权重的偏导数,从而调整权重,使得网络的预测输出与真实输出之间…

在Linux下安装部署Tomcat教程

摘要 Tomcat是由Apache开发的要给Servlet容器,实现了对Servlet 和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台,安全管理和Tomcat阀等。简单来说,Tomcat是一个由WEB应用程序的托管平台,可以让用户编写的WEB应用程序,别Tomcat所托管,并提供网…

vue学习第一阶段

vue 什么是Vue? 概念:Vue是一个构建用户页面的渐进式框架 Vue的两种使用方式 Vue的核心开发 场景: 局部 {\color{red}局部} 局部模块改造Vue核心包& Vue插件 工程化开发场景: 整站 {\color{red}整站} 整站开发Vue2官网 https://v2.cn.vuejs.org/ 资料存放地址 D:\Baidu…

RabbitMQ-基本使用

RabbitMQ: One broker to queue them all | RabbitMQ 官方 安装到Docker中 docker run \-e RABBITMQ_DEFAULT_USERrabbit \-e RABBITMQ_DEFAULT_PASSrabbit \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network mynet\-d \rabbitmq:3…

云效流水线使用Node构建部署前端web项目

云效流水线实现自动化部署 背景新建流水线配置流水线运行流水线总结 背景 先来看看没有配置云效流水线之前的部署流程: 而且宝塔会经常要求重新登录,麻烦的很 网上博客分享了不少的配置流程,这一篇博客的亮点就是不仅给出了npm命令构建&…

Web安全 - “Referrer Policy“ Security 头值不安全

文章目录 概述原因分析风险说明Referrer-Policy 头配置选项1. 不安全的策略no-referrer-when-downgradeunsafe-url 2. 安全的策略no-referreroriginorigin-when-cross-originsame-originstrict-originstrict-origin-when-cross-origin 推荐配置Nginx 配置示例 在 Nginx 中配置 …

ROS导航使用贝塞尔曲线对全局路径进行平滑处理

文章目录 前言一、贝塞尔曲线的使用二、全局路经修改三、结果对比 前言 ROS原生的全局路径规划GlobalPlanner包含A*和Dijkstra,两者原理基本相同,能够规划出从起点到终点的路径,但是由于栅格地图存在锯齿形,得到的全局路径也会出…

解决uniapp H5页面限制输入框只能输数字问题

工作记录 最最近在做 uniapp 开发的移动端 H5 页面,有个需求是金额输入框只能输入数字,不能输入小数点和其他字符,经过各种尝试,发现其他字符可以通过正则过滤掉,但是输入小数点的话,因为没有触发 input 和…

DC-2 靶场渗透

目录 环境搭建 开始渗透 扫存活 扫端口 扫服务 看一下80端口 看一下指纹信息 使用wpscan扫描用户名 再使用cewl生成字典 使用wpscan爆破密码 登陆 使用7744端口 查看shell rbash绕过 切换到jerry用户 添加环境变量 现在可以使用su命令了 提权 使用git提权 环…

如何逐步操作vCenter修改DNS服务器?

在vSphere 7中有一个新功能,它允许管理员更改vCenter Server Appliance的FQDN和IP。因此本文将介绍如何轻松让vCenter修改DNS服务器。 vCenter修改DNS以及修改vCenter IP地址 与在部署 vCenter Server Appliance 后,您可以根据需要修改其 DNS 设置和 IP…

Qt qtcreator配置cmake

添加CMake 选择 Preferences > CMake > Tools. 可以将其设置为默认,如此新建的kit会自动选择默认cmake 完成CMake 代码(自动补全) Qt Creator 使用通用高亮为 CMake 命令提供代码完成的特定参数。例如,CMake: set_source_…

JeeSite 快速开发平台:全能企业级快速开发解决方案|GitCode 光引计划征文展示

投稿人GitCode ID:thinkgem 光引计划投稿项目介绍 JeeSite 快速开发平台,不仅仅是一个后台开发框架,它是一个企业级快速开发解决方案,后端基于经典组合 Spring Boot、Shiro、MyBatis,前端采用 Beetl、Bootstrap、Admi…

大模型系列17-RAGFlow搭建本地知识库

大模型系列17-RAGFlow搭建本地知识库 安装ollama安装open-wehui安装并运行ragflowRAG(检索、增强、生成)RAG是什么RAG三过程RAG问答系统构建步骤向量库构建检索模块生成模块 RAG解决LLM的痛点 使用ragflow访问ragflow配置ollama模型添加Embedding模型添加…

迟来的前端面试经验

最近也是在换工作,小公司和大厂(虾皮、腾讯)都有面试。几次面试收获还是比较大的,了解许多自己的短板,当然也拿到了合适的offer。本文主要整理下面试遇到的问题和知识点,希望对准备找工作的掘友有所帮助。 …

DepthLab: From Partial to Complete 论文解读

目录 一、概述 二、相关工作 1、深度补全 2、单目深度估计 3、已知部分深度的下游任务 三、DepthLab 1、总论 2、编码器和解码器 3、Estimation U-Net 4、Reference U-Net 四、训练操作 1、深度归一化 2、掩模策略 五、数据集 1、训练数据集 2、评估数据集 六、…