您好!
实际上、我正在尝试使用您的双 CPU Delfino Launchpad 之一来控制电力驱动器。为此、我正在利用 Matlab Code Composer、因此我在 Simulink 中进行编程。
我的常规实际方法是在 CPU1上实现速度控制、并实现电流控制 CPU2。 当然、这将通过 IPC 接口进行通信。
对于速度控制、我有一个5kHz ePWM 中断、该中断生成一个 SOCA 和 SOCB、可将6个霍尔传感器的值读取到 ADC 上。
考虑到 ADC-A 模块被多次使用、SOC 序列相应地增加。 另一方面、ADC-B 和 ADC-C 仅抽头一次、因此在 SOC0上读取这两个值。
这是由 CPU1完成的、它工作正常。 如下所示。
如前所述、我打算控制 CPU2上的电流。 我使用中断 ePWM7以45kHz 的频率启动例程。 在例程内部、下面的 PWM 1-2-3模块也以45kHz 的频率进行切换、生成各自的 SOCA 和 SOCB 来读取 ADC 模块 B 和 C 上的电流
我现在尝试同时测试霍尔传感器的电流控制和采样。
第一张图片中的霍尔传感器始终可以成功读取。 测试电流控制时出现问题。
电流的 PWM 模块会生成 SOCA 和 SOCB 触发器、这些触发器应从上面控制 ADC。 如果使用与来自 CPU1的霍尔传感器相同的 SOC 对它们进行采样、我最终会读取它们的值、而不是电流的值。 我理解。 不过、如果我将它们设置为使用后续 SOC 值进行采样、它们根本不会进行采样... 因此、电流控制不起作用。
足够有趣的是、如果我对霍尔传感器(来自 CPU1)的 ADC-B 和 ADC-C 进行注释、则会在 CPU2中正确地对电流进行采样。 当我尝试在同一个 CPU 上运行两个例程时,情况是一样的:它实际上可以正常工作。
是否有人对如何正确配置 ADC 以使 CPU1和 CPU2能够正确共享这些 ADC 有任何想法?
提前感谢、
帕特里西奥