芯片调试端口不稳定情况调试

最近又回来一批新的芯片,作为测试攻城狮,又要忙活一阵子了,因为这是原来项目基础上出来的新版本的芯片,所以测试电路板还是可以继续用的。新芯片换上之后上电,下载调试一波走起。。。。哎,为啥找不到CORE呀,什么情况,芯片变砖了?不会吧,我还是很相信公司的研发水平的,但是,啥情况呀,测试电路板应该没啥问题呀,上一版芯片跑的欢快的很。

艰难排查第一步

没啥办法,好好找找原因吧,芯片找不到core,这个玩意一般是电源引起的吧,芯片电源用万用表量了一圈,都是正常的,再试试,哎哎哎,为啥连上去了,下个程序也是好好的,难道之前的bug是错觉?芯片需要一点适应时间??不管了,能用就先测起来。

几分钟后。。。

卧槽,CORE又跑哪里去了,为啥又连不上去了呀?难道非要量一圈电源,这个不合理呀,这个很玄学呀。

艰难排查第二步

其实这个东西是最吃经验的,没啥经验的话是死活都找不到原因的,比如我,对于这种不稳定的,比较玄学的问题只能归之于未解之谜,还好早有高手踩坑。像我这种初级阶段只能怀疑一下电源的问题,高手可能就会想到可能是晶振的问题。

实际晶振这东西还是很容易出问题的,不过因为这个是第二版的芯片,同样的晶振在第一版上是没啥问题的(强行为自己的无知找借口),所以我并没有往这方面怀疑。但是这种随机的问题一般和晶振关系还是比较大的,因为晶振这玩意儿工作在临界的时候,确实有可能是时好时坏,说不起振就不起振,没了心跳,芯片还玩个屁呀。

另外从JLINK的结果上看,也能看出一些端倪,比如错误提示信息是

can't power up debug power domain

但是DAP的ID什么的还是可以读的,也就是DAP这部分工作正常,但是CPU工作不正常,这个可以从侧面反映芯片供电没有问题,但是CPU并没有跑起来,没跑起来的原因也就是晶振没有起振。

根治

找到原因就好办了,我们这里用的是一个24M的晶振,这玩意一般是不需要反馈电阻的,但是不知道这个IP在新版本里有啥变化或者是因为TRIM有啥不一样,这个电阻变得必不可少,所以就在电路板上预留的焊盘并联了一个10M的电阻,从此问题解决,关于这个电阻的作用,从网上摘抄了一段:

这个电阻是为了使本来为逻辑反相器的器件工作在线性区, 以获得增益, 在饱和区是没有增益的, 而没有增益是无法振荡的. 如果用芯片中的反相器来作振荡, 必须外接这个电阻, 对于CMOS而言可以是1M以上, 对于TTL则比较复杂, 视不同类型(S,LS...)而定. 如果是芯片指定的晶振引脚, 如在某些微处理器中, 常常可以不加, 因为芯片内部已经制作了, 要仔细阅读DATA SHEET的有关说明。

嗯就酱吧。

相关文章

发表新评论