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
第一个节拍率定义 InstaSPIN 作为一个整体在 ISR 转换结束后开始执行的速率。如果此节拍率大于 1,每次执行 InstaSPIN 时都会检查内部计数器,如果该计数器未达到节拍率值,则将从 InstaSPIN 执行过程中返回。除了检查此计数器,InstaSPIN 库中不会执行任何代码。图 10-4 显示如何在 ISR 中检查节拍计数器。
图 10-5 显示节拍率为 2 时的 InstaSPIN 执行过程。
图 10-6 也可表示为软件执行时钟树。请注意当突出显示的块值为 2 时,如何在软件执行时钟树中实现 2 分频。
从中断到控制器的节拍率大于 1 的原因主要为以下两点:
例如,如果 PWM 频率为 50kHz 并且没有使用硬件抽取(本文档稍后将讨论相关主题),则 ISR 转换结束时将为相同速率,50kHz。所有功能需要在 1/50 kHz = 20µs 内完成执行。如果 ISR 内的功能需要 30µs,则:
执行时间 > ISR 周期 → 30µs > 20µs
这将产生中断溢出,导致 ADC 采样样本被覆写,并且控制时序也将受到影响。
当中断小于执行时间时,如果考虑以下准则,使用不同的 ISR vs CTRL 节拍率可确保安全。
确认中断期间有足够的时间来执行 InstaSPIN。
这是因为在中断服务程序中执行 InstaSPIN 时必须有足够的时间,这样才能避免转换溢出。例如,如果一个 ISR 程序尚未执行完便进入第二个程序,则第一个程序将完全丢失,并且时序将会受到影响。图 10-7 显示了一个良好的示例,当 ISR 拥有充足的时间时,InstaSPIN 完成执行且没有发生 ISR 溢出。
图 10-8 显示了此时序图的软件执行时钟树表示。
以下是另一个示例,本例中使用的抽取率具有较高的 PWM 频率,导致 ISR 时间较短,不过,即使某个 ISR 没有立即执行,它最终也会完成执行并且不会发生 ISR 溢出 (图 10-9)。这种方式也可以正常操作,并不会影响性能。
另一方面,如果 PWM 频率设置过高,转换结束中断可能被另一个中断溢出。由于溢出会导致整组 ADC 采样样本丢失,因此需避免这种情况。除此之外,中断溢出会导致丢失一个完整中断,因而造成 InstaSPIN 状态机时序错误,而状态机时序正是取决于中断的周期性。InstaSPIN 库中的时序调度不当会引起诸多问题,例如,角度估算不准确、速度估算关闭、速度和电流控制器未正常运转等等。以下示例显示中断溢出情况。注意,InstaSPIN 的执行过程不变,改变的是 PWM 频率(进而改变了转换结束中断频率)和抽取次数。中断溢出的第一个示例没有执行抽取,因此全部 InstaSPIN 在每个中断中均执行 (图 10-10)。
图 10-11 显示了此时序图的软件执行时钟数值。
请注意在几个中断后有一个完整中断是如何溢出的。这种方法的问题在于存在时序偏移,所以 InstaSPIN 状态机和控制器内部时序比实际慢。
另一个示例是使用抽取率。图 10-12 中使用的抽取率值为 2,如图所示,即使在使用抽取率时仍有中断溢出限制。
图 10-13 显示了此时序图的软件执行时钟树值。
将 InstaSPIN 运行速率至少设为电机电频率的 10 倍。
设置 PWM 频率和 ISR vs. CTRL 节拍率时要考虑的第二个方面是 InstaSPIN 运行次数与电机电频率的关系。这是因为在闭环系统中运行时,磁场定向控制取决于电角度,每个电周期应该有充分的估算角度更新来保证磁场正确定向。与此要求类似的是当交流信号需要进行数字采样时。此过程与奈奎斯特频率有关,当此频率刚好大于采样频率时便足以避免出现混叠。在磁场定向控制系统中,奈奎斯特频率不足以提供有效的电机控制。建议 InstaSPIN 运行速率至少是电机电频率的 10 倍。若要了解电机(即永磁同步电机 (PMSM))的电频率,我们需要知道电机转速和电极数量。
例如:
极对:4
速度:7500RPM
电频率:以 RPM 为单位的转速 * 电极对数 / 60 = 7500 * 4 / 60 = 500Hz
推荐的最小 InstaSPIN 运行速率 = 10 * 电频率 = 5000Hz
在本例中,我们选择了 ISR vs. CTRL 节拍率 3,从而得出 ISR 频率为 5000 * 3 = 15000Hz。
图 10-14 显示了此示例中生成的波形。
图 10-15 显示了此示例中软件执行时钟树的数值。