ZHCAD05 august 2023 AM2631 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1
C28 与 AM263x 有相似的控制外设。但架构和连接外设完全不同。一般来说,与控制外设相关的程序可以在很少或没有修改的情况下进行迁移,而与 CPU、内存管理和连接外设相关的程序必须针对 AM263x 技术参考手册中的细节进行更新。
众所周知,直接操作寄存器在过去的 C28 程序中得到广泛应用。最近几年,从寄存器操作改为了 API 调用。从寄存器操作改为 API 调用可以简化较复杂的 MCU 的采用。但是,从寄存器用户转为 API 用户需要完成一些工作。对于 C28 和 AM263x,这项工作都是不可避免的。完成这项工作后,不难使用 AM263x 控制子系统,因为来自 ADC 和 PWM 等模块的概念非常相似。表 4-2 中提供了有关控制 API 相似性的一些示例。另外,AM263x SDK 还提供强大的 Sysconfig。它提供直观的系统配置用户接口。终端用户可以直接将他们对控制外设的想法应用到配置中,而无需担心 API 细节。控制环路中广泛使用的 API 已经在框架中提供并在节 3中介绍。
API 函数 | AM263x 定义 | C28 定义 |
---|---|---|
获取 ADC 结果 | static inline uint16_t ADC_readResult (uint32_t resultBase, ADC_SOCNumber socNumber) | static inline uint16_t ADC_readResult (uint32_t resultBase, ADC_SOCNumber socNumber) |
设置 PWM 占空比 | static inline void EPWM_setCounterCompareValue (uint32_t base, EPWM_CounterCompareModule compModule, uint16_t compCount) | static inline void EPWM_setCounterCompareValue (uint32_t base, EPWM_CounterCompareModule compModule, uint16_t compCount) |
此外,尽管二者有相似之处,但在 SDK 和名称相似的某些设计上也有些不同。如节 4.1 所示,AM263x 的 SDK 结构与 C28 的 SDK 非常不同。尽管它们都有相似的控制外设和相似的 API,但仍然必须了解 SDK 结构的不同,以便在开发过程中轻松查找细节。对于 XBAR 等某些特性,C28 和 AM263x 都用 XBAR 同步模块之间的操作,但 AM263x 中的 XBAR 远比 C28 中的 XBAR 更加强大。这也带来一项挑战,必须充分理解和正确配置它。C28 中的 XBAR 程序无法直接应用于 AM263x 工程。