STM32JTAG调试接口PB3、PB4复用问题

JTAG与SWD调试接口介绍

  • JTAG 接口:主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,标准接线是4根线

    1. TMS:JTAG接口模式选择
    2. TCK:JTAG接口时钟
    3. TDI:JTAG接口数据输入
    4. TDO:JTAG接口数据输出
    5. TRST:JTAG可选引脚,功能为 测试复位、输入引脚、低电平有效
  • SWD接口:串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上。标准接线为2线

    1. SWDIO:SWD数据线
    2. SWDCLK:SWD时钟线

SWD与JTAG相比有许多优点:
1. SWD接口相比于JTAG更加可靠
2. 使用更少的GPIO,直接少用了两个IO
3. 使用引脚少自然PCB板面积走线方便

STM32F1的JTAG与SWD接口定义

  • JTAG接口引脚定义

    1. JTMS :PA13
    2. JTCLK:PA14
    3. JTDI :PA15
    4. JTDO :PB3
    5. JTRST:PB4
  • SWD接口引脚定义

    1. SWDIO :PA13
    2. SWDCLK:PA14

遇到问题

在之前一个项目中,使用的是STM32F103RCT6,LQFP64封装,由于一直使用SWD调试接口,就没考虑过JTAG另外三根线问题,而且项目使用资源挺多,就把JTDI、JTDO、JTRST引脚都用上了,当时比较傻、比较天真。。
后来调试过程中发现这三个引脚始终不受控制,当时都快绝望了,换了好几块芯片,都是同样问题,排除硬件问题后,就开始找软件问题,最后都想去给ST发邮件问问是不是有问题了,然而只能闷着头皮看手册发现是JTAG功能口,当时之前其实想过这个问题,不过没放在心上,因为普通IO都是默认IO功能,开启复用才会使用第二功能的。
后来发现只要开启复用时钟,复用掉JATG的JTDI、JTDO、JTRST这些IO口就直接完全正常了了。

现在电脑没有代码,有时间把复用代码贴上来,就两句话。

猜你喜欢

转载自blog.csdn.net/qq_33894122/article/details/80854146