When I use the s32k144EVB board, in order to reduce FlexCAN0 power consumption, I want to go into Stop mode and Pretended Networking mode. But it never got in. The problem is that CAN MCR[LPMACK] cannot be set，How do I get FlexCAN0 modules entered Stop mode and Pretended Networking mode correctly.The global application Stop mode is required in the reference manual before setting CAN MCR[LPMACK] field.I can't understand how to do this. I have read some documents which require the following steps, but there is no specific method.
126.96.36.199 Stop mode(S32K1xx Series Reference Manual)
If FlexCAN receives the global Stop mode request during Freeze mode, it sets the LPMACK bit, negates the FRZACK bit and then sends the Stop Acknowledge signal to the CPU, in order to shut down the clocks globally.
188.8.131.52 Pretended Networking Mode(S32K1xx Series Reference Manual)
This mode can be selected to operate together with Stop mode. Before entering in one of these low power modes, the PNET_EN bit in CAN_MCR Register must be asserted.
5.5. STOP and VLPS mode entry sequence(Power Management for S32K1xx)
1. The CPU clock is gated off immediately.
2. Requests are made to all non-CPU bus masters (DMA and ENET if available) to enter Stop mode.
3. After all masters have acknowledged they are ready to enter Stop mode, requests are made to all bus slaves to enter Stop mode.
4. After all slaves have acknowledged they are ready to enter stop mode, system and bus clocks are gated off depending on the target mode–VLPS/STOP1/STOP2. Note that, in STOP2 mode bus clocks will not be gated.
5. Additionally, for VLPS mode, clock generators are disabled in the SCG unless configured to be enabled.
6. The on-chip regulator in the PMC and internal power switches are configured to meet the power consumption goals for the targeted low-power mode. This step is valid only for VLPS and not for STOP as in STOP mode the PMC is in Run regulation.
How do I get FlexCAN0 modules entered Stop mode and Pretended Networking mode correctly？I know the key question, how do I get FlexCAN modules to be set CAN MCR[LPMACK]. I really hope someone can help me solve this problem.
The FlexCAN enters the Pretended Network Mode once the WFI instruction has been executed and the MCU is entering the Stop mode, at this point the CPU execution is halted, this is a background operation.
I config S32142 enter STOP mode and FLEXCAN work in pretended networking mode, it can wake up success.The power consumption still not meeting with datasheet standard as below:
I set flexcan0 and flexcan1 enter freeze mode, after that I don't know how to request stop mdoe.What instructions should be executed? Before MCU enter STOP mode ,I want to set the STB pin of CAN transceiver(TJA1042) to make it enter standy mode and reduce consumption, but if set it , CAN bus error and MCU can't wake up.What's wrong with it?
Also, I want to know how to config GPIO whitch was not used to get lowest power consumptiom, I also use LPUART moudle, how to deal with it before enter stop mode to reduce consumption?