This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LC4357:第一个 DCAN 中断在 INT =0时触发

Guru**** 2465890 points
Other Parts Discussed in Thread: HALCOGEN

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1125060/tms570lc4357-first-dcan-interrupt-fires-with-int-0

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

我已经使用 Halcogen 和操作指南(如 https://www.ti.com/lit/fs/spna131/spna131.pdf?ts=1660033206063&ref_url=https%253A%252F%252Fwww.google.com%252F)配置了 DCAN1外设

我已使用屏蔽配置了 MB 1上的单个 RX 邮箱、并且 IF3接口设置为自动更新。

邮箱1的自动更新位已设置。

我仅使用 INT0来处理与外设相关的所有中断、并且在 CAN 控制寄存器中仅设置 IE0。

我看到的是第一个接收到的 CANbus 帧在 INT 寄存器设置为0时触发和中断。 IF3寄存器全部使用出现在总线上的预期数据进行正确更新。

只有第一个接收到的帧才会表现出这种行为、所有后续帧都正确地指示 INT 寄存器中相应的邮箱编号。

我现在处于亏损状态。 我已经验证了只有 INT0中断被启用用于外设、无论是在 VIM 还是在 CANBUS 控制寄存器中、IF3和 INT1都不被启用。

除正确更新观察寄存器外、断电未激活。 唯一缺少的元素是 INT 寄存器在指示接收到的帧的第一个中断上设置为0。

有人可以在这里提供任何建议吗?

提前感谢您!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andrew:

     DCAN IF3OBS 的 IF3 Upd 位是否设置? 当该位置位时、将产生中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、QJ、

    感谢您的回答。 该邮箱的 IF3更新被启用、但是在 CAN 控制寄存器和 VIM 中、IF3中断被禁用。 如果置位、它是否仍然在 IE0上生成中断?

    再次感谢、

    -Andrew

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Andrew:

    如果 RxIE 未被置位、那么中断寄存器的中断标志不应被置位。