STM32 PWM 计数器模式和对齐

news2024/11/29 4:37:51

STM32 PWM 计数器模式和对齐

  • 1. TIM高级定时器简介
  • 2. TIM计数模式
    • 2.1 向上计数
    • 2.2 向下计数
    • 2.3 中心对齐模式(向上/向下计数)
    • 2.4 重复计数
  • 3. PWM输出模式
    • 3.1 举例看下PWM中心对齐模式,设置参数如下:
  • 4. FOC中PWM相关设置说明
    • 4.1 Update Event 触发ADC采集
    • 4.2 Output Channel4触发ADC采集
    • 4.3 测试过程中发现的小问题
  • 5. 后记:TIM中心对齐与PWM中心对齐模式区别
    • 5.1 TIM中心对齐
    • 5.2 PWM中心对齐模式

1. TIM高级定时器简介

TIM1和TIM8高级定时器框图如下:

  • CCxI:capture/compare x interrupt,例如CC1I,表示CC1 interrupt
  • OCxREF:output compare reference,输出比较参考电平
    在这里插入图片描述

TIM中的中断如下图,除了DMA中断外,常用的几类中断:

  • BI:break interrupt 刹车中断
  • TI:Trigger interrupt 触发中断
  • COMI:COM interrupt COM中断
  • CCxI:capture/compare interrupt,捕获/比较中断
  • UI:update interrupt,更新中断
    在这里插入图片描述

2. TIM计数模式

2.1 向上计数

  • 计数器从0开始计数到自动加载值(TIMx_ARR),然后重新从0开始计数,并产生一个计数器溢出事件
  • 如果使用了重复计数器功能,在向上计数达到设置的重复计数次数(TIMx_RCR)时,产生更新时间(UEV),否则每次计数器溢出时才产生更新时间
    在这里插入图片描述

2.2 向下计数

  • 计数器从自动加载值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件
  • 如果使用了重复计数器功能,在向下计数达到设置的重复计数次数(TIMx_RCR)时,产生更新时间(UEV),否则每次计数器下溢时才产生更新时间
    在这里插入图片描述

2.3 中心对齐模式(向上/向下计数)

  • 在中心对齐模式,计数器从0开始计数到自动加载的值(TIMx_ARR)-1,产生一个计数器溢出时间,然后向下计数到1,并产生一个计数器下溢事件,然后再从0开始重新计数
  • 中心对齐模式下:不能写入TIMx_CR1中的DIR方向位。它由硬件更新并指示当前的计数方向
  • 可以在每次计数上溢和每次计数下溢时产生更新事件,对应产生UI(update interrupt)中断

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

2.4 重复计数

重复计数器在以下任一条件成立时递减:

  • 向上计数模式下每次计数器溢出时
  • 向下计数模式下每次计数器下溢时
  • 中心对齐模式下,每次上溢和每次下溢时

在这里插入图片描述
从上图中可以看出:对于中心对齐模式,RCR不同值的含义,此处产生UI(update interrupt)中断

  • 0: 每次上溢、下溢都会产生中断
  • 1:每次下溢时产生中断
  • 2:上溢、下溢间隔,产生中断
  • 3:每两次下溢产生中断
  • 3和重新同步:每两次下溢,或者同步时产生中断

在STM32CubeMX中设置Trigger Event为 UpdateEvent时,Repetition Counter才起作用
在这里插入图片描述

设置Trigger Event为其他模式时,Repetition Counter不起作用
在这里插入图片描述

3. PWM输出模式

PWM输出模式可以与TIM的对齐模式对应起来。
PWM模式寄存器TIMx_CR1中的CMS[1:0]:根据产生中断方式不同来区分,此处会产生CCxI(capture/compare interrupt),会影响输出比较中断触发时间点,但是不会影响PWM输出波形

  • 00: 边沿对齐模式。计数器依据方向位(DIR)向上或向下计数
  • 01:中心对齐模式1;输出比较中断标志位,向下计数时被设置
  • 10:中心对齐模式2;输出比较中断标志位,向上计数时被设置
  • 11:中心对齐模式3;输出比较中断标志位,向上计数和向下计数时被设置
    在这里插入图片描述
    对应设置的中断标志位。
    在这里插入图片描述

3.1 举例看下PWM中心对齐模式,设置参数如下:

  • ARR = 8, 自动重载寄存器,周期计数8
  • CCRx = 4,捕获/比较寄存器,计数值4
    • 不同CMS模式下,CCI触发的时间点:
      • CMS=01:中心对齐模式1,只在计数器向下计数时被设置。如图向下计数从5到4时触发CCxI
      • CMS=10:中心对齐模式2,只在计数器向上计数时被设置。如图向上计数从3到4时触发CCxI
      • CMS=11:中心对齐模式3,在计数器向上、向下计数时都会被设置。如图向上计数从3到4,向下计数从5到4时都会触发CCxI
    • 同时可以看到:计数器<CCR值时,OCxREF输出高电平,计数器>CCR值时,OCxREF输出低电平

在这里插入图片描述

  • 在极性为高时(CH polarity = High),得到如下图PWM波形。
    • 计数器Counter< CCR时,输出高电平
    • 计数器Counter> CCR时,输出低电平
      在这里插入图片描述

对应STM32CubeMX选择counter mode
在这里插入图片描述

4. FOC中PWM相关设置说明

4.1 Update Event 触发ADC采集

  1. 选择Trigger EVent Selection为:Update Event,这里用的TIM计数器Update interrupt
    在这里插入图片描述

  2. 设置Repetition Counter = 1,只在每次下溢时产生中断,每次上溢时不产生中断
    在这里插入图片描述

  3. 因为是中心对齐模式,所以Counter register从0向上计数ARR值(3500),再从ARR值(3500)向下计数到0。所以Update Event触发的时间只和ARR寄存器相关,和CCR值无关
    在这里插入图片描述

  4. 这里CCR的值,即pulse,触发的是ICxI,不会影响UI(Update interrupt)
    在这里插入图片描述

4.2 Output Channel4触发ADC采集

  1. 选择Trigger EVent Selection为:Output compare(OC4REF),这里用的PWM的ICxI 中断
    在这里插入图片描述

  2. 选择TIM1的Channel4为 PWM generation no Output
    在这里插入图片描述

  3. 设置Trigger EVent Selection为 Output compare(OC4REF)
    在这里插入图片描述

  4. 这里由CCR的值,即pulse触发中断,与ARR值,即period无关

    • 如果pulse=1,则计数Counter刚开始马上触发中断,刚好在PWM Channel N的低电平中心点
    • 如果pulse=ARR值-1,则计数Counter快到ARR值(3500)时才触发中断,刚好在PWM Channel N的高电平中心点
      在这里插入图片描述
  5. 设置PWM generation Channel4的 pulse,确定采用时间点:

  • 设置为3500-1时:PWM-Channel 1 N 高电平中心点采样。图中蓝色对应PWM-Channel 1 N ,黄色对应PC4(在ADC注入中断函数中toggle电平)
    在这里插入图片描述
  • 设置为1时: PWM-Channel 1 N 低电平中心点采样。图中蓝色对应PWM-Channel 1 N ,黄色对应PC4(在ADC注入中断函数中toggle电平)
    在这里插入图片描述

4.3 测试过程中发现的小问题

以上两种模式存在同样的问题:

PWM Channel1 N(蓝色)高电平中心点,与注入中断触发输出(黄色)始终有3us的延时,无法消除。可能原因是中断回调函数中,设置PC4电平需要花费时间

void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc)
{
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_4);
    m0_phB = hadc->Instance->JDR1;
    m0_phC = hadc->Instance->JDR2;
}

请添加图片描述

请添加图片描述

5. 后记:TIM中心对齐与PWM中心对齐模式区别

两者的主要区别:

  1. 上溢、下溢触发的时间点不同
    • TIM中心对齐:上溢发生在计数器从ARR-1到ARR时,下溢发生在1到0时
    • PWM中心对齐:上溢发生在计数器从CCR-1到CCR时,下溢发生在从CCR+1到CCR时
  2. 上溢、下溢触发的中断事件不同
    • TIM中心对齐:上溢、下溢触发UI (Update interrupt)
    • PWM中心对齐:上溢、下溢触发CCxI (capture/compare interrupt)

5.1 TIM中心对齐

  • 触发时间点:ARR=0x6,(auto reload register)
    • 上溢发生在计数器从ARR-1到ARR时。如图发生在计数器从5到6时
    • 下溢发生在计数器从1到0时。如果发生在计数器从1到0时
      在这里插入图片描述
  • 触发的事件是Update event,如图UIF被置位(Update interrupt flag)
    在这里插入图片描述

5.2 PWM中心对齐模式

  • 触发时间点:ARR=0x08,(auto reload register),CCR=0x04,(capture/compare register)
    • 上溢发生在计数器从CCR-1到CCR时。如图发生在计数器从3到4时
    • 下溢发生在计数器从CCR+1到CCR时。如果发生在计数器从5到4时
      在这里插入图片描述
  • 触发的事件是CCxI,如图CCxIF被置位(capture/compare interrupt flag)
    在这里插入图片描述

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

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

相关文章

webpack如何自定义一个loader

我们在使用脚手架的搭建项目的时候往往都会帮我们配置好所需的loader&#xff0c;接下来讲一下我们要如何自己写一个loader应用到项目中&#xff08;完整代码在最后&#xff09; 1. 首先搭建一个项目并找到webpack配置文件&#xff08;webpack.config.js&#xff09; 在modul…

arcgis_滑坡易发性评价数据处理过程

arcgis_LSM数据处理过程 地形因子处理环境因子处理获取坐标点的方法arcgis问题arcgis进行克里格插值更改投影方式中国地质数据下载站python矢量转栅格重采样设置像元大小一致,设置环境保证栅格对齐 地形因子处理 原始数据:DEM Elevation: 重采样 Slope、Aspect 设置环境保障…

java入门详细教程——day01

目录 1. Java入门 1.1 Java是什么&#xff1f; 1.2 Java语言的历史 1.3 Java语言的分类 1.4 Java语言的特点 1.4.1 先编译再解释运行 1.4.2 跨平台 1.5 JRE和JDK&#xff08;记忆&#xff09; 1.6 JDK的下载和安装&#xff08;应用&#xff09; 1.6.1 下载 1.6.2 安…

四款不同类型的企业防泄密软件推荐

在数字化快速发展的今天&#xff0c;企业数据的安全与保密显得愈发重要。防泄密软件作为一种专门的数据保护工具&#xff0c;已经逐渐成为企业不可或缺的安全屏障。本文将深入探讨防泄密软件对企业的意义&#xff0c;并介绍一些市面上主流的防泄密软件。 首先&#xff0c;防泄密…

redis的跳表

typedef struct zskiplistNode {// 分值double score;// 成员对象robj *obj;// 后退指针struct zskiplistNode *backward;// 层struct zskiplistLevel {// 前进指针struct zskiplistNode *forward;// 跨度unsigned int span;} level[]; } zskiplistNode;跳表的节点查找算法可以…

Springboot自动装配源码分析

版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --> </par…

【线程创建】——三种方式➕多线程案例练习

02 线程创建 Thread , Runnable , Callable 三种创建方式 Thread class - 继承Thread类 (重点) Runnable接口 - 实现Runnable接口 (重点) Callable接口 - 实现Callable接口 (了解) Thread 类实现 它继承了老祖宗 Object java.lang.Object java.lang.Thread 它实现了 Runnab…

有手就会做!保姆级Jmeter分布式压测操作流程(图文并茂)

分布式压测原理 分布式压测操作 保证本机和执行机的JDK和Jmeter版本一致配置Jmeter环境变量配置Jmeter配置文件 上传每个执行机服务jmeter chmod -R 755 apache-jmeter-5.1.1/ 执行机配置写自己的ip 控制机配置所有执行机ip,把server.rmi.ssl.disable改成true 将本机也作为压…

ansible -playbook运维工具、语法、数据结构、命令用法、触发器、角色

目录 配置文件 基本语法规则&#xff1a; YAML支持的数据结构 playbook核心元素 ansible-playbook用法&#xff1a; 触发器 特点&#xff1a; 角色&#xff1a; 习题&#xff1a; 配置文件 playbook配置文件使用yaml语法&#xff0c;YAML 是一门标记性语言,专门用来写配…

QT函数整理

目录 1. 适应高分辨率函数 1. 适应高分辨率函数 自动适应调整设备安装QT的UI分辨率&#xff1a; QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 加载位置&#xff1a;

主机扫漏:Apache Tomcat 环境问题漏洞(CVE-2023-46589)

文章目录 引言I 修复此安全问题see also引言 Apache Tomcat存在环境问题漏洞,该漏洞源于存在不正确的输入验证漏洞,可能会导致将单个请求视为多个请求,从而在反向代理后面出现请求走私。 Tomcat did not correctly parse HTTP trailer headers. A specially crafted traile…

2024版有审图号的SHP行政区划

我们之前分享过一些行政区划数据&#xff0c;但都没有审图号。 今天为大家分享一个2024版且有审图号的行政区划&#xff0c;文件格式为SHP且坐标无偏移。 如果你需要该数据&#xff0c;请在文末查看获取方法。 全国省级行政区划 全国共23个省&#xff0c;5个自治区&#xf…

【消息队列】消息中间件介绍

目录 电商系统引发的思考实现支付业务时使用串行操作&#xff08;同步&#xff09;串行操作存在的问题根据上述的几个问题&#xff0c;在设计系统时可以明确要达到的目标 消息中间件【MQ&#xff08;Message Queue&#xff09;】使用场景1.应用解耦2.异步提速3.流量削峰举个栗子…

ROS控制器插件及机器人模型

ROS中的控制器插件 ros_control 1、ROS为开发者提供的机器人控制中间件 2、包含一系列控制器接口、传动装置接口、硬件接口、控制器工具箱等 3、可以帮助机器人应用功能包更快速落地&#xff0c;提高开发效率 一、控制器管理 提供一种通用的接口来管理怒同的控制器 二、控…

GIAT: 蛋白质结构预测的新利器

瑞典Karolinska研究院在瑞典政府赞助下由Ben Murrell等研究团队在AlphaFold 3最新报告后提出这篇论文提出了一种非常有趣和创新的方法来生成蛋白质骨架结构,称为生成式不变角度转换器(GIAT)。与现有的主要基于扩散模型和流匹配的方法不同,GIAT采用了类似于大型语言模型(如GPT)中…

DDOS攻击实战演示,一次DDOS的成本有多低?

DDoS攻击成本概览 分布式拒绝服务&#xff08;DDoS&#xff09;攻击以其低廉的启动成本和惊人的破坏力著称。攻击者通过黑市轻松获取服务&#xff0c;成本从几十元人民币的小额支出到针对大型目标的数千乃至数万元不等。为了具体理解这一成本结构&#xff0c;我们将通过一个简…

东芝移动硬盘数据恢复方法有哪些

谁能懂我此刻的心情啊&#xff01;移动硬盘用起来真的超级方便&#xff0c;如今我的工作几乎都离不开它&#xff0c;用来存放各种重要文件。可是&#xff0c;让人头疼的事情发生了&#xff0c;昨天我发现移动硬盘里的部分数据竟然莫名其妙地消失了&#xff01;这可咋整啊&#…

乡村振兴与乡村旅游深度融合:依托乡村自然和文化资源,发展乡村旅游产业,促进农民增收致富,打造特色美丽乡村

目录 一、引言 二、乡村振兴与乡村旅游的内在联系 三、依托乡村自然和文化资源发展乡村旅游产业 &#xff08;一&#xff09;挖掘乡村自然资源优势&#xff0c;打造特色旅游品牌 &#xff08;二&#xff09;挖掘乡村文化资源内涵&#xff0c;丰富旅游活动内容 四、促进农…

一年IF涨幅10.527,一跃4区变1区,这本IEEE低调,但实力不容小觑!

本周投稿推荐 SSCI • 2区社科类&#xff0c;3.0-4.0&#xff08;社科均可&#xff09; EI • 计算机工程类&#xff08;接收广&#xff0c;录用极快&#xff09; SCI&EI • 4区生物医学类&#xff0c;1.5-2.0&#xff08;录用率99%&#xff09; • 1区工程类&#…

四川易点慧电商抖音小店稳扎稳打,揭秘其成功背后的秘密武器

在数字经济风起云涌的今天&#xff0c;四川易点慧电子商务有限公司以其独特的商业洞察力和创新经营策略&#xff0c;在抖音小店平台上稳扎稳打&#xff0c;赢得了广大消费者的青睐。那么&#xff0c;这家公司究竟是如何在竞争激烈的电商市场中脱颖而出的呢&#xff1f;让我们一…