ext睡眠调试和IO引脚

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
6个帖子/ 0新
最后一篇
PaulB231.
离线
最后一次露面:2周前1年
加入:2016-08-31 14:53
ext睡眠调试和IO引脚

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

我已经将PIN设置为高状态,但是当它出来的EXT睡眠模式时,它设置为低电平
在调试模式下不会发生这种情况
此外,调试的功耗更高 - 大约0.5mA基线

我已经设定:
sleep_state_t app_default_sleep_mode = arch_ext_sleep_on
//#定义cfg_development_debug(禁用)

从EXT-Sleep状态出来时,PIN状态是否有任何原因,以及如何在此模式下使用调试器?

设备:
mt_dialog.
离线
最后一次露面:4个月2周前
职员
加入:2015-06-08 11:34
嗨paulb231,

嗨paulb231,

在调试模式下,设备实际上没有睡眠,但它表现得像一个,所以在睡眠模式时,在调试时应在每次唤醒时重新配置引脚,则会在禁用睡眠时发生这种情况。销钉保留了最后一个状态,但在唤醒期间,由于Periph_Init()被执行,因此将引脚重新配置为默认状态,因此您必须“记住”应用程序中的PIN的最后状态,并提供正确的配置periph_init()函数才能使PIN重新配置到它之前的状态。所以在睡眠时,即使在睡眠时,即使在调试模式下,也应该看到在每次唤醒时都会关闭LED。

谢谢mt_dialog.

PaulB231.
离线
最后一次露面:2周前1年
加入:2016-08-31 14:53
periph_init被称为

Periph_Init在调试模式下调用,并且配置不会更改PIN状态

应该发生什么:
在Periph_init:
SetBits16(Sys_ctrl_reg,pad_latch_en,1);

稍后在计划中:
gpio_configurepin.
gpio_setactive.


ARCH_TURN_PERITERALS_OFF:
setbits16(sys_ctrl_reg,pad_latch_en,0);

mt_dialog.
离线
最后一次露面:4个月2周前
职员
加入:2015-06-08 11:34
嗨paulb231,

嗨paulb231,

对不起这是一个问题吗?如上所述,PIN保留其最后状态,并且当唤醒由于PERIPH_INIT()函数而重新配置引脚。如果您希望在睡眠模式下并保留引脚的状态,则必须在Periph_init()函数本身中的所需值中重新配置引脚。

谢谢mt_dialog.

PaulB231.
离线
最后一次露面:2周前1年
加入:2016-08-31 14:53
你好

你好
是的,它可以正常运行,只要它在启动块之前配置了:

//系统init.
setword16(clk_amba_reg,0x00);//设置时钟(HCLK和PCLK)16MHz
setword16(set_freeeze_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 11:34
嗨paul231,

嗨paul231,

在set_pad_functions()中的periph_init()应该是确定的。

谢谢mt_dialog.