工具与软件:
您好!
我有一个关于 CLA 的问题。
我将使用 CLA 在每个周期更新 PWM 寄存器。 我希望它的速度尽可能快、从而更大限度地提高开关频率。
在我在 CLA 中计算必要数据并将其复制到 PWM 寄存器中之前。 1.5µs 的- 2µs。
我决定将计算转移到 CPU、以便 CLA 只能集中精力更新寄存器。
CPU 计算数据并将其写入共享存储器 LS1。 然后、CLA 获取这些值并将其写入 PWM 寄存器。
我本以为这会更快、但事实恰恰相反。 现在、到 PWM 寄存器的转移将采用7µs! 这是怎么可能的?
这就是之前对寄存器的访问方式:
EPWM_setCounterCompareValue(PWM_MODULE_BASE_ADRESS_S1_S2, EPWM_COUNTER_COMPARE_A, CMPA_S1_S2);
其中 CMPA_S1_S2是在 CLA 中计算的局部变量。
这就是它现在的样子:
EPWM_setCounterCompareValue(PWM_MODULE_BASE_ADRESS_S1_S2, EPWM_COUNTER_COMPARE_A, cmp_hw_data[cla_current_shadow_index].hw[temp].CMPA_S1_S2);
其中 CMP_HW_DATA 是位于 LS1的结构。
谢谢!
此致、
Milad