当前位置: 首页 > news >正文

STM32通用定时器TRC含义解析

1. TRC信号作为捕获部分的输入

在STM32定时器中,捕获/比较通道(CCx)的输入源是可以配置的。标准输入是外部引脚(TIx),但内部信号(包括来自触发控制器的信号)也可以路由到捕获通道。

  • 关键配置寄存器: TIMx_CCMRx (Capture/Compare Mode Register)

  • 关键位域: CCxS[1:0] (Capture/Compare x Selection)

    • 00: 输出 (Compare mode)

    • 01: 输入,映射到 TIx (标准引脚输入)

    • 10: 输入,映射到 TIy (交叉映射,y≠x)

    • 11: 输入,映射到 TRC (内部触发信号) <<< 这就是您指的功能!

  • TRC信号来源:

    • 这里的"TRC"信号直接来源于触发控制器(Trigger Controller)的输出

    • 触发控制器的输入源(TRGI)正是由TIMx_SMCR寄存器的TS[2:0]位选择的(之前讨论的ITR0, ITR1, ITR2, ITR3, TI1F_ED, TI1FP1, TI2FP2, ETRF)。

    • 简单路径: TS[2:0]选择的源 (TRGI) -> 触发控制器 -> TRC信号 -> 被CCxS[1:0]=11选中的捕获通道。

  • 为什么这样做?应用场景:

    • 测量内部事件间隔: 捕获通道原本用于测量外部引脚信号的边沿间隔。配置为TRC输入后,它可以用来测量内部触发信号的间隔。

    • 间接测量外部事件: 例如,将TS[2:0]配置为TI1F_ED(TI1引脚上的任何边沿作为触发源TRGI)。当TI1引脚有边沿时,它会产生TRGI信号,触发控制器输出TRC信号。如果配置一个捕获通道(如CC4)的CCxS=11(输入源选TRC),那么CC4就能捕获到这个TRC信号(即TI1边沿事件)发生的时刻。这样,即使信号没有直接连接到CC4引脚,也能通过TRC间接捕获其时间戳。

    • 测量定时器同步/触发事件: 如果TRGI源是另一个定时器的TRGO(TS=ITRx),那么捕获通道可以精确测量主定时器发出触发信号的时间间隔。

    • 节省引脚/复杂路由: 当外部信号已经连接到某个输入通道(如TI1),但你想用另一个捕获通道(如CC2)来测量它时,可以通过TS=TI1F_ED + CC2S=11实现,而不需要把物理信号再连到CC2的引脚。

总结: 将捕获通道的输入源配置为TRC,实质上是让捕获通道去“监听”定时器内部触发控制器产生的信号。这个信号源于TS[2:0]选择的触发源(TRGI),使得捕获功能可以脱离外部引脚,用于测量内部事件或间接测量外部事件。

 

2. TRC信号与无刷电机(BLDC)驱动

在STM32(尤其是带高级定时器TIM1/TIM8的型号)驱动BLDC电机时,触发控制器(TRC是其输出体现)和内部连接扮演着核心角色,主要用于实现基于霍尔传感器的换相

  • 关键需求:

    • BLDC电机需要6步换相。

    • 霍尔传感器(通常3个)输出信号(H1, H2, H3)指示转子位置,决定何时切换到下一相。

    • 换相点需要精确、低延迟地触发定时器更新PWM输出(改变通道开关状态)。

  • 如何实现(典型方案):

    1. 霍尔信号输入: 将3个霍尔传感器信号连接到定时器的输入通道(通常是TI1, TI2, TI3)。

    2. 配置霍尔接口模式:

      • TIMx_CR2寄存器中设置TI1S位(有时也叫HALLSEN),将TI1, TI2, TI3配置为组合的霍尔模式输入

      • 定时器内部硬件会自动解码TI1/TI2/TI3上的信号,生成一个综合的转子位置状态

    3. 霍尔事件作为触发源:

      • 关键点: 每当检测到有效的霍尔传感器信号变化(即转子位置改变,需要换相时),定时器硬件会自动产生一个内部触发信号(TRGI)。这个信号本质上等价于将TS[2:0]配置为TI1F_ED(或类似)产生的效果,但它是霍尔模式特有的硬件行为。

      • 这个触发信号(TRGI)输入到触发控制器

    4. 触发控制器产生TRC并驱动动作:

      • 触发控制器接收到这个代表换相点的TRGI信号。

      • 触发控制器可以配置(通过TIMx_SMCR)在接收到此TRGI时执行特定动作:

        • Slave Mode: Reset Mode (SMS=100): 最常见!收到霍尔触发信号(TRGI)后,定时器计数器立即复位 (CNT=0)。

        • (可选) Gate Mode, Trigger Mode等。

      • 同时,触发控制器会产生TRC信号(作为其活动的输出)。

    5. TRC信号触发换相动作:

      • 配置主模式输出 (TIMx_CR2.MMS): 将主模式输出设为Update Event (MMS=010最常见) 或 Enable

      • 结果: 当触发控制器因霍尔事件产生TRC信号时,它会立刻在TRGO引脚上输出一个更新事件(或使能事件)信号

      • 级联或自反馈:

        • 这个TRGO信号可以连接到自身定时器的从模式触发输入(TRGI)(如果支持),形成一个闭环。

        • 更常见的是连接到负责产生PWM的定时器(通常是同一个高级定时器本身) 的TRGI输入。

      • 触发PWM更新: 作为“从”的PWM定时器,配置其从模式为Trigger Mode (SMS=110) 或 Reset Mode (SMS=100)。当它收到来自“主”(即它自己或另一个定时器)的TRGO信号(代表换相点)时,它会:

        • 立即复位计数器 (SMS=100): 这确保了PWM波形在新换相周期的精确起点开始。

        • 和/或: 产生一个更新事件(UEV)。这个更新事件是关键!

      • 更新事件加载新PWM参数: 在高级定时器中,更新事件会:

        • 将预装载寄存器(ARRCCRx)的值更新到影子寄存器。

        • 在BLDC驱动中,预先根据下一个换相状态计算好的PWM占空比、通道极性(有效电平)、通道开关状态(死区控制)、刹车状态等参数,会在更新事件发生时一次性生效! 这就是实现无缝、精确换相的核心机制。硬件自动在换相点切换所有PWM设置,避免了软件延迟。

  • TRC在BLDC驱动中的核心作用:

    1. 桥梁: TRC是霍尔传感器事件(转子位置变化)转换控制PWM定时器立即更新/复位的关键内部信号。

    2. 实现硬件自动换相: 通过配置触发控制器和主/从模式,利用TRC信号(最终体现为TRGO),可以在几乎零延迟(硬件自动完成)的情况下,在精确的换相点复位PWM计数器并加载新的预装载值(ARR, CCRx)和配置(CCER, BDTR等),实现平滑、高效的换相。软件只需要在中断中(如捕获中断或更新中断)计算好下一个换相周期的PWM参数并写入预装载寄存器即可。

总结: 在STM32无刷电机驱动中,“TRC”信号(更准确说是触发控制器的输入TRGI和输出TRC/TRGO构成的路径)是实现基于霍尔传感器的硬件自动换相的关键基础设施。它确保了换相动作由硬件在检测到霍尔信号跳变后立即、精确地触发,将PWM输出切换到下一个状态,这是高效可靠驱动BLDC电机的基石。高级定时器的强大之处就在于将这些复杂的联动逻辑用硬件实现。

 

http://www.xdnf.cn/news/994735.html

相关文章:

  • 【数据传输常用命令】:服务器与本地之间的数据传输
  • FastDFS分布式储存
  • 保诚发布PRUD币,重塑Web3健康金融生态版图
  • 【AI应用开发数据基建】从非结构化数据到结构化知识的通用转化流程
  • 达梦数据库适配的 Druid 连接池深度优化指南
  • 远程管理命令:网卡和IP地址的概念
  • uni-app项目实战笔记3--使用scroll-view实现每日推荐左右滑动效果
  • Notepad++如何列选
  • 【idea】工具使用报错记录
  • 解决 IntelliJ IDEA 中无法选择 application 模块类路径的问题
  • OpenCV——图像金字塔
  • CVE-2020-1938源码分析与漏洞复现(Tomcat 文件包含/读取)
  • 【自建grafana接入阿里云sls】
  • 力扣HOT100之终章:一些随笔
  • LeetCode 3423.循环数组中相邻元素的最大差值:遍历(模拟)
  • wordpress首页调用指定ID页面内的相册
  • 如何有效监控JVM环境,保障应用性能
  • 使用COMSOL生成数据与DeepONet学习静电场电势分布
  • 【消息队列】——Kafka如何保证配置下发的一致性
  • 博图SCL语言教程:灵活加、减计数制作自己的增减计数器(CTUD)
  • 智能云打印机EN 18031申请认证流程
  • Mongodb学习(Windows版本)
  • MongoDB 安装实践:基于鲲鹏 ARM 架构 Ubuntu 环境
  • 需求文档:边缘计算机软件重装与物联网登录应用开发
  • 【新能源汽车技术全景解析:构建智能出行新生态】
  • 华为云Flexus+DeepSeek征文| 基于Dify-LLM平台应用实践:创建智能知识库问答助手
  • 离线部署openstack 2024.1控制节点基础服务
  • Webpack 剖析与策略
  • 部署http服务
  • Redis+Kafka实现动态延时任务