ZHCU083I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
示例如下,此例中 CPU 负载受应用程序限制并且 PWM 频率要求固定。例如,在案例研究中考虑以下参数:
仅检查节拍率计数器的 InstaSPIN 执行时间:2.7µs
FAST 估算器执行时间:12.9µs
不使用 FAST 估算器的 InstaSPIN 执行时间:14.2µs
有 FAST 的 InstaSPIN 总时间:27.1µs = 12.9µs + 14.2µs
PWM 频率要求:50kHz (TISR = 20µs)
需要如此高 PWM 频率的典型情况就是当电机电感很低时。低 PWM 频率会因低电感生成不必要的电流波纹。这些应用的解决方案是采用更高的 PWM 频率。在此例中,需要 50kHz PWM 频率。
首先尝试的第一组配置是将 ISR vs CTRL、CTRL vs CURRENT 和 CTRL vs EST 全部设置为 1,这样可获得最佳性能。如果尝试将这些节拍率设置为 1,可得到图 10-20。
如时序图所示,中断时间比所需的执行时间短,这将导致中断溢出,需要避免这种情况发生。
图 10-21 在突出显示框中显示此时序图的相应值。
请注意中断时间过短如何导致无法在同一节拍率下执行 InstaSPIN,并且永远跟不上执行速度。事实上,在几个中断后就会丢失中断,这将导致意外结果。解决此问题的方法是使用节拍率,以便 FAST 估算器以相对低于 InstaSPIN 其余部分的速率运行。在图 10-22 中,看看是否能使用值为 2 的 CTRL vs. EST 节拍率解决超限问题。
在这种情况下,估算器节拍率值为 2,因此测量时序时必须考虑两个中断,如图所示,2 个中断的运行时间短于不使用 FAST 加使用 FAST 时的执行时间,这将导致中断溢出,因而出现异常行为。
图 10-23 在突出显示框中显示此时序图的相应值。
如图所示,每次执行使用 FAST 的 InstaSPIN 时,都会增加延迟。在这三个周期内,可以看到此延迟如何从 0µs 增加到 1.3µs 再增加到 2.6µs。由于执行时间跟不上中断速率,我们可以预测,几个周期后将出现中断溢出。
此案例研究的解决方案是进一步将 CTRL vs. EST 节拍率增加到三,使每个 InstaSPIN 周期的延迟恢复为零,如图 10-24 所示。
在这种情况下,估算器节拍率值为 3,因此测量时序时必须考虑三个中断,如图所示,3 个中断的运行时间长于不使用 FAST 加使用 FAST 时的执行时间,这样即可避免中断溢出。
除 ISR 之外,其它任务或者其它较低优先级中断的可用 CPU 计算如下:
图 10-25 在突出显示框中显示此时序图的相应值。
此问题的另一解决方案是将 ISR vs. CTRL 节拍率改为 2。当只检查节拍计算器时,考虑 2.7µs 的 InstaSPIN 运行时间,我们图 10-26。可以看到,ISR vs. CTRL 节拍率选择为 2 足以避免转换超限。
在这种情况下,控制器 (CTRL) 节拍率值为 2,因此测量时序时必须考虑两个中断,如图所示,两个中断的运行时间长于不使用控制器加使用控制器时的执行时间,这样即可避免中断溢出。
除 ISR 之外,其它任务或者其它较低优先级中断的可用 CPU 计算如下:
图 10-27 在突出显示框中显示此时序图的相应值。