S32K344 Last Mile Regulator

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K344 Last Mile Regulator

Jump to solution
1,634 Views
WeoWang
NXP Employee
NXP Employee

Several weeks ago I visited my customer, they reported a problem with their S32K344 project, S32K344's VDD_HV_A is shorted to the GND, thus the MCU could not work. More than 10 samples had this problem.

 

0 Kudos
1 Solution
1,631 Views
WeoWang
NXP Employee
NXP Employee

I ask the customer to send me the register list of their project, then I found some problems: 

WeoWang_0-1658124381814.png

As we can see, PMC module's LMSTAT = 0, LMEN = 0, and LMAUTOEN = 0.

In the reference manual, we can find that:

WeoWang_1-1658124458608.png

WeoWang_2-1658124466944.png

LMSTAT indicates the current status of the Last Mile Regulator, if LMEN = 0, the software should make sure that the system clock is on FIRC or slower, to use higher clock speed, the software must set LMEN = 1.

According to the explanation of S32K3's power supply, in BOOT regulation stage, VDD_HV_A is not only the power supply of IO, flash, and some other peripherals, but also the power supply of the core(the voltage is converted to 1.1 by BOOT regulator):

WeoWang_3-1658124732989.png

Once the MCU is booted, PMC module supposes to turn the RUN regulator on to let the external 1.5V supply the core:

WeoWang_4-1658124817734.png

If the PMC module keeps to work in the BOOT regulation stage, when the system clock is on PLL, the core needs a relatively large current, the heat will be accumulated on the BOOT regulator.

To solve this problem, we should set LMAUTOEN = 1, but in RTD 1.0.0, once you enable LMAUTOEN, it requires you to enable LMBCTLEN:

WeoWang_5-1658125086637.png

It makes no sense, because we only enable LMBCTLEN when there is no external 1.5V input(we use a external transistor to convert VDD_HV_A to 1.5V).

After discussion with BL's colleagues, the solution is that we can enable  "Mcu Disable Power Management Controller Initialization" in Mcu - General, in this way, LMAUTOEN will be set to 1, as LMAUTOEN = 1 is the default setting.

WeoWang_7-1658125358726.png

As we can see, after enabling Mcu Disable Power Management Controller Initialization, LMAUTOEN = 1, LMSTAT = 1, Last Mile Regulator is successfully turned on, MCU works in Full Performance Mode.

WeoWang_8-1658125447772.png

In RTD 2.0.0, LMAUTOEN can be set without enabling LMBCTLEN.

 

 

 

 

 

View solution in original post

3 Replies
493 Views
Zack_Fang
Contributor I

Hi, Weo.

To be more specific, we would like to confirm if LMAUTOEN must be set to turn over to last mile regulator. From my understanding when LMEN is set, the last mile regulator has been switched.

0 Kudos
496 Views
Zack_Fang
Contributor I

Hi, Weo. @WeoWang 

My customer has a question about LMAUTOEN. The customer is using external BJT for V15 and LMEN and LMBCTLEN has been set '1'. In this situation, is LMAUTOEN still must be set to '1', or it can be igorned? Looking forward to your reply, thank you.

0 Kudos
1,632 Views
WeoWang
NXP Employee
NXP Employee

I ask the customer to send me the register list of their project, then I found some problems: 

WeoWang_0-1658124381814.png

As we can see, PMC module's LMSTAT = 0, LMEN = 0, and LMAUTOEN = 0.

In the reference manual, we can find that:

WeoWang_1-1658124458608.png

WeoWang_2-1658124466944.png

LMSTAT indicates the current status of the Last Mile Regulator, if LMEN = 0, the software should make sure that the system clock is on FIRC or slower, to use higher clock speed, the software must set LMEN = 1.

According to the explanation of S32K3's power supply, in BOOT regulation stage, VDD_HV_A is not only the power supply of IO, flash, and some other peripherals, but also the power supply of the core(the voltage is converted to 1.1 by BOOT regulator):

WeoWang_3-1658124732989.png

Once the MCU is booted, PMC module supposes to turn the RUN regulator on to let the external 1.5V supply the core:

WeoWang_4-1658124817734.png

If the PMC module keeps to work in the BOOT regulation stage, when the system clock is on PLL, the core needs a relatively large current, the heat will be accumulated on the BOOT regulator.

To solve this problem, we should set LMAUTOEN = 1, but in RTD 1.0.0, once you enable LMAUTOEN, it requires you to enable LMBCTLEN:

WeoWang_5-1658125086637.png

It makes no sense, because we only enable LMBCTLEN when there is no external 1.5V input(we use a external transistor to convert VDD_HV_A to 1.5V).

After discussion with BL's colleagues, the solution is that we can enable  "Mcu Disable Power Management Controller Initialization" in Mcu - General, in this way, LMAUTOEN will be set to 1, as LMAUTOEN = 1 is the default setting.

WeoWang_7-1658125358726.png

As we can see, after enabling Mcu Disable Power Management Controller Initialization, LMAUTOEN = 1, LMSTAT = 1, Last Mile Regulator is successfully turned on, MCU works in Full Performance Mode.

WeoWang_8-1658125447772.png

In RTD 2.0.0, LMAUTOEN can be set without enabling LMBCTLEN.