Part Number: TDA3XEVM
Hallo,
the question is related to MCAN in this SOC.
1. Regarding sleep/ wakeup-on-bus feature.
It says in the reference manual (please find it below) that the MCAN module support sleep/wakeup-on-bus feature.
It describes how to enable this automatic wakeup-on-bus feature (by setting the AUTOWAKEUP and WAKEUPREQEN bit in MCANSS_CTRL register), but does not describe how we can detect a wakeup-on-bus, for example through a wake-up interrupt.
For further development, some more detailed information regarding this TI hardware platform is necessary.
The reference manual is TDA3x SoC for Advanced Driver Assistance Systems (ADAS) Silicon Revision 2.0, 1.0A, 1.0.
2. Regarding the NVIC and MCAN interrupt handling.
In our tests we noticed sometimes the CAN interrupt service routine is called endlessly.
While during this endless calling the content of MCAN interrupt registers is:
MCAN->IE: all the bits are cleared.
MCAN->IR: some bits are set.
On the NVIC side, the interrupt pending bit in Interrupt Set(Clear)- pending register and active bit in Interrupt Active Bit register are properly set.
We think the pending bit on NVIC side is set again and again causes the CAN interrupt service routine called endlessly.
Questions:
(1) Is the MCAN interrupt level-triggered or edge-triggered?
(2) In order to disable the MCAN interrupt, we just clear the MCAN->IE register. Is it enough? Should NVIC interrupt-enable also be disabled?