ZHCU108B June 2015 – March 2025
为完成本测试,我们计算了 Piccolo F28069M LaunchPad 所连 TIDA-00176 中机械旋转一周的高分辨率插值角。在 CPU 时钟频率为
80-MHz 时,采样率设置为 32kHz。
此测试的目的在于,验证插值算法在最大输入信号频率
500kHz 下有效,例如,不会因模拟样本与 QEP 计数器锁存产生的不匹配而导致任何增量计数缺失,或插值相位(反切)与相应线数 (QEP) 不匹配。这将转化为比节 7.3.1.1中测量的量化噪声更大的误差。
为此,采用双路信号发生器模拟编码器 360 旋转。使用双路输出信号发生器以下述方式执行该测试:两个输出信号在振幅和频率上进行耦合,相移为 90 度。然后,两个信号作为输入施加到 TIDA-00176 编码器连接器的 J9 A+/A– 和 B+/B– 引脚。
总插值角存储在 F28069M RAM 中,通过 CCS 内存转储进行读取。
将计算得出的高分辨率角度与编码器线数为 2000 时的理想相位进行比较。因此,在 500K kHz 时,2000 个信号周期等于一周的仿真旋转。总角相位以 360 度× 500kHz/2000 = 90,000deg/s 的速率斜升。表 7-6提供了
1µs 和 100ns 的时序,它们等于 80MHz 处的一个 F28069M CPU 时钟。
| 理想角速度 | 1µs 中的角度变化 | 12.5 (CPU 时钟)内的角度变化 |
|---|---|---|
| 90,000deg/s | 0.09 | 0.0011 |
信号发生器及处理器时钟的抖动,乃至主机处理器通过 SPI/CS 采样模拟信号时的 CPU 时钟抖动均无法避免。假设角度以理想状态斜升(由于缺少参照值),测得的角度将出现相应的相位滞后或相位超前,进而导致与速度相关的角度误差。
图 7-29所示为理想斜升(500kHz,每转 2000 个信号周期)情况下在 32kHz (每转产生128 个连续样本)时测得的插值角误差。
图 7-29 使用编码器仿真一周内插值角度的误差(1VPP,500kHz 输入@ 32kHz 采样)如前所述,此测试的目的不是测试精度,而是验证增量是否丢失。在 2000 线数仿真中,一个增量线数相当于360/2000 = 0.18 度。理想直线的角度误差(差异)始终保持在 ±0.001 度内;因此,在 500kHz 时插值运算仍然有效,未丢失增量。
从图中可知,误差在 ±0.0015 度以内。其原因是 CPU 时钟抖动以及其他抖动,例如来自信号发生器源的抖动,CPU 时钟抖动决定了最小精度。
这样分布的原因在于 F28069 软件的抖动,抖动触发了一个或两个 CPU 时钟周期的 SPI 传输/CS。/CS 下降沿能锁存模拟输入。仅仅 12.5ns 的抖动就会转换为约 12.5ns/2000ns × 360/2000 度~ 0.0011 度的相位差。因此,角度差实际上是一项与速度相关的角度误差(速度)滞后。