ZHCU108B June 2015 – March 2025
我们针对 Piccolo TMS320F28069M 开发和编译了示例固件,并将使用图 5-1中所述的外设模块。
该固件将使用 C2000 controlSUITETM™。固件主要由三个功能模块组成。F28069M 框架(如图 5-2中所述)、用于同步采样所需数据并计算插值角度的算法,以及基于 UART 终端的用户界面。
图 5-2 正弦/余弦编码器框架流程图TMS320F28069M 框架可初始化 TMS320F26069M CPU 时钟至 80Mhz,对 GPIO 多路复用器以及各种外设,例如 SPI-A、SCI-A (UART)、基于 ePWM1 的周期性计时器和中断,嵌入式 12 位双路 S/H ADC 进行初始化设置。它还通过 SPI-A 配置外部 16 位双路 ADC ADS8354,如节 4.3.2.4中所述。SPI-A 被配置为 SPI 主设备,串行时钟设置为 10MHz。对于 Piccolo F28069M,这是最大的 SPI 时钟。对于其他处理器(如 Sitara AM437x 或 Delfino F287x),SPI 时钟可高达 24 MHz。
初始化完成后,程序将调用基于 UART 的用户界面并运行周期中断服务例程 (ISR)。周期 ISR 将基于外部 16 位 ADC ADS8354 和内部 12 位 ADC,实施同步数据捕获、计算中间相位及总插值角。它遵循中节 1概述的算法。这些编码利用 TI IQmath 库,采用 32 位整数分数 Q28 格式编写。与
32 位 IEEE 浮点数相比,32 位小数的优势在于,无论数据范围如何,分辨率都能保持恒定。由于角度数据(按单位计)的取值范围被限定在 0 到 1.0 之间,ADC 的输入数据经缩放后最大值为 ±5 (V),而整数范围为 ±8.0 的 Q28 数据格式能够提供充足的余量,同时对于所有数据都能保持稳定的精度。
图 5-3 中所示为 ISR 的流程图。
图 5-3 带插值角度计算的正弦/余弦编码器主 ISR 流程图