We use the TCAN4550 in an application where we do not require low power modes or wake events. On chip initialisation, we disable the watchdog and the WAKE pin functionality. Neither WAKE nor nWKRQ are connected to our processor.
We find that after some time in use on the bus, the nINT pin becomes held low despite everything being ostensibly normal. The processor is still able to TX frames, but it is no longer receiving interrupt requests, which breaks the RX logic. Every time this latching occurs, we've found that the CANINT bit is set in IR, which according to the datasheet indicates detection of a WUP event.
Here is our interrupt handling routine, as a sanity check: upon a falling edge on nINT, the processor clears its pending-interrupt flag on that pin (so further edges are guaranteed to be registered), reads IR (0x0820) and then immediately writes 0xFFFFFFFF to it. If SPIERR was set in IR, it writes 0xFFFFFFFF to Status (0x000C). If M_CAN_INT was set, it reads M_CAN IR (0x1050), writes 0xFFFFFFFF to it, and proceeds to handle the M_CAN interrupt request.
Why could the nINT pin be latching like this, and is it actually related to WUP detection? Why are we detecting WUP at all, if so? We never put the chip into Sleep mode. After power-on / reset, we enter Standby mode, configure the chip, and enter Normal mode for the duration of the application. The failsafe feature is also disabled (as is default).
Many thanks,
Torin