打印
[信息]

【实战经验】菊花链 JTAG STM32

[复制链接]
4948|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 香水城 于 2017-8-16 14:57 编辑

菊花链 JTAG STM32
前言
菊花链 JTAG STM32

一、简要说明

硬件:STM32F401C-DISCO *2,MCU :STM32F401VCT6 ;
软件:\STM32Cube_FW_F4_V1.8.0\Projects\STM32F401-Discovery\Demonstrations\EWARM

对于硬件的连接以及运行后的现象,readme.txt 中已经说明

程序运行的结果是 LD3~LD6 是跑马灯形式的闪烁。
参看 STM32F401 的参考手册,RM0368 Rev3. 里面在 Debug support(DBG)里面有描述

同样在 JTAG 本身的官网中,也有同样的描述:UM08001(User guide of JTAG emulators for ARM cores),
https://www.segger.com/admin/upl ... s/UM08001_JLink.pdf

这也也要注意一下,什么在菊花链中,哪一个是 Device0,即 TDO 接 JTAG 的那个设备,其他的 Device1,2,,,,依次往后排

二、环境搭建
按照上图,进行 JTAG 的环境的搭建;
参看 STM32F401VCT6,100pinTQFP 封装的数据手册,找出其引脚的分配;


在加上 JTAG 的接口的定义:

即需要 JTAG 的标准引脚的,第 9,7,3,5,13 这 5 个引脚;然后链接相应的引脚:



此外,对于正常链接目标芯片,还需要检测芯片的电源/地,两个引脚 1,20;
当线链接好后,

可以用 IAR 直接下载程序以判断接线是否正确,或者用 KEil 的上述功能,检查他是否检测到了相应的驱动。
对于多个板子的话,就是主要改变 TDI,TDO 即可;因为参照上面的描述,TCK,TMS,TRST 这三个脚都是公用的;
下图所示,KEIL 发现了两个驱动,即表明菊花链的硬件链接是对的了;


通过下拉条来看,这两个驱动的名字是一摸一样的,这也复合我们实际的电路,都是使用的同样的两块 STM32F401VCT6 ;
那需要怎样的设定来判断是菊花链中的哪一个设备呢?
这里简要的说明一个事情:
对于每一个 STM32 包含 2 个 TAPs(如下图):
TAP0: Cortex M4 TAP. (the nearest TAP).
TAP1: Boundary Scan TAP.
所以:
With 2 STM32 in a scan chain, we will have 4 TAPs:
TAP0: Cortex M4 TAP IC1.
TAP1: Boundary Scan TAP IC1.
TAP2: Cortex M4 TAP IC2.
TAP3: Boundary Scan TAP IC2

于是,对于 IAR

配置如下:
烧录 Device 0:
*TAP number = 0 (Cortex TAP, the nearest ==> #0)
*Preceeding bits= 0 (the very first device/TAP in the chain)

烧录 Device 1:
*TAP number = 2
*Preceeding bits= 9(5+4)
双开 IAR,下载调试,ok;

如果三个的话,也是如此,则
Device2 的配置:
*TAP number = 4
*Preceeding bits= 18;
大家可以试试看。

这是在 IAR 中的描述,那么在 KEIL 中呢?

驱动是找到了,但是哪个选项是能区分不同的芯片在菊花连中的位置呢?
一开始怀疑是否是自己的 JTAG 版本不够新? KEIL 版本不够新? KEIL 的正版权限不偶?
最终咨询后,发现,都不是我想的原因,如果换成 ULINK,则可以发现:

这时候发现能够手动的的修改了,Manual Configuration,不再是灰色的了。现在想想也正常,毕竟 ULINK 才是 Keil 自己的下
载工具,如果 Keil 对其他的下载工具的功能做一些限制或优化,也是正常的;
选中其中的一个,

要怎么修改呢?

试验后只需要修改一个参数 IR len 即可,那么 IAR len 的长度究竟怎么算呢?大家可以动手算一算。


对应PDF 菊花链 JTAG STM32
更多实战经验请看:【ST MCU 实战经验汇总贴】


评论
爱吃鱼1的宇仔 2022-5-6 13:39 回复TA
IR len应该如何计算,求教?每个设备加9吗? 
沙发
myxiaonia| | 2015-11-18 11:12 | 只看该作者
不错不错 学习了  又学到新知识了

虽然jlink在keil上用不了菊链  不过也很少需要使用菊链的时候

使用特权

评论回复
板凳
hwl1023| | 2015-11-18 13:38 | 只看该作者
这个真的好东西啊,感谢分享,有空测试下!

使用特权

评论回复
地板
songchenping| | 2015-11-18 15:59 | 只看该作者
有空了得学习一下。省了一个JTAG插座啊

使用特权

评论回复
5
littlelida| | 2022-5-7 15:57 | 只看该作者
这个高级啊,这也能菊花链

使用特权

评论回复
6
chenci2013| | 2022-6-6 12:44 | 只看该作者
stlink可以吗   

使用特权

评论回复
7
suzhanhua| | 2022-6-7 13:26 | 只看该作者
JTAG还可以这么用呢?

使用特权

评论回复
8
mutable| | 2022-6-7 20:56 | 只看该作者
这种方式的应用是什么呢

使用特权

评论回复
9
robertesth| | 2022-6-24 22:24 | 只看该作者
可以连接几个设备呢  

使用特权

评论回复
10
sadicy| | 2022-6-26 10:50 | 只看该作者
连芯片的菊花链,我都不敢用~~~

使用特权

评论回复
11
tail066| | 2022-6-27 21:29 | 只看该作者
高级的很

使用特权

评论回复
12
match007| | 2022-6-28 21:17 | 只看该作者
确实用法很新颖,不过实用性不知如何,想着这么多接线,是不是容易故障,或者有实力的公司,专门做个工装来解决

使用特权

评论回复
13
七毛钱| | 2022-6-29 16:26 | 只看该作者
感觉很高级的样子

使用特权

评论回复
14
dongnanxibei| | 2022-6-30 09:58 | 只看该作者
打算测试测试

使用特权

评论回复
15
Pulitzer| | 2022-10-5 08:13 | 只看该作者

做多层板可将做好的两块双面板用特制的粘合剂“压合”起来

使用特权

评论回复
16
Uriah| | 2022-10-5 15:14 | 只看该作者

在孔璧内部作金属处理后,可以让内部的各层线路能够彼此连接。

使用特权

评论回复
17
Bblythe| | 2022-10-5 18:13 | 只看该作者

孔璧里头必须经过电镀

使用特权

评论回复
18
周半梅| | 2023-4-1 07:10 | 只看该作者

不同的代码逻辑就代表了不同的策略

使用特权

评论回复
19
Pulitzer| | 2023-4-1 08:13 | 只看该作者

对于优秀程序员来说,这不是好代码

使用特权

评论回复
20
周半梅| | 2023-4-1 09:16 | 只看该作者

不要根据不同的参数类型走不同的代码逻辑

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:STM32技术专家

596

主题

17108

帖子

288

粉丝