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

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

嗨MT_dialog,

谢谢你的帮助!

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

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

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

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

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

嗨userYR,

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

由于MT_dialog

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

嗨MT_dialog,

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

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

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

嗨userYR,

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

由于MT_dialog

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

嗨MT_dialog,

“GPIO寄存器没有被保留”澄清了一切!

非常感谢!