现象: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);