MT6582 SDIO 漏电问题分析

现象:MT6582 通过MSDC2 SDIO接口控制外围芯片external ap,初始化完成后,external ap3路电全部关闭,

系统进入deep sleep功耗会比正常情况大出3ma左右,量SDIO接口有0.7v左右电压,所以可以断定是SDIO口

有漏电,MT6582 MSDC2待机状态有电压输出,导致通过SDIO 、external ap回路、上拉电阻形成漏电回路。



优化思路:清除漏电回路 1 )MSDC2 设置成输入 2) MSDC2 输出 低电平

//power on external ap

+//config msdc2 itf as sdio
+       mt_set_gpio_mode(MSDC2_CMD_PIN, 1);
+       mt_set_gpio_mode(MSDC2_CLK_PIN, 1);
+       mt_set_gpio_mode(MSDC2_DAT0_PIN, 1);
+       mt_set_gpio_mode(MSDC2_DAT1_PIN, 1);
+       mt_set_gpio_mode(MSDC2_DAT2_PIN, 1);
+       mt_set_gpio_mode(MSDC2_DAT3_PIN, 1);


//power off external ap

+//config sdio itf as gpio input
+       mt_set_gpio_mode(MSDC2_CMD_PIN, 0);
+       mt_set_gpio_dir(MSDC2_CMD_PIN, 0);      
+
+       mt_set_gpio_mode(MSDC2_CLK_PIN, 0);
+       mt_set_gpio_dir(MSDC2_CLK_PIN, 0);      
+
+       mt_set_gpio_mode(MSDC2_DAT0_PIN, 0);
+       mt_set_gpio_dir(MSDC2_DAT0_PIN, 0);     
+       mt_set_gpio_mode(MSDC2_DAT1_PIN, 0);
+       mt_set_gpio_dir(MSDC2_DAT1_PIN, 0);
+       mt_set_gpio_mode(MSDC2_DAT2_PIN, 0);
+       mt_set_gpio_dir(MSDC2_DAT2_PIN, 0);
+       mt_set_gpio_mode(MSDC2_DAT3_PIN, 0);
+       mt_set_gpio_dir(MSDC2_DAT3_PIN, 0);

你可能感兴趣的:(consumption)