JTAG和SWD的引脚占用

在用STM32F103ZET6的时候,对于JTAG和SWD的引脚PB3.PB4.PA13.PA14.PA15在程序下载之后不会输出程序所要求的电平状态,在这种情况下需要将这些引脚默认的功能重映射为普通IO管脚。SWJ(SWD+JTAG)引脚说明:
在这里插入图片描述
灵活的引脚配置:
灵活的引脚配置:
具体的代码:

void JTAG_Set(u8 mode)
{
    
    
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
if(mode == JTAG_SWD_DISABLE)  //2  SWD和JTAG全部禁用
{
    
    
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
}   
else if(mode == SWD_ENABLE)    //1  关闭JTAG 启用SWD 
{
    
    
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
}
else if(mode == JTAG_SWD_ENABLE)//0    JTAG和SWD全部开启
{
    
    
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, DISABLE);
else{
    
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE);}}  //JTAG和SWD全部开启,但是没有TSRST。

注:如果关闭了SWD或者JTAG那么就不能用对应的方式进行硬件调试。
关于JTAG:
一、引脚定义
Test Clock Input (TCK) -----强制要求1
TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟信号来驱动的。
Test Mode Selection Input (TMS) -----强制要求2
TMS信号在TCK的上升沿有效。TMS在IEEE1149.1标准里是强制要求的。TMS信号用来控制TAP状态机的转换。通过TMS信号,可以控制TAP在不同的状态间相互转换。
Test Data Input (TDI) -----强制要求3
TDI在IEEE1149.1标准里是强制要求的。TDI是数据输入的接口。所有要输入到特定寄存器的数据都是通过TDI接口一位一位串行输入的(由TCK驱动)。
Test Data Output (TDO) -----强制要求4
TDO在IEEE1149.1标准里是强制要求的。TDO是数据输出的接口。所有要从特定的寄存器中输出的数据都是通过TDO接口一位一位串行输出的(由TCK驱动)。
Test Reset Input (TRST) ----可选项1
这个信号接口在IEEE 1149.1标准里是可选的,并不是强制要求的。TRST可以用来对TAPController进行复位(初始化)。因为通过TMS也可以对TAP Controll进行复位(初始化)。所以有四线JTAG与五线JTAG之分。
(VTREF) -----强制要求5
接口信号电平参考电压一般直接连接Vsupply。这个可以用来确定ARM的JTAG接口使用的逻辑电平(比如3.3V还是5.0V?)
Return Test Clock ( RTCK) ----可选项2
可选项,由目标端反馈给仿真器的时钟信号,用来同步TCK信号的产生,不使用时直接接地。
System Reset ( nSRST)----可选项3
可选项,与目标板上的系统复位信号相连,可以直接对目标系统复位。同时可以检测目标系统的复位情况,为了防止误触发应在目标端加上适当的上拉电阻。
USER IN
用户自定义输入。可以接到一个IO上,用来接受上位机的控制
USER OUT
用户自定义输出。可以接到一个IO上,用来向上位机的反馈一个状态由于JTAG经常使用排线连接,为了增强抗干扰能力,在每条信号线间加上地线就出现了这种20针的接口。但事实上,RTCK、USER IN、USER OUT一般都不使用,于是还有一种14针的接口。对于实际开发应用来说,由于实验室电源稳定,电磁环境较好,干扰不大。
JTAG图:
tu
yi
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42595206/article/details/103602950
今日推荐