关于DA1468x/DA1510x PRO开发工具包中pin状态的进一步问题在睡眠时无法维护

⚠️
你好。。谢谢你来到论坛。令人兴奋的消息!我们现在正在迁移到新的论坛平台,该平台将提供更好的功能,并包含在主对话网站中。所有员额和帐户都已迁移。我们现在只接受新论坛的流量-请在//www.xmece.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
5个员额/0个新员额
最后一篇文章
用户年
离线
最后一次见到:3年4个月前
加入:2016-11-08 08:28
关于DA1468x/DA1510x PRO开发工具包中pin状态的进一步问题在睡眠时无法维护

嗨,MT_dialog,

谢谢你的帮助!

本主题是关于上一主题的进一步问题:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl...

通过在periph_init()中为使用的管脚重新配置GPIO函数,应用了您提供的方法。
现在,可以在MPU睡眠时保持pin状态。

在我们的项目中,我们希望在外围设备和GPIO完成后保留它们的所有设置,而不是每次MCU唤醒时都保留在periph_init()中。
通过这种方式,我们相信可以节省大量电池电量,因为我们的项目是关于可穿戴设备的,而电池是一个关键问题。

那么,您能为我们提供一个具有此功能的SDK吗?

设备:
MT_对话框
离线
最后一次见到:2个月4周前
工作人员
加入:2015-06-08 11:34
嗨,userYR,

嗨,userYR,

正如我在上一篇文章中提到的,您失去外围设备状态的原因并不是因为设备正在睡眠,而是因为设备正在唤醒,设备在睡眠模式下保留其引脚的状态,但在唤醒时,您必须重新配置引脚(使用特定功能应用引脚)因此,将执行periph_init()函数,如果您不“记住”应用程序已更改的pin状态,则该pin将配置为其默认状态。当在periph_init()函数中醒来时,应该“记住”pin的状态并应用正确的状态。另外,通过在唤醒前将PIN重新配置为不会消耗任何额外电源的状态,没有额外的唤醒为了配置外围设备,设备将唤醒以服务于BLE,并且只运行periph_init()代码,没有额外的电源消耗。

谢谢你的对话

用户年
离线
最后一次见到:3年4个月前
加入:2016-11-08 08:28
嗨,MT_dialog,

嗨,MT_dialog,

是的,我知道如果没有在periph_init()中进行重新配置,那么当MCU唤醒时,引脚应该默认为初始状态。

但我不明白的是“谁做了这个初始化?”。当然,如果MCU硬件做到了这一点,就什么也做不了。
你说“失去状态…因为设备正在唤醒”是否暗示了情况是这样的?

MT_对话框
离线
最后一次见到:2个月4周前
工作人员
加入:2015-06-08 11:34
嗨,userYR,

嗨,userYR,

很抱歉,我不太明白这个问题,如果您在设备中使用任何GPIO,您应该在periph_init()函数中配置这些管脚,当设备进入睡眠状态时,硬件能够保留管脚的状态(GPIO寄存器不保留,因此当进入睡眠和唤醒时,寄存器将变为其默认值,并且取决于当时(睡眠前)引脚的状态,引脚将锁定在进入睡眠前的状态)。唤醒periph_init()时当设备应唤醒时,系统电源管理器将再次调用,以便重新初始化pad后面的所有数字电路,以便在应用程序使用的值中设置GPIO寄存器,因此在初始化时,您还应应用配置和寄存器在设备进入睡眠前的状态。

谢谢你的对话

用户年
离线
最后一次见到:3年4个月前
加入:2016-11-08 08:28
嗨,MT_dialog,

嗨,MT_dialog,

“GPIO寄存器未保留”澄清了这一切!

非常感谢你!