单片机/MCU论坛
直播中

刘刚

8年用户 1120经验值
私信 关注
[问答]

在TC397上CCU60_CC60和CCU60_COUT60有什么区别?

我是 TC397 的新手。CC60和COUT60有什么区别?第一个是输入,第二个是输出?如果我想读取或输出 PWM 或正交编码器信号,我应该使用哪个引脚?我还可以对 PWM 和正交编码器信号使用 GTM_tiMx_INx(TIM 模块的 Mux 输入通道)和 GTM_TOUTx(GTM 多路复用输出)吗?谢谢。

回帖(1)

姬房有

2025-7-30 18:06:46

好的,很高兴看到你在探索强大的 TC397!理解这些模块和引脚是使用它的关键。我们来分解一下你的问题:


1. CCU60_CC60 与 CCU60_COUT60 的区别



  • CCU60_CC60 (Capture Compare Input 60): 这是一个输入引脚。它属于 CCU60 模块的通道 60 (TCC60)。它的主要功能是:

    • 输入捕获 (Capture): 检测外部信号(如 PWM 输入、脉冲计数、频率测量)的边沿(上升沿、下降沿或双边沿),并将定时器 TCC60 的计数值锁存到捕获寄存器中。这对于测量脉冲宽度或周期非常有用。

    • 调制输入 (Modulation): 作为外部调制信号输入,可以动态控制由该通道生成的 PWM 输出的占空比或周期。

    • 故障输入 (Trap): 可以作为紧急停止(故障保护)信号输入。当该引脚上出现特定信号(通常是高电平)时,会立即强行将 PWM 输出设置为预定义的安全状态(通常为高阻态或固定电平),保护外部电路。


  • CCU60_COUT60 (Capture Compare Output 60): 这是一个输出引脚。它也属于 CCU60 模块的通道 60 (TCC60)。它的主要功能是:

    • PWM 输出 (Output): 这是它的核心功能。当通道 TCC60 配置为比较模式(通常是边沿对齐或中心对齐 PWM)时,该引脚会输出由定时器比较寄存器控制的 PWM 波形。

    • 被动电平输出 (Passive Level): 当 PWM 输出被禁用或处于非活动状态(例如,在陷阱事件后)时,它可以输出一个可配置的固定电平(高或低)。



总结:



  • CCU60_CC60 = 输入 (捕获信号、调制信号、故障信号)

  • CCU60_COUT60 = 输出 (主要输出 PWM 波形)


2. 读取/输出 PWM 或正交编码器信号应该使用哪个引脚?



  • 读取 PWM 输入信号 (测量频率/占空比):

    • 使用 CCU60_CC60 (或 CCU60_CC61, CCU60_CC62 等对应通道)。

    • 配置: 将 TCC60(或 TCC61, TCC62)配置为输入捕获模式。选择合适的触发边沿(上升、下降或双边沿)来捕获信号边沿的时间戳。


  • 输出 PWM 信号:

    • 使用 CCU60_COUT60 (或 CCU60_COUT61, CCU60_COUT62 等对应通道)。

    • 配置: 将 TCC60(或 TCC61, TCC62)配置为比较模式(如边沿对齐 PWM 或中心对齐 PWM)。设置周期寄存器和比较寄存器来控制 PWM 频率和占空比。


  • 读取正交编码器信号:

    • 使用 两个输入引脚 CCU60_CC60 CCU60_CC61 (或者 CCU60_CC61 和 CCU60_CC62,取决于你使用的具体通道对)。正交编码器需要两个相位差 90 度的信号(通常称为 A 相和 B 相)。

    • 配置:

      • 将 CCU60 模块配置为 编码器接口模式 (Encoder Interface Mode)。这通常在模块控制寄存器中设置。

      • 将输入通道 CC60CC61 分配给编码器接口(通常固定或通过多路复用器设置)。

      • 配置输入极性(上升沿/下降沿有效)。

      • 编码器接口硬件会自动解码 A/B 相的信号,根据边沿顺序判断方向(正转/反转)并增减内部计数器。应用程序只需读取计数器的值即可得到位置信息。




3. 能否使用 GTM_TIMx_INx 和 GTM_TOUTx?


绝对可以,并且通常更推荐用于要求更高的应用! GTM (Generic Timer Module) 是 TC397 中一个极其强大和灵活的定时器外设系统,比 CCU 模块复杂得多,但也提供了更高的精度、更多通道、更复杂的信号处理功能(如 PSI5, DSL/DSD, DPLL)和更灵活的输入/输出路由。



  • GTM_TIMx_INy (TIM Input Channel):

    • 这些是 GTM 定时器输入多路复用器 (TIM - Timer Input Module)输入引脚

    • 你可以将外部信号(如 PWM 输入、正交编码器 A/B 相、霍尔传感器信号、甚至 GPIO)连接到这些引脚。

    • TIM 模块内部有强大的滤波器、边沿检测器和多路复用器,可以将这些输入信号路由、预处理后,再发送给 GTM 内部的各个子模块(如 TOM, ATOM, TBU, MAP, DPLL)进行处理。对于读取 PWM 或正交编码器信号,你会用到这些引脚作为物理输入点。


  • GTM_TOUTz (TOM Output Channel):

    • 这些是 GTM 定时器输出模块 (TOM - Timer Output Module)输出引脚

    • TOM 是 GTM 中专门用于生成高精度、复杂 PWM 波形的子模块。它支持多种 PWM 模式(包括互补带死区的 PWM)、同步、事件链触发等高级功能。

    • 当你配置好 TOM 通道后,生成的 PWM 信号就会通过这些 GTM_TOUTz 引脚输出。对于输出 PWM 信号,你会用到这些引脚作为物理输出点。



使用 GTM 处理 PWM 和正交编码器:



  1. PWM 输出:

    • 配置 GTM_TOMx_CHy (例如 TOM0_CH0) 通道来生成所需的 PWM 波形(设置周期、占空比、死区(如需)、时钟、触发等)。

    • 配置 GTM_TOUTz 引脚映射到你所使用的 GTM_TOMx_CHy 通道。例如,设置 TOUT70 映射到 TOM0_0_OUT

    • 该 PWM 信号将从 GTM_TOUT70 引脚输出。


  2. PWM 输入测量:

    • 将外部 PWM 信号连接到某个 GTM_TIMx_INy 引脚(例如 TIM0_IN0)。

    • 在 GTM 内部,将这个输入信号通过 TIM 模块路由给一个合适的处理单元:

      • TIM 通道本身: 可以配置 TIM 通道工作在测量模式,直接输出周期和占空比信息。

      • ATOM (ARU-connected TOM): 配合 ARU (ARU-connected Output Module) 可以捕获边沿时间戳进行计算。

      • TDU (Time Difference Unit): 专门用于高精度时间间隔测量。


    • 读取处理单元的结果寄存器得到频率/占空比。


  3. 正交编码器接口:

    • 将编码器的 A 相和 B 相分别连接到两个 GTM_TIMx_INy 引脚(例如 TIM0_IN0TIM0_IN1)。

    • 配置 GTM 的 DPLL (Digital Phase Locked Loop) 模块或 MAP (Multi Channel Acquisition and Preprocessing) 模块工作在 正交解码器 (Quadrature Decoder) 模式

    • 将 TIM 输入信号路由到 DPLL 或 MAP。

    • DPLL/MAP 硬件会自动执行正交解码(方向判断、四倍频计数)。

    • 读取 DPLL 或 MAP 模块的位置计数器得到计数值。



关键区别与建议:



  • 复杂度: CCU60 相对简单易用,适合基础需求。GTM 极其强大灵活,但配置非常复杂(涉及多级路由、多模块协同),学习曲线陡峭。

  • 性能: GTM 通常提供更高的分辨率(如 16bit vs CCU 的 16bit 或更低)、更高频率、更低抖动、更多同步选项、更多通道以及更高级的信号处理功能(滤波、DPLL、PSI5等)。

  • 资源: TC397 有多个 CCU 模块(CCU60, CCU61)和一个巨大的 GTM 模块。GTM 的内部资源(TIM, TOM, ATOM, DPLL 等)非常丰富。

  • 新手建议:

    • 对于基础 PWM 输出/输入(如控制电机速度、读取简单频率),从 CCU60_COUT6x / CCU60_CC6x 开始学习更容易上手。配置寄存器相对少且集中。

    • 对于正交编码器,CCU60 的内置编码器接口模式通常是最简单的入门方式(使用 CC60/CC61)。

    • 当你需要更高精度、更复杂波形(互补PWM带死区)、更多通道、同步多个PWM、处理高速编码器、或与其他高级GTM功能(如PSI5)集成时,就需要学习和使用 GTM (GTM_TIMx_INy / GTM_TOUTz)。这在电机控制(FOC)、复杂位置检测、高速通信等场景几乎是必须的。



重要提示:



  1. 引脚复用: TC397 的物理 GPIO 引脚 (Pxx.y) 可以映射到多个功能(如 CCU60_CC60, GTM_TIM0_IN0, ERU0_INA0, GPIO 等)。你必须通过 Port Control Register (IOCRxx) 正确配置对应引脚的 输入多路选择器 (Input Multiplexer)输出多路选择器 (Output Multiplexer) 来选择你需要的特定功能(CC60, COUT60, TIM0_IN0, TOUT70 等)。配置错误会导致信号无法输入或输出!

  2. 时钟配置: 无论是 CCU 还是 GTM,都需要正确配置它们的时钟源和分频器。CCU 通常由 fCCU 总线时钟驱动。GTM 有自己独立的时钟域 (fGTM),需要通过 SRC 或 CMU 配置其时钟源(如 fPLL_GTM)。

  3. 寄存器配置: 详细配置步骤需要查阅 TC3xx User's Manual (UM)TC3xx Family Reference Manual (iLLD 文档或英飞凌官方手册)。特别是 GTM,配置涉及多个模块寄存器(TIM, TOM, MAP, DPLL, ARU, MUX 等)的协同设置。

  4. 库支持: Infineon 提供 iLLD (Infineon Low Level Driver) 库,其中包含了配置 CCU 和 GTM 的函数和示例代码。使用库可以显著简化开发过程,尤其是在处理复杂的 GTM 配置时。建议查阅 iLLD 文档和示例。


总结:



  • CC60 = 输入 (Capture/Modulation/Trap)

  • COUT60 = 输出 (PWM/Passive Level)

  • 基础 PWM: 输出用 COUT6x,输入用 CC6x

  • 正交编码器 (CCU): 读入用 CC60 & CC61 (配置为编码器模式)。

  • 更高要求用 GTM:

    • 物理输入引脚: GTM_TIMx_INy (连接外部信号)

    • 物理输出引脚: GTM_TOUTz (输出生成的 PWM)

    • GT内部模块 (TIM, TOM, DPLL/MAP) 执行实际的 PWM 生成、捕获和编码解码逻辑。



作为新手,建议先尝试用 CCU60 实现简单的 PWM 输出和正交编码器读取,理解基本原理。当你需要更强大功能时,再深入研究 GTM,充分利用 TC397 的潜力。务必仔细阅读手册并根据具体需求选择合适的模块和引脚。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分