Hi Anwar,
When something working on MCU in the special mode and not working in normal mode, the typical reason is some writes into write-once registers.
The typical case is for example MODRR0 register. This register may be written just once in normal mode.
The example of correct approach:
MODRR0=0x36; // SCL0 on PJ1; SDA0 on PJ0; TXD1 on PT1; RXD1 on PT0; TXD0 on PS1; RXD0 on PS0; MISO0 on PS0; MOSI0 on PS1; SCK0 on PS2; SS0 on PS3; MSCAN and CANPHY routed externally.
The example of wrong approach:
MODRR0_SCI1RR = 1; // TXD1 on PT1; RXD1 on PT0
MODRR0_ SCI0RR = 1; // TXD0 on PS1; RXD0 on PS0
MODRR0_M0C0RR = 0x6; // MSCAN and CANPHY routed externally
The similar situation presents CPMUVREGCTL register. Please ensure that you modify this register just once.
Unfortunately, the TJA1043 powering isn’t clear from your part of schematic (what are sources of VCC_5V and VCC_Sel signals?).
The possible reason may be also some status change of TJA1043 CAN transceiver. When we reset MCU, the GPIO pins becomes inputs and only some of them have default pull-up. From your schematic isn’t clear which MCU GPIO pins you used for EN and STBN signals. Please check Table 1-6. MC9S12ZVC-Family Pin Summary in RM and look at default pull-device at specific pins after reset.
Personally, I think that TJA1043 will be a not root cause of this issue. However, I cannot exclude it from the suspect list.
I hope it helps you.
Have a great day,
Radek
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------