STM32 JTAG引脚复用设置
来源:互联网 发布:中国蜜源植物数据库 编辑:程序博客网 时间:2024/05/05 11:01
前奏
先来copy下 JTAG、SW接口的定义,
JTAG:JTAG(Joint Test Action Group;联合测试工作组)是一种国际标准测试协议,主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。
SWD:SW(Serial Wire Mode Interface),串行接口线模式。在串行线模式,只有针TCLK和TMS使用。TDO数据输出引脚是一个可选。
SWD下载调试 原理图:
从图中看到:板子使用SWD接口下载调试,即使用SWDIO、SWCLK(PA13、PA14);PB3–JTDO 默认功能为JTAG的,而这里用作其他的功能–普通I/O。
激情
问题来了:
1、需要关掉PB3的JTAG功能,复用为其他功能。
2、SWD 和传统的调试方式区别。
stm32 JTAG复用相关方法 :
直接上代码,如下:
........ RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); //改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable JTAG-DP 失能 + SW-DP使能 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); .......
但,
当设置了以上语句后,当运行了这两个语句后,JTAG仿真就与目标失去去联系。
解决办法有:
1、设置启动模式为ISP模式(BOOT0=1、BOOT1=0)或设置启动模式为RAM运行模式(BOOT0=1、BOOT1=1)。 将开发板断电后重新上电,此时就因不是在用户程序模式,因此就不会执行禁用JTAG的语句,JTAG功能也就可以正常使用。
2、设置启动模式为ISP模式(BOOT0=1、BOOT1=0),用ISP程序将STM32的FLASH擦除,之后就可恢复JTAG功能。
3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。 直接将仿真器的模式设为SWD模,就可以不受这个禁止JTAG功能的影响了。
我的环境切合第三个解决方案,IAR设置如下:
SWD 和传统的调试方式区别 :
- SWD 模式比 JTAG 在高速模式下面更加可靠。 在大数据量的情况下面 JTAG 下载程序会失败, 但是 SWD 发生的几率会小很多。基本使用 JTAG 仿真模式的情况下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推荐大家使用这个模式。
- 在大家 GPIO 刚好缺一个的时候, 可以使用 SWD 仿真, 这种模式支持更少的引脚。
- 在大家板子的体积有限的时候推荐使用 SWD 模式, 它需要的引脚少, 当然需要的 PCB 空间就小啦! 比如你可以选择一个很小的 2.54 间距的 5 芯端子做仿真接口。
然后
以上,
散啦。。。。。。
- STM32 JTAG引脚复用设置
- stm32 JTAG引脚复用问题 与 RA8835驱动
- STM32 中JTAG 引脚作为普通IO口设置方法
- STM32 中JTAG 引脚作为普通IO口设置方法
- STM32 JTAG的引脚用作GPIO引脚
- JTAG引脚
- 都是stm32的JTAG引脚惹的祸
- STM32的boot引脚设置
- stm32 Boot0,Boot1引脚设置
- MSP430 JTAG引脚图
- STM32中关于JTAG复用的问题
- STM32复用的GPIO引脚配置方式
- 把STM32的JTAG下载引脚:JTDO、JTDI、JTCK 当成普通IO口进行操作
- 图解STM32 JLink 采用JTAG 模式和 SWD模式下载时引脚说明
- 图解STM32 JLink 采取JTAG 模式和 SWD模式下载时引脚说明
- 引脚复用、CAN FIFO设置
- JTAG接口与引脚定义
- JTAG接口与引脚定义
- SQL语句基础[记录基础语句]
- C++ Primer学习笔记(12)——class和struct 定义的类有什么不同
- windows7+eclipse+hadoop2.3开发环境搭建
- JS 正则表达式
- Spring MVC 3学习笔记+教程(二)在controller和视图之间传递参数
- STM32 JTAG引脚复用设置
- 现在的社会——实事求是
- 绕任意轴旋转的推导
- 8:理解面向对象程序设计
- springMVC文件上传
- java使用默认线程池踩过的坑(一)
- Spring学习笔记——Spring中lazy-init与abstract详解
- hdu 1106
- Unix 命令集锦