项目调试一点小结

最近调试nordic项目时,遇到一个奇怪的问题,在将bootloader和应用程序烧录到板子上后,出现程序跑不起来的情况。
在Nordic上有两个引脚默认是作为NFCT的天线引脚来用的,因为项目需要,这两个引脚需要作为GPIO引脚来用,因此需要配置寄存器来使能这两个引脚的GPIO功能。项目调试一点小结_第1张图片
在这里插入图片描述
在项目上硬件设计上,通过引脚控制一个MOS管来控制,电路电源VDD的打开和关闭,同时VDD和一个10uF电容串联接地。
在没有配置NFCT两个引脚为GPIO之前,我们做了如下一些测试,首先利用示波器查看MOS管输出脚的电平,发现在MOS管开通情况下,输出脚电平只有2.6V左右,比理想的3.3V低,同时测试MOS管的控制脚电平,控制脚电平电压大概有0.9V.比正常的0V略高;出现这种情况是由于,NFCT两个引脚没有配置为GPIO脚,这两个引脚处于悬浮状态,无法输出准确的电平。
在配置两个引脚为GPIO引脚后,出现板子无法正常运行的情况,这时我们在继续上述测试,发现有时候改变MOS管控制脚的电平的时候,对应的VDD电平只是瞬间变化一下,然后又会恢复到改变MOS管控制脚电平之前的状态,这就会导致其他器件IC无法正常工作;这是再测试芯片供电电平,改变MOS管控制脚电平,在示波器上发现芯片供电的电平状态会出现瞬间变为低电平的然后又变成高电平的情况;可以确定芯片在改变MOS管控制脚电平的时候出现了复位。所以就导致板子出现一直复位的情况,无法正常运行的情况。再看硬件电路,会发现在打开VDD电源的瞬间,由于VDD和电容串联,在电容的作用下,会出现很大的冲激电流,导致芯片供电的LDO进入保护状态导致复位。
解决方法:板子上的i2c之前已经外接上拉电阻和VDD相连,所以在打开VDD电源之前可以先配置i2c的两个引脚为高电平,并延时一段时间,给vdd端的电容足够时间充电,来防止在打开MOS管的时候产生很大的冲激电流,导致复位。在打开电源以后,再把i2c两引脚配置为输入。

你可能感兴趣的:(Nordic)