NRF52840 Reset 复位后板子起不来及解决方法

本文禁止转载。

正常情况下,任何一块电路板,在复位的时候,都是要求板子能重新起来的。

我们的复位电路如上图所示,默认采用了nrf52840 P0.18管脚进行复位。

上图是我们的电源电路,我们的电源电路 POWER_EN 管脚与nrf52840连接。启动时,需要把POWER_EN管脚拉高,这样电源电路才会导通,电路才可以正常工作。

reset之后,一般单片机的情况,管脚都是进入到高阻态。

但是,NRF52840的在reset之后,管脚的状态是未知的!!!!

具体的可以查看下面的官网的网址描述:

nRF52833 GPIO behavior during pin reset - Nordic Q&A - Nordic DevZone - Nordic DevZone


 

reset复位后,reset的复位信号达到芯片的内部各个模块的时序有差异,并不能保持一致性,所以导致管脚的状态未知。

it's not possible to guarantee the exact behavior.

没办法,只能改成软复位,软复位之后,会解决到复位时端口状态不一致的问题。

首先,去除掉 CONFIG_GPIO_AS_PINRESET 宏,让P0.18作为一个普通的GPIO口,而不是默认的reset口

 

不过,这种软中断的复位方式有缺陷,具体的缺陷表现为,只有当程序正常运行的时候,才可以进入到中断函数里面进行复位。如果程序跑飞了,软中断复位的方式就不会生效。

而复位存在的意义,恰恰是程序跑飞的时候,可以通过外部硬件的方式进行强制复位,让程序正常运行!!!

好吧,巨大的矛盾。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sgmcy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值