STM32CubeIDE Jlink连接STM32C8T6的 板子的时候,
各种提示,各种错误.
刚入手没啥经验不能快速的定位问题点. 搞了好几个星期.(晚上搞搞)
经过排查, 我写一下我自己的排查经历.
第一次做板子.由于自己对电路不是很懂所以请人设计的电路板… 我自己焊接的元件. 对于独立插接件都焊不好的我,上来就焊贴片元件. 真是如痴如醉,欲哭无泪… 10个板子焊了2个星期. 自己焊的好不好还不知道, 反正各个颗粒饱满,没有虚焊. 又是热风焊,又是电烙铁的. 10个板子焊完,自己也熟练了.
额外分享一下焊接技巧, 贴片小元件,例如电容,电阻之类的 要先固定一个引脚,然后再焊另外一个.
IC芯片这种引脚特别细的又特别多的,
第一步要先在板子上弄一层薄薄的锡,不要粘在一起. 不要凸起太多.
第二步冷却后, 开始摆放IC芯片,摆放的时候不要用力压,浮在上面就可以了. 摆放技巧是用弯头镊子去顶芯片引脚,很容易顶到合适的位置. 因为板子上已经有一层薄薄的锡了,恰好能挡住镊子,镊子停住了,芯片引脚也恰好在正上方. 4个脚都顶齐了之后不要动.也不要用力压. ,对于引脚不整齐的IC芯片,建议先在比较平的玻璃上压平,确保引脚是在一个平面上.
第三步:用电热风枪去烤. 烤的时候风力不要太大, 会吹跑的, 也不要太久, 会烤坏了其它的元件. 也不要去用手去压它,因为手一定会抖,哪怕一点点,都会失败重来. 感觉差不多了就停下等它冷却了就自然焊好了…
这种方式焊接的IC芯片比较美观, 成功率比较高. 不需要太高深的技巧.也不容易粘到一起.
网上有人直接划拉一下就能焊好. 经亲自动手操作发现太需要技巧. 对手工的要求太高, 很容易粘到一起,弄不开.新手不建议这种方式去弄.
然后就是写程序了.
用的是比较新的STM32CubeIDE开发工具, 这个真的挺好用.比较简单,容易上手…
…各种噼里啪啦, 一顿敲打, 程序写完了.
程序写好了该上线调试了.
代码好写,可是程序就不好烧录了.
在下载烧录的时候各种提示报错,死活下载不了.
经过我用万用表仔细的排查发现板子上的SWDIO和SWCLK两个引脚丝印标反了. 反了就反了呗, 自己知道就可以了.那就反着接.
反着接也还不行…
还是有错, 各种错,具体忘记了. 当时那个失望呀. 各种怀疑,
难道是我程序写错了?
PIN配错了?
SW调试功能引脚没配?
Jlink版本太老了,STM32CubeIDE不支持?
我焊错了芯片方向?
引脚粘到一起去了?
芯片被我高温烤坏了?
PCB电路布线有问题?
BOOT方式有问题?
电源电压有问题?
这些问题经过逐一的一个一个的排查, 最大的怀疑是 PCB布线有问题, 电路没设计好, 或者我手工焊接的不合格.
为了排查JLink和软件的问题,网上买了个开发板, 尝试着用JTAG和SW两种方式进行了下载和调试,结果都正常… 可以排除JLink的问题. 都是支持的.我用的是JLink V9 但是对STLink 不支持. 没弄好. 对Jlink-ob也不支持.
剩下的就只能是布线和焊接还有电源问题了.
在快要绝望的时候, 我看到篇帖子说电压供电不足也会连接不上CPU.
然后,接通板子上的5v供电电源后, 神奇的事情发生了. 能下载也能调试了.
千言万语都化作一句 我操…
搞了2个月了. 终于快要有眉目了.
下面写一下总结:
如果线没连接好 或者 SWDIO和SWCLK弄反了,或者把调试线拔掉 会提示
Connecting to CPU via connect under reset failed.
如下:
Command line: -port 2331 -s -device STM32F103C8 -endian little -speed 4000 -if swd -swoport 2332 -vd
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: off
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: STM32F103C8
Target interface: SWD
Target interface speed: 4000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Link V9 compiled Dec 2 2017 15:35:20
Hardware: V9.20
S/N: 269200585
Feature(s): GDB, RDI, FlashBP, FlashDL, JFlash, RDDI
Checking target voltage...
Target voltage: 2.91 V
Listening on TCP/IP port 2331
Connecting to target...ERROR: STM32: Connecting to CPU via connect under reset failed.
ERROR: Could not connect to target.
Target connection failed. GDBServer will be closed...Restoring target state and closing J-Link connection...
Shutting down...
如果提示 Could not connect to target.
多数是CPU没启动或者SW端口没启用.
我的板子是因为设计的有点问题,另外的5v供电接上以后就正常了.我怀疑跟VSSA,VDDA有关.也有可能电压供电不足有关.
提示如下:
SEGGER J-Link GDB Server V6.44c Command Line Version
JLinkARM.dll V6.44c (DLL compiled Mar 22 2019 17:26:40)
Command line: -port 2331 -s -device STM32F103C8 -endian little -speed 4000 -if swd -swoport 2332 -vd
-----GDB Server start settings-----
GDBInit file: none
GDB Server Listening port: 2331
SWO raw output listening port: 2332
Terminal I/O port: 2333
Accept remote connection: localhost only
Generate logfile: off
Verify download: on
Init regs on start: off
Silent mode: off
Single run mode: on
Target connection timeout: 0 ms
------J-Link related settings------
J-Link Host interface: USB
J-Link script: none
J-Link settings file: none
------Target related settings------
Target device: STM32F103C8
Target interface: SWD
Target interface speed: 4000kHz
Target endian: little
Connecting to J-Link...
J-Link is connected.
Firmware: J-Link V9 compiled Dec 2 2017 15:35:20
Hardware: V9.20
S/N: 269200585
Feature(s): GDB, RDI, FlashBP, FlashDL, JFlash, RDDI
Checking target voltage...
Target voltage: 2.44 V
Listening on TCP/IP port 2331
Connecting to target...ERROR: Could not connect to target.
Target connection failed. GDBServer will be closed...Restoring target state and closing J-Link connection...
Shutting down...
Could not connect to target.
Please check power, connection and settings.libpng warning: iCCP: known incorrect sRGB profile