从深度睡眠唤醒时预定义的默认pin状态

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
20个帖子/ 0个新帖子
最后发表
rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
从深度睡眠唤醒时预定义的默认pin状态

你好,对话框,

我有一个硬件配置,需要在从wither POR或从Deep Sleep唤醒时设置端口引脚/高。

既然,重置总是将GPIO设置为'0'状态,有没有办法使用一个汇编指令,它将在引导时执行第一个指令,因为从深度睡眠唤醒?

谢谢

设备:
PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

你能解释一下你想要完成什么吗?如果我理解正确,你想进入睡眠状态,一旦设备唤醒,引脚应该设置为高>,或者你想在芯片处于睡眠模式时保持高引脚状态?

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
你好,对话框,

你好,对话框,

睡眠是深度睡眠。

在休眠时,引脚状态定义为高/低。

当从深度睡眠中醒来时,Pin状态应该被保留。

如何达到以上要求?

问候

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

pin在进入睡眠之前的状态被保留,但不保留配置或pin的功能。当设备唤醒时,将调用peripher_init()函数,以便在每次唤醒时重新配置引脚,并且引脚返回它们的默认应用程序状态。因此,如果任何gpio在进入睡眠状态之前是高值的,那么在睡眠期间它将保持高值,并在唤醒时由peripher_init()函数重新配置。

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
你好,对话框,

你好,对话框,

我特别提到了睡眠模式——深度睡眠。

对于深度睡眠,代码总是在从外部中断唤醒时执行HW复位。

我有一个要求,应该-继续/恢复代码执行从深度睡眠醒来。

请问在深度睡眠模式下,这样的需求简化是否可行?

谢谢

问候

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

你提到了深度睡眠模式,为了了解你的需求,我来问你一些问题。你把OTP烧了吗?

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
你好,对话框,

你好,对话框,

我的闪存里有FW。(DA14586)。

谢谢

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

正常情况下,当设备处于深度睡眠模式时,OTP应该被烧毁。但是,通过定义CFG_DEVELOPMENT_DEBUG宏da1458x_config_basic.h,您可以模拟深度睡眠模式和系统RAM的OTP镜像。同样,在进入睡眠之前的引脚状态被保留,但不保留引脚的配置或功能。

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
你好,对话框,

你好,对话框,

我可以知道如何恢复代码执行,而深度睡眠模式是启用与代码执行从Flash?

如果这是不可能的,有什么可行的替代方案?

谢谢

问候

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

你能把你的问题说清楚吗?你说“启用深度睡眠模式时继续执行代码”是什么意思?

DA14585/6有3种睡眠模式:

  • 延长睡眠没有OTP拷贝
  • DA14585/6:只有与图像大小对应的SystemRAM保持打开状态

  • 带有OTP拷贝的扩展睡眠:有OTP拷贝(如果从OTP启动)。
  • DA14585/6:只有32kB的SystemRAM保持打开状态。OTP必须被烧毁才能测量深度睡眠电流。

  • 深度睡眠模式:有OTP拷贝(如果从OTP启动)
  • DA14585/6:根据选择的选项,只有唤醒控制器或POR电路保持打开状态。
  • 此模式可用于传送模式或休眠模式。无法维护BLE连接。

但是,通过定义CFG_DEVELOPMENT_DEBUG宏da1458x_config_basic.h,您可以模拟深度睡眠模式和系统RAM的OTP镜像。

在EXTENDED睡眠模式下,da14585 /6可以通过两种方式被唤醒

  • 同时,通过BLE定时器(可编程唤醒系统),
  • 异步地,通过外部中断(输入)。

当选择DEEP sleep模式时,da14585 /6可以通过以下方式唤醒:

  • 异步地,通过外部中断(输入)从电源-复位(POR)电路或唤醒控制器

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
由于对话框中,

由于对话框中,

我希望有一个SystemRAM状态保持,以便当需要唤醒时,系统恢复它的主循环执行,而不是像在深度睡眠中经历一个系统复位。

我在闪存里有应用程序代码。因此,基于上述选项,扩展睡眠模式没有OTP复制是唯一的选项,以节省电力在不活动。

在没有OTP拷贝配置的情况下,是否有任何额外的节能设置可以包含到扩展睡眠模式中?

谢谢

问候

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

你可以把你的数据存储到内存中,以便在你睡觉的时候保存它们。请检查SW举例:DA14585/586检测复位源这个例子演示了如何做到这一点。关于你的最后一个问题,你不需要任何额外的配置。

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
谢谢你的精彩演讲

谢谢你精彩的例子,

基于这个示例,代码会针对任何重置条件再次启动。(敝中断/ Hardfault / SW);

要求不仅要知道复位的原因,还要保持GPIO的状态为复位前的状态。

问候

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

正如在前面的评论中提到的,设备在进入睡眠之前会保留引脚的状态,但不会保留引脚的配置或功能。当设备唤醒时,将执行peripher_init()函数,以便在每次唤醒中重新配置引脚,并且引脚返回它们的默认应用程序状态。当进入睡眠状态时,如果GPIO是高值的,那么它将在睡眠期间保持高值,并在唤醒时由peripher_init()函数重新配置。您必须在应用程序中注意到您的引脚的最后状态,以便在唤醒时重新应用该值。

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
但是,示例代码

但是,示例代码将经历一个重置,GPIO状态也将被重置为零。

谢谢

问候

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

据我所知,你想在睡觉的时候保持GPIO状态,是吗?

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
是的,

是的,

睡眠模式是深度睡眠和外部唤醒。

因此,在唤醒时,系统将进行复位,从而将GPIO设置为零(复位状态)。

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

正如我提到的,pin在进入睡眠状态之前的状态是保留的。所以,如果我理解正确的话,您想在SW复位后保留引脚的状态?

谢谢,PM_Dialog

rajucoolsuraj
离线
最后看到:11个月1天前
加入:2018-12-12 16:09
是的,正确。我想

是的,正确。我想在SW复位后保留引脚的状态。

谢谢

PM_Dialog
离线
最后看到:22小时39分钟前
工作人员
加入:2018-02-08 11:03
嗨rajucoolsuraj,

嗨rajucoolsuraj,

你能指出设备从哪里启动吗?从System-RAM ore从SPI Flash?如果靴子从系统内存中,复位后,固件将丢失所以你必须下载一遍,一个可能的解决方案是将销的状态存储到Retention-RAM un-initialized区域,并通过这个值在periph_int配置的。

谢谢,PM_Dialog