你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】菊花链 JTAG STM32

[复制链接]
STMCU小助手 发布时间:2022-2-28 19:15
前言
菊花链 JTAG STM32
一、简要说明
硬件:STM32F401C-DISCO *2,MCU :STM32F401VCT6 ;
软件:\STM32Cube_FW_F4_V1.8.0\Projects\STM32F401-Discovery\Demonstrations\EWARM
对于硬件的连接以及运行后的现象,readme.txt 中已经说明:

201X$G})C2{81F3DSV5GRGQ.png

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

NULVLJM8}TAVHXZNSVZM3{5.png

同样在 JTAG 本身的官网中,也有同样的描述:UM08001(User guide of JTAG emulators for ARM cores),

_BXEO4_8GBNX``3`A0$`L7Q.png

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


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

3~1KF3PQDJIJ{1BH2CU~(YB.png
JYWS_EU3YI02~%S)U0MOQBU.png

在加上 JTAG 的接口的定义:

MCA0JJD%P2_WS(`KW0AABDV.png

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

(4}}{E(A10Z@L9_I{E5KAJP.png

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

8KS6LRXN)NC3$SBO6WM~[M9.png

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

KSV(V[S@IF4C[7ZMQ%TK.png


通过下拉条来看,这两个驱动的名字是一摸一样的,这也复合我们实际的电路,都是使用的同样的两块 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

)RIAU[(1VSUQ~7]W}1Z32EK.png

于是,对于 IAR

(FM10`W~)LP6C$`@~YBN~Z8.png

配置如下:
烧录 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;


TMOAOJ5H}{)WLLS0C7OO0[T.png

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


5FEXI)UKMQC$MO8HYGGTNKB.png

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


SAE`~{ZW67_${ODWT(D0@L1.png

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


81J[@Y4S)[GKX]HBB2{J8.png

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


L_6[M8AF{8JROD44~0@`RS8.png

要怎么修改呢?

2}X{]MIFQIR0{5PQZLMQV2L.png

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

收藏 评论0 发布时间:2022-2-28 19:15

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版