你好,对话框,
我有一个硬件配置,需要在从wither POR或从Deep Sleep唤醒时设置端口引脚/高。
既然,重置总是将GPIO设置为'0'状态,有没有办法使用一个汇编指令,它将在引导时执行第一个指令,因为从深度睡眠唤醒?
谢谢
拉
嗨rajucoolsuraj,
你能解释一下你想要完成什么吗?如果我理解正确,你想进入睡眠状态,一旦设备唤醒,引脚应该设置为高>,或者你想在芯片处于睡眠模式时保持高引脚状态?
谢谢,PM_Dialog
睡眠是深度睡眠。
在休眠时,引脚状态定义为高/低。
当从深度睡眠中醒来时,Pin状态应该被保留。
如何达到以上要求?
问候
pin在进入睡眠之前的状态被保留,但不保留配置或pin的功能。当设备唤醒时,将调用peripher_init()函数,以便在每次唤醒时重新配置引脚,并且引脚返回它们的默认应用程序状态。因此,如果任何gpio在进入睡眠状态之前是高值的,那么在睡眠期间它将保持高值,并在唤醒时由peripher_init()函数重新配置。
我特别提到了睡眠模式——深度睡眠。
对于深度睡眠,代码总是在从外部中断唤醒时执行HW复位。
我有一个要求,应该-继续/恢复代码执行从深度睡眠醒来。
请问在深度睡眠模式下,这样的需求简化是否可行?
你提到了深度睡眠模式,为了了解你的需求,我来问你一些问题。你把OTP烧了吗?
我的闪存里有FW。(DA14586)。
正常情况下,当设备处于深度睡眠模式时,OTP应该被烧毁。但是,通过定义CFG_DEVELOPMENT_DEBUG宏da1458x_config_basic.h,您可以模拟深度睡眠模式和系统RAM的OTP镜像。同样,在进入睡眠之前的引脚状态被保留,但不保留引脚的配置或功能。
我可以知道如何恢复代码执行,而深度睡眠模式是启用与代码执行从Flash?
如果这是不可能的,有什么可行的替代方案?
你能把你的问题说清楚吗?你说“启用深度睡眠模式时继续执行代码”是什么意思?
DA14585/6有3种睡眠模式:
但是,通过定义CFG_DEVELOPMENT_DEBUG宏da1458x_config_basic.h,您可以模拟深度睡眠模式和系统RAM的OTP镜像。
在EXTENDED睡眠模式下,da14585 /6可以通过两种方式被唤醒
当选择DEEP sleep模式时,da14585 /6可以通过以下方式唤醒:
由于对话框中,
我希望有一个SystemRAM状态保持,以便当需要唤醒时,系统恢复它的主循环执行,而不是像在深度睡眠中经历一个系统复位。
我在闪存里有应用程序代码。因此,基于上述选项,扩展睡眠模式没有OTP复制是唯一的选项,以节省电力在不活动。
在没有OTP拷贝配置的情况下,是否有任何额外的节能设置可以包含到扩展睡眠模式中?
你可以把你的数据存储到内存中,以便在你睡觉的时候保存它们。请检查SW举例:DA14585/586检测复位源这个例子演示了如何做到这一点。关于你的最后一个问题,你不需要任何额外的配置。
谢谢你精彩的例子,
基于这个示例,代码会针对任何重置条件再次启动。(敝中断/ Hardfault / SW);
要求不仅要知道复位的原因,还要保持GPIO的状态为复位前的状态。
正如在前面的评论中提到的,设备在进入睡眠之前会保留引脚的状态,但不会保留引脚的配置或功能。当设备唤醒时,将执行peripher_init()函数,以便在每次唤醒中重新配置引脚,并且引脚返回它们的默认应用程序状态。当进入睡眠状态时,如果GPIO是高值的,那么它将在睡眠期间保持高值,并在唤醒时由peripher_init()函数重新配置。您必须在应用程序中注意到您的引脚的最后状态,以便在唤醒时重新应用该值。
但是,示例代码将经历一个重置,GPIO状态也将被重置为零。
据我所知,你想在睡觉的时候保持GPIO状态,是吗?
是的,
睡眠模式是深度睡眠和外部唤醒。
因此,在唤醒时,系统将进行复位,从而将GPIO设置为零(复位状态)。
正如我提到的,pin在进入睡眠状态之前的状态是保留的。所以,如果我理解正确的话,您想在SW复位后保留引脚的状态?
是的,正确。我想在SW复位后保留引脚的状态。
你能指出设备从哪里启动吗?从System-RAM ore从SPI Flash?如果靴子从系统内存中,复位后,固件将丢失所以你必须下载一遍,一个可能的解决方案是将销的状态存储到Retention-RAM un-initialized区域,并通过这个值在periph_int配置的。
嗨rajucoolsuraj,
你能解释一下你想要完成什么吗?如果我理解正确,你想进入睡眠状态,一旦设备唤醒,引脚应该设置为高>,或者你想在芯片处于睡眠模式时保持高引脚状态?
谢谢,PM_Dialog
你好,对话框,
睡眠是深度睡眠。
在休眠时,引脚状态定义为高/低。
当从深度睡眠中醒来时,Pin状态应该被保留。
如何达到以上要求?
问候
拉
嗨rajucoolsuraj,
pin在进入睡眠之前的状态被保留,但不保留配置或pin的功能。当设备唤醒时,将调用peripher_init()函数,以便在每次唤醒时重新配置引脚,并且引脚返回它们的默认应用程序状态。因此,如果任何gpio在进入睡眠状态之前是高值的,那么在睡眠期间它将保持高值,并在唤醒时由peripher_init()函数重新配置。
谢谢,PM_Dialog
你好,对话框,
我特别提到了睡眠模式——深度睡眠。
对于深度睡眠,代码总是在从外部中断唤醒时执行HW复位。
我有一个要求,应该-继续/恢复代码执行从深度睡眠醒来。
请问在深度睡眠模式下,这样的需求简化是否可行?
谢谢
问候
拉
嗨rajucoolsuraj,
你提到了深度睡眠模式,为了了解你的需求,我来问你一些问题。你把OTP烧了吗?
谢谢,PM_Dialog
你好,对话框,
我的闪存里有FW。(DA14586)。
谢谢
拉
嗨rajucoolsuraj,
正常情况下,当设备处于深度睡眠模式时,OTP应该被烧毁。但是,通过定义CFG_DEVELOPMENT_DEBUG宏da1458x_config_basic.h,您可以模拟深度睡眠模式和系统RAM的OTP镜像。同样,在进入睡眠之前的引脚状态被保留,但不保留引脚的配置或功能。
谢谢,PM_Dialog
你好,对话框,
我可以知道如何恢复代码执行,而深度睡眠模式是启用与代码执行从Flash?
如果这是不可能的,有什么可行的替代方案?
谢谢
问候
拉
嗨rajucoolsuraj,
你能把你的问题说清楚吗?你说“启用深度睡眠模式时继续执行代码”是什么意思?
DA14585/6有3种睡眠模式:
但是,通过定义CFG_DEVELOPMENT_DEBUG宏da1458x_config_basic.h,您可以模拟深度睡眠模式和系统RAM的OTP镜像。
在EXTENDED睡眠模式下,da14585 /6可以通过两种方式被唤醒
当选择DEEP sleep模式时,da14585 /6可以通过以下方式唤醒:
谢谢,PM_Dialog
由于对话框中,
我希望有一个SystemRAM状态保持,以便当需要唤醒时,系统恢复它的主循环执行,而不是像在深度睡眠中经历一个系统复位。
我在闪存里有应用程序代码。因此,基于上述选项,扩展睡眠模式没有OTP复制是唯一的选项,以节省电力在不活动。
在没有OTP拷贝配置的情况下,是否有任何额外的节能设置可以包含到扩展睡眠模式中?
谢谢
问候
拉
嗨rajucoolsuraj,
你可以把你的数据存储到内存中,以便在你睡觉的时候保存它们。请检查SW举例:DA14585/586检测复位源这个例子演示了如何做到这一点。关于你的最后一个问题,你不需要任何额外的配置。
谢谢,PM_Dialog
谢谢你精彩的例子,
基于这个示例,代码会针对任何重置条件再次启动。(敝中断/ Hardfault / SW);
要求不仅要知道复位的原因,还要保持GPIO的状态为复位前的状态。
问候
拉
嗨rajucoolsuraj,
正如在前面的评论中提到的,设备在进入睡眠之前会保留引脚的状态,但不会保留引脚的配置或功能。当设备唤醒时,将执行peripher_init()函数,以便在每次唤醒中重新配置引脚,并且引脚返回它们的默认应用程序状态。当进入睡眠状态时,如果GPIO是高值的,那么它将在睡眠期间保持高值,并在唤醒时由peripher_init()函数重新配置。您必须在应用程序中注意到您的引脚的最后状态,以便在唤醒时重新应用该值。
谢谢,PM_Dialog
但是,示例代码将经历一个重置,GPIO状态也将被重置为零。
谢谢
问候
拉
嗨rajucoolsuraj,
据我所知,你想在睡觉的时候保持GPIO状态,是吗?
谢谢,PM_Dialog
是的,
睡眠模式是深度睡眠和外部唤醒。
因此,在唤醒时,系统将进行复位,从而将GPIO设置为零(复位状态)。
嗨rajucoolsuraj,
正如我提到的,pin在进入睡眠状态之前的状态是保留的。所以,如果我理解正确的话,您想在SW复位后保留引脚的状态?
谢谢,PM_Dialog
是的,正确。我想在SW复位后保留引脚的状态。
谢谢
拉
嗨rajucoolsuraj,
你能指出设备从哪里启动吗?从System-RAM ore从SPI Flash?如果靴子从系统内存中,复位后,固件将丢失所以你必须下载一遍,一个可能的解决方案是将销的状态存储到Retention-RAM un-initialized区域,并通过这个值在periph_int配置的。
谢谢,PM_Dialog