
问题: 某客户工程师在某型号新产品的设计中,使用了 STM32F103VDT6。据其工程师讲述:在其产品设计中,为 STM32 预留了 JTAG 调试接口。然而,在软件调试时却发现调试器与器件连接失败。所使用的调试器为 ST-Link,通过在开发板测试,确认其功能完好。对 PCB 及电缆做相关的测试,确认 JTAG 的相关信号(TCK、TMS、TDO、TDI、TRST)及电源、地连通完好,并且没有线间短路现象。2 e7 ~! c9 e5 P 调研: 检查 STM32 的电源及接地,未见异常。检查复位电路,未见异常。检查 JTAG 接口的走线与连接器,发现其 PCB 走线为长距离平行走线,线间未做隔离,连接器未选用标准的 20PIN 针座,而是简化为10PIN 的针座。针座与调试器之间,采用飞线连接,线与线之间无固定的位置关系。使用 ST-Link 加ST-Link Utility 进行测试,在 JTAG 连接模式下,不能与器件连接。调整飞线之间的位置关系,结果依旧。改用 SWD 模式,接接成功。尝试下载程序与调试,功能正常。9 k9 g* |+ ]" d! x9 G& y' h) T , S6 \* v3 {8 u) {4 w- C 结论: JTAG 走线与连接器选用不规范,造成信号间干扰,导致通信误码。' T5 `$ k( V$ G# S( }; u9 l 处理:. S& h0 f* k0 V1 d4 ? 改用 SWD 模式通信。& ?+ D6 x9 t# Y& n6 F 建议:; h, j6 a1 |3 [4 s6 {/ y+ {9 _" j7 E JTAG 属于全双工同步通信接口,它对各个信号的延迟的一致性及线间干扰有一定的要求。所以,在PCB 布线及通信电缆的选择上都要在这两方面有所考虑。通常,对于 PCB 布线,要保证线与线等长,从而保证其延迟的一致性,线与线之间要以地线分隔,以降低线与线之间的干扰。标准的连接器为20PIN 针座,为了减小对 PCB 面积的占用,可以采用更精密的连接器,但要保证 JTAG 的各路信号之0 x: c/ z! V( C# g6 \3 e 间有地线隔离。扁平电缆,在保证信号延迟的一致性方面有较好的表现,可以用来作为通信电缆。同样,在电缆中也要保证 JTAG 的各路信号之间有地线隔离。SWD 是半双工同步通信接口,只有两线,较 JTAG 接口简单。由于其线数少,且为半双工通信,所以对线间干扰的敏感性较 JTAG 接口要小。同时,SWD 接口的通信带宽的利用率较高,这意味着,以相同承载数据传输速率进行通信,SWD的时钟频率要低于 JTAG 接口的时钟频率,这进一步提高了 SWD 接口的通信稳定性。鉴于以上原因,在 PCB 没有边界扫描要求的应用中,以 SWD 接口作为调试接口是一个不错的选择。 9 B* E, P6 H0 W9 W9 |' [1 d |
实战经验 | Keil工程使用NEAI库的异常问题
STM32 ISP IQTune:真正零门槛的免费ISP调整软件
【经验分享】STM32 新建基于STM32F40x 固件库的MDK5 工程
意法半导体MCU双供应链策略,打消中国客户后顾之忧
【经验分享】基于STM32使用HAL库实现USB组合设备CDC+MSC
2024意法半导体工业峰会:赋能智能电源和智能工业,构筑可持续未来
ST推出灵活、面向未来的智能电表通信解决方案,助力能源转型
意法半导体 x Qu-Bit Electronix:推动新一轮的数字声音合成革命
从STM32 MPU产品看嵌入式系统中微处理器的新变化
【Hot!】STM32全系列开发板都支持Arduino开发,你知道吗?