56x shutdown关机模式下漏电

56Mod自制电路板,进入shutdown关机模式电流为260uA,请问如何检查漏电原因呢?

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;

}

唤醒按键电路

首先应排除外部元件或电路的影响。如果定位到是56x芯片产生的,关机模式下的漏电通常是唤醒PIN的电平浮空或上下拉错误造成,不仅仅是指使用到的唤醒PIN,而是需要检查所有唤醒PIN。请参考用户手册5.15章节<避免IO漏电>中的方法调试。

没有用到的唤醒PIN设置下拉。但是仍然漏电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);

模组的VDD_1V8电源脚在关机时时什么状态,会不会还供着电?

是的,56MOD模组的VDD_1V8电源脚在关机时是1.8V,还供着电。请问shutdown时这个电源如何处理?

唤醒PIN还包括IO(PBR),需要根据板子情况在RTC中配置PBR0R~PBR3R寄存器。如果都没有用到的话,可以全部写成0。

另一个可能性是合封存储器漏电。请参考用户手册5.16<避免合封IO漏电>中的操作。56Mod的VDD_1V8就是合封存储器(SA与SB)供电,在hibernate状态下应断开。

请问有56MOD关闭VDD_1V8供电的参考设计吗?

默认参考设计(参见链接)中这部分是常供电的,另外可以参考规格书中“避免合封 IO 漏电”的相关说明

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

请问56Mod哪个引脚可以做IO(PBR)呢?

企業微信截圖_17605988223163

企業微信截圖_17605989676987

你好,你上面这个图片PBR0-3是有外接的,和拿到的你们的参考设计资料是不一致的,参考设计没有外接,如图片,请帮忙确认下。