关于DA1468x/DA1510x PRO-Development套件引脚状态的进一步问题不能在睡觉时维护

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
5个职位/ 0个新
最后发表
userYR
离线
最后看到:3年5个月前
加入:2016-11-08 08:28
关于DA1468x/DA1510x PRO-Development套件引脚状态的进一步问题不能在睡觉时维护

嗨MT_dialog,

谢谢你的帮助!

这个话题是关于上一个话题的进一步问题:
https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。

应用您提供的方法,通过为使用的引脚重新配置GPIO函数,在外围init()中。
当MPU处于睡眠状态时,引脚状态可以保持。

在我们的项目中,我们希望保留外设和gpio的所有设置,一旦它们被制作,而不是在每次MCU唤醒时的外围init()中。
这样,我们相信可以节省相当多的电池电量,因为我们的项目是关于一个可穿戴设备,电池是一个关键的问题。

所以能否提供一个有这个功能的SDK给我们?

设备:
MT_dialog
离线
最后看到:三个月四个星期前
工作人员
加入:2015-06-08 34
嗨userYR,

嗨userYR,

正如我在你之前的文章中提到的,你正在失去外设的状态不是因为设备处于睡眠状态,而是因为设备处于唤醒状态,设备在睡眠模式下保持其引脚的状态,但是,当你醒来时,你将不得不重新配置你的引脚(应用你的引脚与特定的功能),所以外围init()函数被执行,如果你不“记住”应用程序已经改变的引脚的状态,然后引脚将配置在其默认状态。你应该“记住”引脚的状态,并在外围_init()函数中唤醒时应用正确的状态。还通过重新配置你的针在醒来前的状态,这是不会消耗任何额外的权力,没有额外的醒来为了配置外围设备,该设备将服务BLE醒来,只会运行periph_init()代码,没有额外的功耗。

由于MT_dialog

userYR
离线
最后看到:3年5个月前
加入:2016-11-08 08:28
嗨MT_dialog,

嗨MT_dialog,

是的,我知道引脚应该默认为初始状态时,MCU唤醒,如果没有做的重新配置在外围的init()。

但我不明白的是“谁初始化的?”当然,如果是MCU硬件做到了这一点,就什么也做不了了。
你说“失去国家…因为设备正在苏醒"

MT_dialog
离线
最后看到:三个月四个星期前
工作人员
加入:2015-06-08 34
嗨userYR,

嗨userYR,

我很抱歉我不太明白这个问题,如果你在你的设备中使用任何GPIO,你应该在外围的init()函数中配置那些引脚,当设备睡觉hw能够保留针的状态(的寄存器不保留所以当睡觉和醒来寄存器将到他们的默认值,根据销在那一刻的状态(睡前)销将门闩状态睡觉之前)。当设备唤醒时,系统电源管理器将再次调用外围_init(),以便重新初始化pad后面的所有数字电路,以便在应用程序使用的值中设置GPIO寄存器,因此,在初始化时,你也应该应用配置和寄存器在设备进入睡眠前的状态。

由于MT_dialog

userYR
离线
最后看到:3年5个月前
加入:2016-11-08 08:28
嗨MT_dialog,

嗨MT_dialog,

“GPIO寄存器没有被保留”全部澄清!

非常感谢!