1.概述
1.1 PWM 在 TC3xx 中的定位
TC3xx 平台没有独立的 PWM 外设,所有 PWM 波形均由定时器类外设生成。MCU 提供的可选载体归为两类:GTM 和 CCU6/GPT12。
GTM(Generic Timer Module)是通用的定时器平台,内部包含多个子模块。其中用于 PWM 生成的是 ATOM(ARU-connected Timer Output Module)和 TOM(Timer Output Module)。ATOM 和 TOM 在通道架构上高度相似,核心差异在于 ATOM 支持 ARU 数据通路,而 TOM 不支持。两者均提供 24 位或 16 位计数器(ATOM 为 24 位,TOM 为 16 位)、影子寄存器双缓冲、以及多通道同步更新能力。在 AUTOSAR MCAL 层面,GTM 作为统一的硬件载体,由 Pwm 驱动根据配置选择使用 ATOM 或 TOM 通道。
CCU6 是面向电机控制的专用捕获比较单元,内置硬件死区生成和 TRAP 保护,适合三相桥驱动。GPT12 是通用的 16 位定时器,PWM 能力最基础,适合低速方波。
以TC377为例,其GTM 和 CCU6/GPT12的资源如下图所示。

1.2 本文讲解对象:ATOM
本文以 GTM 的 ATOM 作为 PWM 生成的详细讲解载体,原因如下:
第一,ATOM 的寄存器体系完整且典型。一个 ATOM 通道包含计数器 CN0、周期比较寄存器 CM0、占空比比较寄存器 CM1、影子寄存器 SR0 和 SR1,以及控制寄存器 CTRL 和状态寄存器 STAT。这组寄存器覆盖了 PWM 生成的全部机制:计数、比较、双缓冲、同步更新、输出控制。掌握这套寄存器后,TOM 的寄存器结构可以直接类比理解;CCU6 和 GPT12 的 PWM 机制虽然不同,但概念上更简单,可以对照参考。
第二,ATOM 的模式丰富度为扩展应用预留了空间。标准 PWM 输出使用 SOMP 模式,此时 CM0 决定周期、CM1 决定占空比,输出引脚在比较匹配时翻转。其余四种模式各有用途:SOMI 用于串行数据输出,SOMS 用于移位操作,SOMC 用于比较触发外部事件,SOMB 用于生成脉冲串。本文重点讲解 SOMP 模式,其余模式在后续章节简要提及。
需要强调的是,选择 ATOM 并非因为它是唯一或最优的 PWM 载体,而是因为它的机制最具代表性。实际项目中应根据外设需求、资源占用、实时性要求综合选择载体,没有绝对的优劣之分。
详细的ATOM相关内容可以参考别的章节,本文不对ATOM进行详细展开。
1.3 应用场景
标准 PWM 输出是最基础的应用场景。此时 PWM 频率固定,占空比可能静态或缓慢变化。典型例子包括 LED 亮度调节、加热片功率控制、继电器占空比驱动等。这类场景对实时性要求不高,GTM TOM 或 ATOM 均可胜任,选择主要取决于资源占用和通道数量。
高频动态调制是 ATOM 的核心优势场景。此时 PWM 频率较高(通常在 10 kHz 以上),且占空比需要每个周期动态更新。影子寄存器 SR0/SR1 提供了双缓冲机制:软件在任意时刻写入新参数,硬件在周期边界原子装载到 CM0/CM1,保证当前周期内的波形完整,不会出现占空比撕裂。AGC(ATOM Global Control)的 FUPD 位域支持多通道同拍更新,适用于需要严格同步的多路 PWM。
与输入捕获联动的定时输出是 ATOM 特有的能力。通过 ARU 数据通路,TIM 模块捕获的外部信号时间戳可以直接传递给 ATOM,触发输出翻转或参数更新。这种硬件级联动消除了 ISR 延迟和抖动,适合对时序精度要求极高的场景,例如精确脉冲生成、同步整流触发等。
三相桥驱动通常选择 CCU6,因为它内置了硬件死区和 TRAP 保护。如果用 ATOM 实现三相桥,需要外接 CDTM(Cluster Dead Time Module)来插入死区,并通过软件或 SMU 模块实现过流保护。ATOM 的优势在于灵活性和扩展性,CCU6 的优势在于集成度和保护响应速度。
低速方波应用对硬件要求最低,GPT12 或 TOM 即可满足。这类应用通常不需要影子寄存器,也不需要复杂的同步机制,配置简单,资源占用小。
2 PWM依赖模块
2.1 依赖关系总览
Pwm不是孤立的驱动。它生成 PWM 波形的完整链路跨越四个 AUTOSAR 模块:Mcu、Port、Irq(中断路由),以及可选的 Det/Dem(错误上报)。此外还有一个隐性的"五方"——共享 GTM 硬件的其他定时器类驱动(ADC、ICU、GPT、OCU、WDG),它们与 PWM 通过 Mcu 的资源分配机制划清边界。依赖关系如下图。

2.2 Mcu:GTM 时钟树的建立者
GTM 的模块时钟源自 fGTM,如下图所示,最大为200MHz。 fGTM经GTM中的 CMU(Clock Management Unit)分频出 CMU_CLK0–7、CMU_ECLK0–2、CMU_FXCLK 等多路时钟源,每个 ATOM/TOM 通道在自己的 CTRL.CLK_SRC_SR 位域中选定使用哪一路。

GTM时钟的配置在EB中Mcu模块McuClockSettingConfig配置项中,具体体现如下图。

除此之外,fGTM到达CMU前还会进行分频作为 Cluster 的工作时钟及其上 CMU 时钟源的选定,需要在GtmClusterConf中配置输入的CLSx_CLK时钟频率,具体如下图所示。

2.3 Port:引脚复用与输出使能
PWM 输出信号最终要落到某个物理引脚上,这个转换由 Port 驱动完成。对 TC3xx 而言,每个 ATOM/TOM/CCU6 通道到引脚有有限的一组可选映射,在 Data Sheet 的引脚表中体现为 ALT3/ALT4/ALT5 等多个备选复用功能,本文选用P2.0引脚作为PWM输出,如下图所示。

PORT的配置在EB中Port模块PortContainer配置项中,具体体现如下图。

2.4 ATOM 输出与 PORT 引脚的绑定
ATOM 通道产生的 PWM 信号并不是直接从模块内部连到物理引脚的。TC3xx 在 GTM 输出级和 PORT 引脚之间插入了一层片内输出布线网络,整个链路是两级映射:
第一级的选择寄存器是 GTM_TOUTSELn(n 为组号,每个寄存器容纳 8 个 4-bit 的 SELx 位域,覆盖 TOUT0~7、TOUT8~15 ……依此类推)。SELx 的每个编码值对应某个 TOM/ATOM 模块的某个通道的输出,这个编码表位于芯片附录手册里 GTM to Port Connections章节。如下图所示,TOUT0中对应的功能就包括ATOM0_0以及ATOM0_1。

第二级由 PORT 驱动完成:每条 TOUT 线在芯片的 Pin Function 表中会被列为若干引脚的备选复用功能(GTM_TOUTn,Ctrl. 列标 O1/O2…),把对应引脚的 Pn_IOCRx.PCx 配成该 ALT 模式,信号才真正出现在焊盘上。已经在2.3小节讲过,这里不再阐述。
ATOM相关配置在EB中Mcu模块GtmGlobalConfiguration->GtmAtomGlobalConf配置项中,具体体现如下图。

以及McuHardwareResourceAllocationConf->McuGtmAllocationConf->McuGtmAtomAllocationConf中。

2.5 PWM相关功能配置
本节按 EB tresos 中 Pwm_17_GtmCcu6 驱动的实际配置结构展开。
①General


②PwmChannel

③PwmChannelClass

④GtmTimerOutputModuleConfiguration






