CAN1MOD = CAN2MOD = 0x10;
when the CAN enter sleep mode,I send one date to awake it by the other machine,it success,but later,it do not sleep again,because the CAN BUS activity,so,it did not enter sleep mode.
But I only send one date and then close the machine,Why the CAN bus is acticity all the time? How can I make the CAN BUS isn't activity?
Hi,
According with your description, and the relation with your other thread:
https://community.nxp.com/thread/441666
It seems that there are some pending interrupts to be cleared on the CAN, so, therefore, the CAN module cannot enter sleep mode, and it is triggering a wakeup interrupt, causing that the entire MCU is not able to enter into sleep mode (that’s why you are seeing PCON=0x00 instead of 0x81 after starting the transmission).
So, in order to avoid such behavior, you should verify your CAN bus state to ensure a correct CAN termination and bus idle condition when disconnecting the other device that sends CAN data; additionally to verify the logic of the code to attend any pending interrupt and allow the module to enter into sleep mode and not causing interrupts that awakes the entire MCU from low power mode.
Hope this will be useful for you.
Best regards!
/Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------