56x leakage in shutdown mode

56Mod custom circuit board, the current in shutdown mode is 260uA. How can I check the cause of the leakage current?

int main(void)
{
    /* Output a message on console using printf function */
    //rt_kprintf("Hello world!\n");

    rt_kprintf("Shutdown, press key1 to wake up system...\n");

    /* delay 10ms to wait print complete */
    rt_thread_mdelay(10);

    HAL_PMU_SelectWakeupPin(0, 0); // PB54 for 58x, PB32 for 56x
    HAL_PMU_EnablePinWakeup(0, 0);

    //hwp_rtc->PBR0R = 0x10a0;
    hwp_rtc->PAWKUP = 0x003F003F;
    //hwp_rtc->PBWKUP = 0x003F003F;
    hwp_pmuc->WKUP_CNT = 0x000F000F;

    rt_hw_interrupt_disable();
    /* Enter shutdown mode, system can be woken up by KEY1 */
    HAL_PMU_EnterShutdown();

    /* while loop until system is down */
    while (1) {};

    // /* Infinite loop */
    // while (1)
    // {
    //     // Delay for 1000 ms to yield CPU time to other threads
    //     rt_thread_mdelay(1000);
    // }

    return 0;
}

Wake-up Key Circuit

Screenshot 2025-10-10 091336

First, eliminate the influence of external components or circuits. If the issue is determined to be caused by the 56x chip, leakage current in shutdown mode is usually due to floating levels or incorrect pull-up/pull-down configurations on wake-up pins—not only the ones in use, but all wake-up pins should be checked. Please refer to section 5.15 of the user manual, , for debugging methods.

image

Unused wake-up PIN setting dropdown. However, there is still a leakage current of 260uA.

HAL_PIN_Set(PAD_PB33, GPIO_B33, PIN_PULLDOWN, 0);

HAL_PIN_Set(PAD_PB34, GPIO_B34, PIN_PULLDOWN, 0);

HAL_PIN_Set(PAD_PB35, GPIO_B35, PIN_PULLDOWN, 0);

HAL_PIN_Set(PAD_PB36, GPIO_B36, PIN_PULLDOWN, 0);

HAL_PIN_Set(PAD_PA50, GPIO_A50, PIN_PULLDOWN, 1);

HAL_PIN_Set(PAD_PA51, GPIO_A51, PIN_PULLDOWN, 1);

HAL_PIN_Set(PAD_PA52, GPIO_A52, PIN_PULLDOWN, 1);

HAL_PIN_Set(PAD_PA53, GPIO_A53, PIN_PULLDOWN, 1);

HAL_PIN_Set(PAD_PA54, GPIO_A54, PIN_PULLDOWN, 1);

What is the state of the VDDSIP power pin of the module when the device is powered off? Will it still be powered?

Yes, the VDD_1V8 power pin of the 56MOD module remains at 1.8V and is still powered when the device is shut down. How should this power supply be handled during shutdown?

The wake-up PIN also includes IO (PBR), which requires configuration of the PBR0R~PBR3R registers in the RTC according to the board setup. If none of them are used, all registers can be set to 0.

Another possible issue is leakage current from the embedded memory. Please refer to section 5.16 in the user manual. For the 56Mod, VDD_1V8 supplies power to the embedded memory (SA and SB), which should be disconnected during hibernate mode.

Do you have a reference design for 56MOD to turn off the VDD_1V8 power supply?

In the default reference design (see link), this section is powered by a constant power supply. Additionally, refer to the relevant description in the specification document regarding “Avoiding Leakage Current in Co-packaged IO.”

https://downloads.sifli.com/hardware/files/documentation/SF32LB56-MOD-V1.2.0.zip

Which pin of the 56Mod can be used as an IO (PBR)?

WeChat Work Screenshot_17605988223163

WeChat Work Screenshot_17605989676987

Hello, the image you provided above for PBR0-3 shows external connectors, which is inconsistent with the reference design documentation we received from you. The reference design does not include external connectors, as shown in the image. Please help confirm this.

image