EXT SLEEP调试和IO引脚

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
6个职位/ 0个新职位
最后发表
paulb231
离线
最后看到:1年2周前
加入:2016-08-31 53
EXT SLEEP调试和IO引脚

当调试和正常使用时,IO引脚似乎有不同的功能:

我已经将一个引脚设置为高状态,但当它从其他睡眠模式出来时,它被设置为低
在调试模式下不会发生这种情况
此外,在调试中功耗较高-约0.5mA基线

我有设置:
sleep_state_t app_default_sleep_mode = ARCH_EXT_SLEEP_ON
/ / # define CFG_DEVELOPMENT_DEBUG(禁用)

是否有任何原因引脚状态被重置时走出下一个睡眠状态,我如何使用这种模式的调试器?

设备:
MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
嗨paulb231,

嗨paulb231,

在调试模式下,设备实际上不去睡眠,但它的行为像一个,所以当在睡眠模式和调试引脚应该重新配置在每个唤醒,这不会发生时,你禁用睡眠。引脚保持其最后的状态,但在唤醒和自外围init()执行引脚被重新配置为默认状态,因此,您必须“记住”应用程序中pin的最后状态,并在peri_init()函数中提供适当的配置,以便pin被重新配置为睡觉前的状态。所以在睡眠中,即使在调试模式中,你应该看到led在每次醒来时被关闭。

由于MT_dialog

paulb231
离线
最后看到:1年2周前
加入:2016-08-31 53
调用了外围init

peri_init在调试模式下也被调用,并且被配置为不改变引脚状态

应该发生什么:
在periph_init:
SetBits16 (SYS_CTRL_REG PAD_LATCH_EN 1);

在计划:
GPIO_ConfigurePin
GPIO_SetActive


arch_turn_peripherals_off:
SetBits16 (SYS_CTRL_REG PAD_LATCH_EN 0);

MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
嗨paulb231,

嗨paulb231,

不好意思,这是个问题吗?如上所述,引脚保持其最后的状态,当唤醒引脚由于外围的init()函数重新配置。如果你想在睡眠模式和保持引脚的状态,你将不得不重新配置你的引脚在所需的值在外围init()函数本身。

由于MT_dialog

paulb231
离线
最后看到:1年2周前
加入:2016-08-31 53


是的,它工作OK,如果它在启动块之前配置:

/ /系统初始化
SetWord16 (CLK_AMBA_REG 0 x00);//设置时钟(hclk和pclk) 16MHz
SetWord16 (SET_FREEZE_REG FRZ_WDOG);//停止看门狗
SetBits16 (SYS_CTRL_REG PAD_LATCH_EN 1);/ /打开垫
SetBits16 (SYS_CTRL_REG DEBUGGER_ENABLE 1);/ /打开调试器
SetBits16 (PMU_CTRL_REG PERIPH_SLEEP 0);//关闭外部电源

否则在我们6号附近会有一个小故障

MT_dialog
离线
最后看到:4个月2周之前
工作人员
加入:2015-06-08 34
嗨paul231,

嗨paul231,

在set_pad_functions()的外围_init()中应该没问题。

由于MT_dialog