YTM32B1MD1 进入Standby模式唤醒后跑飞
-
问题描述:注册了PTC_15和PTA2两个IO中断唤醒源,调用执行进入Standby模式接口后,电流<1ma且Ozone Debug断开,使用对应IO唤醒后,能看到电流>200ma,且使用Ozone能正常接入运行的代码,但是执行的地址不对,无法正常运行正常逻辑。
云途配置工具对应IO配置如下:
时钟配置:
模块配置:
程序
麻烦帮忙确认下,是否进入Standby模式和退出Standby模式需要额外的注意事项?
-
1)wku主要针对powerdown模式唤醒,standby直接配置成gpio中断就可以唤醒
- 我可以理解为,如果只需要Standby模式,不需要配置WKU这个模块吗?
2)先不休眠,调试gpio中断没问题后,再休眠调试
- 这个主要确认下,对应的IO对应上升/下降沿是否正确触发中断对吧?我可以直接在配置工具IntCtrl模块设置对应的IO回调来确认吗?因为我们没有预留Debug的串口,所以只能通过Ozone仿真来调试
3)standby唤醒后会继续执行下一行,可以在进入standby的下一行while(变量),唤醒后卡死在while
- 这个我确认下
另外,想确认下,目前的时钟配置有问题吗?我看《SDK应用_LE系列 Power模块配置及应用.pdf》,对应的内容需要使用内部时钟
这个是我目前的时钟配置:
const scu_config_t clock_config0ScuConfig = { .fircEnable = true, .fircDeepSleepEnable = false, .sircDeepSleepEnable = false, .sircStandbyEnable = false, .sircPowerDownEnable = false, .sysClkSrc = SCU_SYSTEM_CLOCK_SRC_PLL, .fxoscConfig = { .enable = true, .bypassMode = false, .gainSelection = 5, .frequency = 16000000U, }, .pllConfig = { .enable = true, .pllRefClock = SCU_PLL_REF_FXOSC_CLK, .pllFeedBackDiv = 30, .pllRefClkDiv = 2, }, .sysDiv = SCU_SYS_CLK_DIV_BY_1, .fastBusDiv = SCU_SYS_CLK_DIV_BY_1, .slowBusDiv = SCU_SYS_CLK_DIV_BY_3, .flashDiv = SCU_SYS_CLK_DIV_BY_3, .clockOutConfig = { .enable = false, .source = SCU_CLKOUT_SEL_PLL_CLK, .divider = 1 }, };
-
yuchuangxin
1)是的,standby模式不需要配置WKU模块。
2)可以的,主要是在休眠前确认gpio中断可以正常触发,保证休眠后可以唤醒MCU。
3)时钟配置可以的,休眠前主要是保证把外设deinit
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...