如题,做课题时,焊完最小系统后,用JLink检测MCU时,读不出MCU的信息,如下图所示。

答主用的芯片是STM32G031系列,之前已经用过此芯片,而且电路都是现成经过验证的,只是重新对PCB进行了布局。出现了这种情况,让我有点意外。
开始时我以为是元器件有虚焊,于是我用电压表一根线一根线的捋了下,捋完后没啥问题,再一上电,结果还是不行。我又准备了一个JLink,连上没显示,用两个JLink连接好的板子没有问题。我同样检查了keil里面的选项,和以前一样没有动过,下载速率,芯片型号这些都是默认的。接着我又拿出块板子,重新焊了一块,结果还是不行。因为之前没有遇到过这个问题,而且觉得有点不可思议,意识里感觉只有焊对元器件通上电就能读出MCU。 一直不行,不能干等着,要想办法,我想会不会PCB制板时有瑕疵,因为水平不一样,内部电路给我制错了?怀着这个想法,我找了家大的PCB制板店,又打了一版,满怀信心,结果再次焊的时候,还是不行,我迷了,到底是什么原因呢?新的板子我也每根线用电压表测,都是导通的,多次检查了PCB电路,G031板子就20pin,最小系统构造简单,就几个元器件,所以排查问题时工作量很少,但我反复检查反复测就是没有问题,让我真的很怀疑。后来我把之前焊过的好板子上的器件拆下,焊在我的板子上,依旧不行我真的快崩了。
搁置了几天我开始查G031的数据手册,无意中发现手册中说,复位键的外围电容要近可能的靠近芯片,我之前布的电容离芯片稍远,像抓住救命稻草般,我再次修改布局,改完后发出,满怀期待,以为这次问题不大,结果,我又想多了,现实再次给我沉重的打击,我已经无计可施了。其实这期间也在网上查这个问题,搜到的有说芯片锁住了,要么就是SWD SWC连错了等等,跟我的情况不太一样,因为我的芯片是新的,不存在锁住,所以找了很多没找到。 最后我请教了师兄,哈哈,因为我是接手的师兄的项目,他说他之前也遇到过这个问题。
解决方案:他问我JLink在板子上引出几根线,我说三根SWC,SWC,GND,他说你这样不对,一定要把JLink的VCC3,3在板子上预留出来,JLInk的VCC要接在L2的左边,即没经过电感的3.3V上,
这样让JLink给MCU供电,只要JLINK和MCU没问题,就一定可以读出MCU,我照着这方法试了下,结果真的读出来了,真得很激动,困扰了很久终于解决了!
至于原因应该是,板子的3.3V要和JLINK上的3.3连在一块,为了使MCU和JLINK处于一个电路下,这样传数据有保证,当然有的MCU质量过硬,不用JLINK的3.3V和板子的3.3V接就能读出,像我之前就没有接过照样可以读出,所以可能是我这批MCU质量不那么过硬。 JLINK的3.3V没和板子3.3V连通,有时候板子电压不稳定,JLINK的压差和MCU的压差不同,会导致读不出MCU。
因此以后画板子时,一定要把JLINK的3.3V连到板子上。
我又试了试,JLINK给板子供电和电源供电同时开着,JLINK读不出MCU,关上电源的电,就能读出。
另:在没有检测出芯片时遇到一个问题,现在也没有想明白,焊完电源完,测量电压是3.28V,算正常。接着焊完最小系统,最小系统就VDDA的电感电容和复位键的电感电容,再加一个主芯片。 当我再次测量电压时,我的电压只有3V多一点点,我用排除法,把最小系统的每个元件拿掉(除了主芯片)测电压,电压都是3V多一点点,但当我拿掉芯片时,电压回到了3.28v,感觉芯片耗电有点离谱,到现在也没有想通原因。
在课题研究中,遇到J-Link无法读取STM32G031系列MCU信息的问题。经过排查,发现是JLink的VCC3.3V未正确连接到MCU的3.3V电源,导致读取失败。解决方法是确保JLink的3.3V直接连到MCU的3.3V电源,以保证稳定供电和数据通信。此外,还提到MCU在焊接后可能导致电压下降的现象,但原因未明。



4361

被折叠的 条评论
为什么被折叠?



