研究了一下JLINK的硬件,SWIO好像是SPI,但是方向是反的

2020-01-04 18:46发布

无标题.png (93.97 KB, 下载次数: 0) 下载附件 2019-8-18 23:01 上传

如图,我看这个接口就是使用的STM32F205的SPI1,CLK是JLINK发出的,那就是使用的SPI主机模式了,
JATG_TMS是SWDIO引脚,可是U12的方向控制接地,意味着MOSI这个位置上,缓冲器始终是输入状态,可以主机的MOSI不应该是输出吗。
难道是表面上使用的是SPI实际上却是IO模拟的接口,把SPI的主机和从机引脚反过来使用了。好蛋疼的结论。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
SUPER_CRJ
1楼-- · 2020-01-05 14:03
如果可以用SPI来搞SWD时序,速度就快多了,我现在就是IO口模拟的,速度只能达到1.5Mhz、
momo_li
2楼-- · 2020-01-05 16:38
布心 发表于 2019-8-19 09:24
SWD的主端设备,采用3个GPIO来实现SWD,一个提供CLK,一个I,一O,其中I跟O之间连接一个2K的电阻,并连接 ...

看SWD的时序,并不是标准的8-16-32位,比如那个ACK就只有3位,我估计这个应该用标准的SPI实现不了,所以尽管JLINK的硬件是接在了205的SPI1上,但是实际上还是IO模拟来实现的SWD协议吧。
这个用作输出的IO,在SWDIO接收状态下应该是设置为高阻状态了或者开漏输出1,真正负责接收的是另外一个用作输入的IO,
momo_li
3楼-- · 2020-01-05 17:37
SUPER_CRJ 发表于 2019-8-19 10:24
如果可以用SPI来搞SWD时序,速度就快多了,我现在就是IO口模拟的,速度只能达到1.5Mhz、 ...

我看那个SWD接口规范,估计SPI实现是没戏,
momo_li
4楼-- · 2020-01-05 20:19
SUPER_CRJ 发表于 2019-8-19 10:24
如果可以用SPI来搞SWD时序,速度就快多了,我现在就是IO口模拟的,速度只能达到1.5Mhz、 ...

20190819102709.png (79.85 KB, 下载次数: 0)

下载附件

2019-8-19 10:27 上传



这个3位的ACK,SPI就搞不了把
OurWay
5楼-- · 2020-01-06 01:01
 精彩回答 2  元偷偷看……
momo_li
6楼-- · 2020-01-06 02:32
OurWay 发表于 2019-8-19 10:36
可以的吧,现在有的都能设置spi长度的

我是很少使用SPI的,基本上就是前几年写了一些设备驱动,后来就一直用没动过,这个SPI可以设置超过32位的长度吗,SWD的数据是32位长度的,最后又加了一个校验位,变成了33位。。。而且这一位还是校验位,要根据数据来计算

一周热门 更多>