BOD Unexpected Reset Issue

cancel
Showing results for 
Search instead for 
Did you mean: 

BOD Unexpected Reset Issue

298 Views
Contributor II

Hi, we are currently using LPC54114 BOD feature and found a weird issue.

If I enter deep sleep mode with BOD reset on, interrupt off (BOD control reg is 0x04).

#define POWER_UP_RAM_IN_DEEP_SLEEP (SYSCON_PDRUNCFG_PD_SRAM0 | SYSCON_PDRUNCFG_PD_SRAM1 \

                                    | SYSCON_PDRUNCFG_PD_SRAM2 | SYSCON_PDRUNCFG_PD_SRAMX \

                                    | SYSCON_PDRUNCFG_PD_BOD_RST )

Chip_POWER_EnterPowerMode(POWER_DEEP_SLEEP, POWER_UP_RAM_IN_DEEP_SLEEP);

However, when I use PINT to wake up from deep sleep, the BOD would trigger an unexpected reset when the MCU wakes up. However, if I enter deep sleep with BOD_INTR powered on as well as follows.

#define POWER_UP_RAM_IN_DEEP_SLEEP (SYSCON_PDRUNCFG_PD_SRAM0 | SYSCON_PDRUNCFG_PD_SRAM1 \

                                    | SYSCON_PDRUNCFG_PD_SRAM2 | SYSCON_PDRUNCFG_PD_SRAMX \

                                    | SYSCON_PDRUNCFG_PD_BOD_RST | SYSCON_PDRUNCFG_PD_BOD_INTR)

Chip_POWER_EnterPowerMode(POWER_DEEP_SLEEP, POWER_UP_RAM_IN_DEEP_SLEEP);

 

No reset would be triggered. I wonder why since I didn't enable BOD interrupt, I have to power on both BOD_RESET and BOD_INTR?

Labels (1)
0 Kudos
3 Replies

3 Views
NXP TechSupport
NXP TechSupport

Hello Chuan Tian, 

To resolve this issue, the BOD reset must be disabled prior to power off the BOD block and entering the low power mode. After wake-up from low power mode, BOD reset need be re-enabled by setting the BOD reset enable bit in BODCTRL register.

Hope it helps! 

Victor.

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

3 Views
Contributor II

Hi Victor,

Thanks for your reply. I knew and have tried this fix. Disabling BOD prior to entering deep sleep mode does fix the issue. However, we still want the BOD reset at deep sleep mode. Check the section "Enter deep-sleep mode and set up WWDT and BOD for wake-up" in LPC 54114 user manual. We can enter the deep sleep mode with BOD enabled. 

As I mentioned in the original question, why do I need to power on both SYSCON_PDRUNCFG_PD_BOD_RST and SYSCON_PDRUNCFG_PD_BOD_INTR instead of SYSCON_PDRUNCFG_PD_BOD_RST since I only NEED and ENABLED BOD reset feature, but not BOD interrupt feature?

Best,

Chuan

Victor Jimenez wrote:

Hello Chuan Tian, 

 

To resolve this issue, the BOD reset must be disabled prior to power off the BOD block and entering the low power mode. After wake-up from low power mode, BOD reset need be re-enabled by setting the BOD reset enable bit in BODCTRL register.

 

Hope it helps! 

Victor.

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

3 Views
NXP TechSupport
NXP TechSupport

Hello Chuan Tian, 

Thanks for clarifying what you are trying to do and the issue that you are facing.

I modified the example "periph_pmu" provided in the LPCOpen v3.01. I keep the BOD reset on, while in deep sleep mode. When I wake up using PINT  I don't experience any reset.  

Could you please provide me all the configurations you are making prior to enter to the deep sleep mode? So I can reproduce the behavior you mentioned and see what is causing this in your program.

Regards,

Victor.  

0 Kudos