AURIX TC3XX系列之GTM CMU模块

1、CMU简介

        时钟管理单元(CMU)负责计数器和GTM的时钟生成。它由为整个GTM产生不同的时钟源的三个子单元组成。三个子单元分别为:CFGU(Configurable Clock Generation),EGU(External Clock Generation),FXU(Fixed Clock Generation)。CMU时钟源是Cluster 0时钟信号fcls0_clk,它由寄存器GTM_CLS_CLK_CFG中的位字段CLS0_CLK_DIV的值来定义。fcls0_clk = fGTM / CLS0_CLK_DIV

        对于fGTM,它由以下公式决定

         对于fSOURCE0可以参考我之前写的《AURIX TC3XX系列之时钟系统》http://t.csdnimg.cn/0Invk

        CMU结构图如下所示

2、功能介绍

2.1 全局时钟分配器Global Clock Dvider

        子块全局时钟划分器可用于将CMU主源信号CLS0_CLK划分为公共的细分时钟信号。

        子块全局时钟分割器的分割时钟信号被实现为使能信号,使来自CLS0_CLK信号的专用时钟产生用户指定的分割时钟频率。

2.2 可配置的时钟生成子单元CFGU

        CFGU为TIM, ATOM, TBU, MON模块提供8个独立的时钟源,每个模块都可以选择任意的时钟源。其中生成的四个时钟:CMU_CLK0, CMU_CLK1, CMU_CLK6 and CMU_CLK7用于TIM滤波器计数器。通过在寄存器CMU_CLK_EN中设置适当的位字段EN_CLK[x],可以单独启用每个时钟信号CMU_CLK[x]。

2.3 固定时钟生成子单元FXU

        FXU为TOM模块提供预定义好的时钟CMU_FXCLK[y] (y: 0…4),分别对应CMU_FXCLK/2^0,CMU_FXCLK/2^4, CMU_FXCLK/2^8, CMU_FXCLK/2^12,CMU_FXCLK/2^16

。FXU的时钟输入源是全局时钟以及CFGU产生的CMU_CLK0-7。

2.4 外部时钟生成子单元EGU

        EGU子单元能够产生多达三个在CMU_ECLK[z] (z:0……2)处可见的芯片外部时钟信号,其占空比约为50%。且EGU能够为模块CCM生成时钟CMU_CLK8,以管理2个时钟域。

3、MCAL配置

         CMU的时钟配置基本在MCU下

Cluster0输入时钟设置:设置不分频,即fcls0_clk = fGTM 

全局时钟分频设置:设置CFGU模块的时钟等于时钟源fcls0_clk

FXU设置:设置固定时钟使能,时钟选择全局时钟,即经过全局时钟分频的时钟GLOAB CLOCK

CFGU设置:设置CFGU生成的时钟使能及分频

EGU设置:外部时钟使能及分频设置

<think> 嗯,用户这次想深入了解Aurix TC3xx定时器模块的工作原理。从用户提问的措辞看,ta应该是有一定嵌入式开发基础的技术人员,可能正在做TC3xx芯片的底层驱动开发或系统设计。用户之前已经接触过GPT和GTM模块的配置文档,现在需要更底层的机制说明。 注意到用户提供了四篇技术文档的索引,其中最重要的是[^3]对GTM模块的整体介绍和[^4]的详细子模块分析。需要重点整合这些信息:GTM作为中央计时枢纽的核心地位、各子模块的功能分工(特别是TIM/TOM/ATOM的协同)、时钟树结构(CMU的关键作用)以及硬件级联机制(如ARU总线)。 用户可能特别关注实际应用场景中的工作原理,比如PWM波形生成时的信号路径:从CMU提供时钟源→TOM配置周期/占空比→通过Port控制单元输出到物理引脚。对于这种复杂问题,用分层示意图最直观,但文本描述需要更注重逻辑链条的完整性。 考虑到定时器模块的复杂性,准备从三个维度展开:首先是全局架构(强调GTM的枢纽作用),然后重点解析输入/输出类子模块的工作原理(TIM测量输入信号特征,TOM/ATOM生成输出波形),最后说明支撑系统(时钟管理和路由机制)。技术术语需保持与芯片手册一致,比如"FLT滤波单元"、"TGC通道组控制"等专业词汇不能擅自改写。 关于代码片段是否需要的问题,考虑到用户引用文档中多次出现MCAL配置,准备补充一个ATOM通道初始化示例,展示如何将寄存器配置映射到实际功能实现。不过示例代码需要严格标注"简化示例"避免误导,毕竟真实驱动开发还要考虑时钟同步等细节。 </think> Aurix TC3xx系列MCU的定时器功能主要由**通用定时器模块GTM)**及其关联的子模块(如GPT、TOM、ATOM、TIM、CMU等)协同实现。其核心工作原理如下: --- ### **1. 时钟基准与中央枢纽:GTM模块** GTM是定时器系统的核心枢纽,提供**可配置的时间基准**和**信号路由框架**: - **模块化设计**:集成CMU、TOM、ATOM、TIM、DTM等子模块,通过内部总线(如ARU)互联[^3][^4]。 - **灵活路由**:支持子模块间的信号传递(如用TIM测量外部信号,触发TOM生成PWM)[^3][^4]。 - **多时钟源**:CMU(时钟管理单元)为各子模块提供分频/倍频后的时钟信号,确保时间基准一致性[^2][^4]。 --- ### **2. 定时器功能实现原理** #### **(1) 输入信号测量(TIM模块)** - **功能**:捕获外部信号(如脉冲宽度、频率)。 - **原理**: - 通过**滤波单元(FLT)**消除信号抖动[^4]。 - 使用**计数器**记录信号边沿时间戳,支持模式: - **PWM测量模式(TPWM)**:计算占空比/周期。 - **脉冲积分模式(TPIM)**:累计有效电平时间[^4]。 - **超时检测(TDU)**:监控信号丢失事件[^4]。 #### **(2) PWM波形生成(TOM/ATOM模块)** - **TOM(16位定时器输出模块)**: - 每个通道独立配置**周期**与**占空比**。 - 支持模式: - **连续模式**:循环输出PWM。 - **单次模式**:触发后输出单次波形。 - **中心对齐模式**(TC3xx新增):用于电机控制[^4][^4]。 - **ATOM(24位ARU互联定时器)**: - 相比TOM精度更高,且可通过**ARU总线**接收其他模块触发信号,生成复杂波形序列[^3][^4]。 - 适用于高精度PWM或同步多通道输出。 #### **(3) 基础定时(GPT模块)** - **依赖GTM**:需关联TOM/ATOM通道作为时间基准[^1]。 - **原理**:基于GTM提供的时钟信号进行计数,实现计时/中断功能。 --- ### **3. 关键支撑机制** - **死区控制(DTM)**:为TOM/ATOM生成的PWM添加**死区时间**,防止桥臂短路(如电机驱动)[^3]。 - **信号路由**: - **输入路径**:外部引脚 → Port模块 → TIM通道[^2][^4]。 - **输出路径**:TOM/ATOM通道 → Port模块 → 物理引脚[^2][^4]。 - **同步机制**:通过**TBU(时间基准单元)**协调各子模块计数器,确保时间基准统一[^4]。 --- ### **4. 工作流程示例(PWM测量与生成)** ```mermaid graph LR A[外部信号] --> B[TIM模块测量频率/占空比] B --> C[ARU总线传递数据] C --> D[ATOM模块生成同步PWM] D --> E[DTM添加死区时间] E --> F[Port输出至引脚] ``` --- ### **总结** Aurix TC3xx的定时器系统以**GTM为核心**,通过模块化设计实现灵活功能组合: 1. **TIM**负责**信号采集与分析**。 2. **TOM/ATOM**实现**高精度PWM输出**。 3. **GPT**提供**基础计时**,依赖GTM时钟源。 4. **CMU/DTM/TBU**等模块提供时钟、死区、同步等关键支撑[^1][^2][^3][^4]。 > 实际应用中需通过MCAL(如EB tresos)配置各模块寄存器,关联时钟源、路由路径及工作模式[^1][^2]。 --- ### 相关问题 1. TIM模块的滤波模式(如去毛刺)如何配置? 2. TOM与ATOM模块在生成PWM时有何性能差异? 3. 如何通过ARU总线实现GTM模块间数据交互? 4. 死区时间(DTM)配置对电机控制有何影响? 5. CMU模块如何为不同子模块分配时钟频率?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值