https://e2e.ti.com/support/processors-group/processors/f/processors-forum/678030/tda3xevm-mcan
器件型号:TDA3XEVMHallo、
问题与此 SOC 中的 MCAN 有关。
关于总线休眠/唤醒功能。
参考手册中(请在下面找到)说明 MCAN 模块支持总线休眠/唤醒功能。
它介绍了如何启用这种总线自动唤醒功能(通过设置 MCANSS_CTRL 寄存器中的 AUTOWAKEUP 和 WAKEEPREQEN 位)、但未介绍如何检测总线唤醒、例如通过唤醒中断。
为了进行进一步开发、需要一些有关此 TI 硬件平台的更详细信息。
参考手册是适用于高级驾驶员辅助系统(ADAS)芯片修订版本2.0、1.0A、1.0的 TDA3x SoC。
关于 NVIC 和 MCAN 中断处理。
在我们的测试中、我们注意到有时 CAN 中断服务例程被无目的地调用。
在无限调用期间、MCAN 中断寄存器的内容为:
MCAN->IE:所有的位都被清零。
MCAN->IR:某些位被置位。
在 NVIC 端、中断置位(清零)挂起寄存器中的中断挂起位和中断活动位寄存器中的活动位都被正确置位。
我们认为 NVIC 端的挂起位会反复置位、导致 CAN 中断服务例程不断调用。
问题:
(1) MCAN 中断电平是触发还是边沿触发?
(2)为了禁用 MCAN 中断、我们只需清除 MCAN->IE 寄存器即可。 够了吗? 是否还应禁用 NVIC 中断使能?