搜索
bottom↓
回复: 25

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

[复制链接]

出500入109汤圆

发表于 2019-8-18 23:05:53 | 显示全部楼层 |阅读模式


如图,我看这个接口就是使用的STM32F205的SPI1,CLK是JLINK发出的,那就是使用的SPI主机模式了,
JATG_TMS是SWDIO引脚,可是U12的方向控制接地,意味着MOSI这个位置上,缓冲器始终是输入状态,可以主机的MOSI不应该是输出吗。
难道是表面上使用的是SPI实际上却是IO模拟的接口,把SPI的主机和从机引脚反过来使用了。好蛋疼的结论。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-8-18 23:10:55 来自手机 | 显示全部楼层
swdio应该是双向的吧

出500入109汤圆

 楼主| 发表于 2019-8-18 23:13:05 | 显示全部楼层
jlink对外是SWDIO一个引脚实现的双向接口,对内貌似还是两个IO实现的,我把U12去掉之后就不能调试了,应该是实现的输入部分,下面的U11才是输出部分,推测是这样,明天有时间看看OB的程序,和时序,看看是不是这样。

出0入0汤圆

发表于 2019-8-19 00:03:20 来自手机 | 显示全部楼层
SWDIO   可以用SPI来模拟

出0入0汤圆

发表于 2019-8-19 09:24:33 | 显示全部楼层
momo_li 发表于 2019-8-18 23:13
jlink对外是SWDIO一个引脚实现的双向接口,对内貌似还是两个IO实现的,我把U12去掉之后就不能调试了,应该 ...

SWD的主端设备,采用3个GPIO来实现SWD,一个提供CLK,一个I,一O,其中I跟O之间连接一个2K的电阻,并连接到目标芯片的SWDIO上。当年设计M0和M3芯片的时候,设计过SWD的主端,测试过时序。

出0入0汤圆

发表于 2019-8-19 10:14:26 | 显示全部楼层
momo_li 发表于 2019-8-18 23:13
jlink对外是SWDIO一个引脚实现的双向接口,对内貌似还是两个IO实现的,我把U12去掉之后就不能调试了,应该 ...

楼主有OB的程序吗?发上来大家一起看看吧。

出500入109汤圆

 楼主| 发表于 2019-8-19 10:20:26 | 显示全部楼层
sblpp 发表于 2019-8-19 10:14
楼主有OB的程序吗?发上来大家一起看看吧。

从来没有用过OB,我一直以为那是开源的呢,这里到时找到一个SWD协议的实现https://github.com/MarkDing/swd_programing_sram

出590入992汤圆

发表于 2019-8-19 10:24:48 | 显示全部楼层
如果可以用SPI来搞SWD时序,速度就快多了,我现在就是IO口模拟的,速度只能达到1.5Mhz、

出500入109汤圆

 楼主| 发表于 2019-8-19 10:25:24 | 显示全部楼层
布心 发表于 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,

出500入109汤圆

 楼主| 发表于 2019-8-19 10:26:07 | 显示全部楼层
SUPER_CRJ 发表于 2019-8-19 10:24
如果可以用SPI来搞SWD时序,速度就快多了,我现在就是IO口模拟的,速度只能达到1.5Mhz、 ...

我看那个SWD接口规范,估计SPI实现是没戏,

出500入109汤圆

 楼主| 发表于 2019-8-19 10:28:04 | 显示全部楼层
SUPER_CRJ 发表于 2019-8-19 10:24
如果可以用SPI来搞SWD时序,速度就快多了,我现在就是IO口模拟的,速度只能达到1.5Mhz、 ...



这个3位的ACK,SPI就搞不了把

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-8-19 10:36:20 来自手机 | 显示全部楼层
momo_li 发表于 2019-8-19 10:28
这个3位的ACK,SPI就搞不了把

可以的吧,现在有的都能设置spi长度的

出500入109汤圆

 楼主| 发表于 2019-8-19 10:42:00 | 显示全部楼层
OurWay 发表于 2019-8-19 10:36
可以的吧,现在有的都能设置spi长度的

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

出0入0汤圆

发表于 2019-8-19 12:50:35 | 显示全部楼层
momo_li 发表于 2019-8-19 10:25
看SWD的时序,并不是标准的8-16-32位,比如那个ACK就只有3位,我估计这个应该用标准的SPI实现不了,所以 ...

别往SPI上想了,STM32F1/F2系列的GPIO实现双向通行,IO口需要配置为开漏输出,开漏输出的话,就需要外加上拉电阻,这样的话,速度肯定上不去的,1MHz到顶了。如果采用切换配置来事项I和O,速度同样上不去。I永远配置为输入,O永远配置为输出,没有切换。也就是为什么它们中间要加个2K电阻的原因。

出500入109汤圆

 楼主| 发表于 2019-8-19 13:20:16 | 显示全部楼层
布心 发表于 2019-8-19 12:50
别往SPI上想了,STM32F1/F2系列的GPIO实现双向通行,IO口需要配置为开漏输出,开漏输出的话,就需要外加 ...

想来想去也只能是开漏做输出和另一个IO配合实现双向了,
为了高速,JLINK特地在输出使用了方向可控的缓冲芯片,这样做输出的时候开漏输出的负载为高阻,提高了输出的速度,
输入时缓冲芯片换方向,同样是高阻输入,解决了输入的速度,看上去很高深的东西,扒光了看看也不过如此。

出0入0汤圆

发表于 2019-8-19 14:25:08 | 显示全部楼层
momo_li 发表于 2019-8-19 13:20
想来想去也只能是开漏做输出和另一个IO配合实现双向了,
为了高速,JLINK特地在输出使用了方向可控的缓冲 ...

关键还是时钟上不去,IO口模拟时钟当然高不了,IO切向耗不了多少时间。

出0入0汤圆

发表于 2019-8-20 08:45:56 | 显示全部楼层
我有个ARM脱机烧写器,第三方厂家做的,烧写需要十几秒,
而jlink只要1秒不到。

出500入109汤圆

 楼主| 发表于 2019-8-20 09:13:36 | 显示全部楼层
zhikunWang 发表于 2019-8-20 08:45
我有个ARM脱机烧写器,第三方厂家做的,烧写需要十几秒,
而jlink只要1秒不到。 ...

估计就是IO模拟swd的效率问题,真正快速就要使用汇编了,或者用fpga

出0入0汤圆

发表于 2019-8-20 09:28:46 | 显示全部楼层
这个是新唐的Nu-Link的 SWD接口,看起来是 SPI接口的哈

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入4汤圆

发表于 2019-8-20 09:48:26 | 显示全部楼层
布心 发表于 2019-8-19 09:24
SWD的主端设备,采用3个GPIO来实现SWD,一个提供CLK,一个I,一O,其中I跟O之间连接一个2K的电阻,并连接 ...

问下怎么设计芯片,最简单的M0+就行

出0入0汤圆

发表于 2019-8-20 10:14:57 | 显示全部楼层
clesun 发表于 2019-8-20 09:48
问下怎么设计芯片,最简单的M0+就行

你这问题有点大啊。我是负责芯片概念、功能、系统设计,但不负责细节实现。细节实现由数字、模拟、后端人员。芯片设计过程中,设计的功能是否满足需要,性能是否满足需求,我说了算,芯片流片之后功能/性能测试我负责。芯片生产之后的应用方案开发我负责。我能回答你的,就是为什么要选择M0或者M3,为什么不选择中天微。你要知道,对于数字、模拟设计来说,选择M0/M3或者选择中天微,对他们来说是一样的,可对于芯片验证、应用开发来说 ,工作量可是完全不一样。

出500入109汤圆

 楼主| 发表于 2019-8-20 10:20:16 | 显示全部楼层
OurWay 发表于 2019-8-20 09:28
这个是新唐的Nu-Link的 SWD接口,看起来是 SPI接口的哈

我看了新塘的手册,这个MCU在官网上没有,可能是特殊的,无论如何,实现不了SWD特殊的协议,就算是接在SPI上,也只能是IO模拟,3位的ack,33位带校验的数据,这个功能一般的SPI都不具备。这是我的看法

出0入0汤圆

发表于 2019-8-20 10:43:35 | 显示全部楼层
momo_li 发表于 2019-8-20 10:20
我看了新塘的手册,这个MCU在官网上没有,可能是特殊的,无论如何,实现不了SWD特殊的协议,就算是接在SP ...

这是带固件(nu-link)的版本,还有不带固件的版本便宜很多

出0入4汤圆

发表于 2019-8-20 10:52:25 | 显示全部楼层
布心 发表于 2019-8-20 10:14
你这问题有点大啊。我是负责芯片概念、功能、系统设计,但不负责细节实现。细节实现由数字、模拟、后端人 ...

也就是属于大PM那类,架构师?

出0入0汤圆

发表于 2019-8-20 11:37:41 | 显示全部楼层
clesun 发表于 2019-8-20 10:52
也就是属于大PM那类,架构师?

哪那么高大上,累活。后面,应用方案开发过程中,芯片的问题、硬件的问题、软件的问题,都是自己的问题,有时会让人抓狂。有家外企,想叫我过去做BLE5芯片的工作,拒了,老老实实继续做嵌入式来得轻松些。芯片行业,太累。

出0入0汤圆

发表于 2019-8-20 12:10:53 | 显示全部楼层
坛里之前几个人反汇编了link
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 16:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表