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.
The TMSF28032 is initialized with a baud rate of 125k, and during program execution, it is switched to a baud rate of 500k. However, the bus is not idle at 500k, and the CANES.bit.cce cannot be set to 1, preventing the device from entering the initialization mode and thus being unable to set the baud rate. Is there a solution to directly enter the initialization mode and set the baud rate?
Currently, I have tried entering the local power-down mode by accessing the CANMC register's PDR (CANMC.bit.PDR) and then exiting the local power-down mode to execute the power-up sequence to reconfigure the baud rate again, but the problem persists.
Here is my configuration program:
(1) enter local power-down mode
EALLOW;
// enter local power-down mode
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
ECanaShadow.CANMC.bit.PDR = 1;
ECanaShadow.CANMC.bit.WUBA = 0;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
EDIS;
(2) exit local power-down mode
if(ECanaShadow.CANES.bit.PDA)
{
EALLOW;
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
ECanaShadow.CANMC.bit.CCR = 1;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
ECanaShadow.CANTIOC.all = ECanaRegs.CANTIOC.all;
ECanaShadow.CANTIOC.bit.TXFUNC = 1;
ECanaRegs.CANTIOC.all = ECanaShadow.CANTIOC.all;
ECanaShadow.CANRIOC.all = ECanaRegs.CANRIOC.all;
ECanaShadow.CANRIOC.bit.RXFUNC = 1;
ECanaRegs.CANRIOC.all = ECanaShadow.CANRIOC.all;
ECanaShadow.CANMC.all = ECanaRegs.CANMC.all;
ECanaShadow.CANMC.bit.SUSP = 1;
ECanaShadow.CANMC.bit.SCB = 1;
ECanaShadow.CANMC.bit.ABO = 1;
ECanaShadow.CANMC.bit.PDR = 0;
ECanaRegs.CANMC.all = ECanaShadow.CANMC.all;
....Configure baud rate....
EDIS;
}