使用SPI操作JTAG的两种方案

MCU没有可以直接操作JTAG的外设,一般情况下,可以使用IO模拟来操作JTAG,但是IO模拟速度比较慢。SPI是与JTAG最接近的外设,可以使用SPI来加速JTAG的操作。然而SPI的4根信号(CS、SCK、MISO、MOSI)与JTAG的4根信号(TCK、TMS、TDI、TDO)并不对应,所以不能直接使用,还要一些特殊的处理。

仅在寄存器移位阶段使用SPI

第一个方案是仅在寄存器移位阶段使用SPI,即在JTAG的Shift-IR、Shift-DR这两个状态使用SPI加速,其它状态下仍然使用IO模拟。用这个方案,口线的对应如下:

  • SPI.SCK -> JTAG.TCK
  • SPI.MOSI -> JTAG.TDI
  • SPI.MISO -> JTAG.TDO

JTAG的TMS始终用IO模拟,不用映射到SPI的信号,因为在Shift-IR、Shift-DR的两个状态中TMS保持不变,除了最后一位数据。

用这种方案,使用一个SPI外设来加速寄存器的移位操作。JTAG中占用时间最长的主要是Shift-DR状态,在一定程度上可以利用SPI的速度加快JTAG操作,其它状态仍然是IO模拟,还是比较慢的。

利用两个SPI组合操作JTAG

在这里插入图片描述
如上图所示,一个SPI作为Master,一个SPI作为Slave,两个SPI组合出JTAG所需要的操作。

左下方为Master SPI,左上方为Slave SPI,右边是JTAG。

Master SPI 驱动JTAG 的 TCK 以及 Slave SPI 的SCK,同时驱动 JTAG 的TMS。

Slave SPI 在 Master SPI 的驱动下,驱动 JTAG 的TDI,以及接收 JTAG的TDO。

这个点子源自:versaloon

这只是两个SPI驱动JTAG的其中一种配置,也可以用Master SPI驱动 TMS和TDI,或者用Master 驱动 TDI和TDO,都是可以的。核心思想是一样的,用两个SPI,分别做主机从机组合实现JTAG的操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值