false

false

EN

用我自己的做的板跑 app_io_wakeup示例,按了唤醒后不能进入app_gpiote_event_handler中断 【已解决】

150***729

2021-08-12 15:34:57

唤醒管脚也是跟官方一样用的aon_gpio1,测试电流能看到程序正常进入sleep模式,按了唤醒后串口收不到 任何的打印信息,通过main_init函数也发现唤醒后没有进入热启动操作那里,而且我发现唤醒后执行例如delay_ms()这些库原有的函数也有问题了,请问到底是这个示例有点问题还是我这边其他的原因呢?麻烦帮忙解答一下,困惑我好几天了。。。

{-}{-}

2021-08-12 16:30:59

Hi,

您好!

1. 新板子回来之后是否有使用PLT工具,或者离线工具进行校准测试,确认板子是OK的?

2. 新板子是否有跑其它示例工程,先确定板子是OK的,串口打印等信息是OK的,如果有5515 的starter_kit对比,会更快,排除板子的因素;

3. 如果方便,请详细描述一下问题发生的软,硬件版本,正常复现该问题的过程,附上关键核心代码,或者示例工程,方便定位;


谢谢!


5条评论

您的评论

150***729

2021-08-12 17:19:41

在设置aon_gpio1内部上拉的情况下,待打印完前面信息后,再拿根gnd的导线碰该管脚,这里的中断函数就没有任何打印信息了


0条评论

您的评论

最佳答案

wan****com

2021-08-13 10:35:31

感谢您的提问,根据您的描述,是基于SDK 1.6.06版本下的.\projects\peripheral_app\gpio\app_io_wakeup工程在自制的板子上运行,发现唤醒流程异常。我的建议如下:

1、进入pwr_mgmt_schedule函数前,确认寄存器配置,方式如下:

首先确认AON GPIO_1的复用功能是否为MUX7,根据Datasheet 2.1版本10.1.4.5章节描述,寄存器地址为0xA000E000(名称AON_PAD_MUX_CTRL)的第6~4bit是否配置为二进制111(十进制7)。

其次确认AON_GPIO_1的唤醒源选择寄存器,可以读取寄存器地址为0xA000C558的第1bit确认是否为1,以及寄存器地址为 0xA000C504的第25bit是否为1 。

2、确认唤醒流程分支(推荐采用GPIO翻转去Debug,确认执行流程):

可以在system_gr55xx.c文件的main_init函数的warm_boot函数调用之前增加IO翻转,确保程序进入该分支(切记不可在main_init函数中增加print调试打印),并且分别在EXT2_IRQHandler函数入口,app_gpiote_event_handler函数入口增加调试IO Log。

3、如唤醒流程未被执行,需要确认芯片型号:

如果电流观察芯片唤醒,但未进入到main_init函数,可能原因是XIP功能初始化失败,需要提供GR5515详细芯片型号;如果选型为GR5515I0ND芯片,则可能是Flash与GR5515适配问题,那么还需要提供选型的Flash型号。

1条评论

您的评论

共 3条记录
1

您的回答