你好,恩智浦、
我在 S32K358 自定义板中的硬件触发信号功能方面遇到了问题。
我在 matlab 2024 中使用 MBDT v1.5。
为了有 3 个 pwm 信号,我已经配置了 EMIOS_1 的 3 个通道(ch_9、ch_11、ch_19),我把它们配置为 EMIOS_PWM_IP_MODE_OPWMT 以启用触发信号生成。
在 AdcHwTrigger 中,我配置了 3 个带有相应的 BTCU 源的硬件触发信号和 3 个 ADC_1 组,每个组都有一个注入信道。
这些频道也被相应的 Hw 触发信号 锁存。ADC_1 采用中断方式工作。
我还正确配置了平台 ISR 和 MCU 时钟。
在 simulink 模型中,我在状态流图每隔 50 毫秒调用一次的子系统中启用了通知和硬件触发信号。一旦转换了 adc 频道,应用程序就会调用
Interrupt Hw 回调,在该回调中禁用该组的通知和相对的 Hw 触发信号。
这是为 3 组中的每一组进行的。
这样,我就有了 3 个同时启动、周期相同(我的情况是 200Hz)的 pwm 信号,因此,根据我在 RM(64.3.1.9)上读到的信息同步触发信号的优先级)
我预计 BCTU 会同时接收 3 个触发信号,并对连接到最高优先级触发信号(我的例子为 BCTU_EMIOS_1_9)的 adc 通道进行转换,而其他(BCTU_EMIOS_1_11 和 BCTU_EMIOS_1_19)
则处于等待状态,等待轮到他们访问 ADC_1 并进行转换。
当执行与 BCTU_EMIOS_1_9 触发信号相关的转换时,我预计他的触发信号将在中断回调中被禁用,第二个待处理触发信号(在我的例子中为 BCTU_EMIOS_1_11)开始转换...
不幸的是,我看不到这种行为... 我只看到它对连接到最高优先级触发信号(在我的情况下为 BCTU_EMIOS_1_9)的 adc 进行转换,而忽略了其他的。
我是做错了什么还是误解了什么?如何才能实现上述行为描述?
附上 mex 文件
谢谢,
Simon