单片机SWJ 调试端口(SW-DP和JTAG)、SWD下载电路

2024-02-29 12:44

本文主要是介绍单片机SWJ 调试端口(SW-DP和JTAG)、SWD下载电路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

单片机下载接口是指用于将编写好的程序代码下载到单片机芯片中的接口。常见的单片机下载接口包括以下几种:

1. **串口下载接口**:通过串口(如UART或RS-232接口)与计算机或下载器相连,将程序代码通过串口传输到单片机内存中。串口下载接口简单易用,适合于一些简单的单片机应用。

2. **USB下载接口**:通过USB接口与计算机相连,利用USB通信协议进行数据传输,将程序代码下载到单片机芯片中。USB下载接口传输速度快,适合于对下载速度要求较高的应用。

3. **SWD接口**:Serial Wire Debug接口,是一种用于ARM Cortex微控制器调试和下载程序的接口标准,通过SWD接口可以进行单步调试和程序下载。

4. **JTAG接口**:Joint Test Action Group接口,是一种用于测试、调试和程序下载的接口标准,适用于多种类型的芯片。通过JTAG接口可以实现对单片机的调试和下载操作。

5. **ICSP接口**:In-Circuit Serial Programming接口,适用于一些PIC等系列单片机,通过ICSP接口可以在电路板上直接对单片机进行编程和下载操作。

以上是一些常见的单片机下载接口,根据不同的单片机芯片类型和开发环境,可以选择合适的下载接口和下载器,以便进行程序开发、调试和下载操作。在选择下载接口时,需要考虑单片机的型号、开发工具的支持以及开发环境的需求,以确保下载过程顺利进行并达到预期的效果。

数据手册

数据手册中关于SWJ调试端口的内容如下图

STM32F4xx系列微控制器内核集成了串行/JTAG调试端口(SWJ-DP),该端口是ARM标准CoreSight调试端口的一部分,其中包含JTAG-DP(5引脚)接口和SW-DP(2引脚)接口。以下是关于这两个接口的一些基本信息:

JTAG-DP接口:

- JTAG调试端口(JTAG-DP)提供了一个标准的5引脚JTAG接口,用于连接到AHB-AP(Advanced High-performance Bus-Access Port)端口。
- 通过JTAG-DP接口,可以实现对微控制器的调试、编程以及硬件调试功能。
- JTAG-DP接口提供了丰富的调试功能,包括单步执行、断点设置、寄存器查看等操作。

SW-DP接口:

- 串行线调试端口(SW-DP)提供了一个2引脚接口,用于连接到AHB-AP端口。
- SW-DP接口可以通过时钟和数据线实现数据的传输和调试功能。
- 在SWJ-DP中,SW-DP的2个JTAG引脚与JTAG-DP的5个JTAG引脚中的部分引脚进行了复用,以提供更灵活的调试和连接选项。

SWJ-DP的优点和特点:

- 提供了灵活的调试接口选项,可以根据具体需求选择JTAG-DP或SW-DP接口。
- 支持CoreSight调试技术,提供了丰富的调试功能和性能优化选项。
- 通过SWJ-DP接口,可以方便地进行调试、编程和硬件连接操作,提高开发效率和调试便捷性。

在 STM32F4xx 微控制器中,JTAG-DP 和 SW-DP 之间的切换是通过提供特定的 JTAG 序列来实现的。默认情况下,调试接口是 JTAG 接口。如果调试工具希望切换到 SW-DP 接口,需要在 TMS(映射到 SWDIO)和 TCK(映射到 SWCLK)引脚上提供专用的 JTAG 序列,以禁用 JTAG-DP 并启用 SW-DP。这样,就可以使用 SWCLK 和 SWDIO 引脚来激活 SW-DP 接口。

切换到 SW-DP 的序列如下:
1. 输出超过 50 个 TCK 周期的 TMS(对应于 SWDIO 引脚)= 1 信号
2. 输出 16 个 TMS(对应于 SWDIO 引脚)信号 0111100111100111(从最高有效位开始)
3. 输出超过 50 个 TCK 周期的 TMS(对应于 SWDIO 引脚)= 1 信号

通过按照以上序列操作,调试工具可以有效地切换到 SW-DP 接口,从而在调试过程中使用 SW-DP 提供的功能和特性。这种切换机制使得在 JTAG-DP 和 SW-DP 之间灵活切换成为可能,便于开发人员根据实际需要选择合适的调试接口,并实现相应的调试操作。

STM32F4xx 5 个普通 I/O 口可用作 SWJ-DP 接口引脚。所有封装都提供这些引脚。 

 

SWD下载电路

SWD下载电路如下所示

该电路为5p排针,用来外接ST-Link下载器。其中排针的2、4引脚接芯片的PA14和PA13,分别为SWD下载的SWCLK和SWDIO

  • SWDIO:Serial Wire Data Input Output,串行数据输入输出引脚

  • SWCLK:Serial Wire Clock,串行线时钟引脚

在 SWD(Serial Wire Debug)下载电路中需要包含 NRST(Reset)引脚、3.3V 供电引脚和地(GND)引脚的原因如下:

1. **NRST(Reset)引脚**:
   - NRST 引脚用于控制目标设备的复位。在 SWD 下载时,需要通过控制 NRST 引脚来实现目标设备的复位,以确保下载的程序能够正常启动和运行。
   - 复位操作可以清除目标设备的状态并将其恢复到初始状态,这对于下载过程的成功和稳定性至关重要。

2. **3.3V 供电引脚**:
   - 3.3V 供电引脚用于向目标设备提供稳定的电源供应,确保目标设备在下载过程中能够正常工作。
   - 大多数微控制器和集成电路都需要特定电压范围内的供电来正常运行,因此在 SWD 下载电路中需要提供稳定的 3.3V 供电。

3. **地(GND)引脚**:
   - 地引脚用于建立电路的参考电位。在 SWD 下载电路中,连接地引脚可以确保信号和电源回路的完整性,并提供稳定的参考电位。
   - 通过连接地引脚,可以确保信号传输的稳定性,避免信号干扰和电路不稳定性问题。

因此,包含 NRST、3.3V 供电和地引脚在 SWD 下载电路中是为了确保下载过程的稳定性、目标设备的正常复位和工作,以及保证信号传输的可靠性。

这篇关于单片机SWJ 调试端口(SW-DP和JTAG)、SWD下载电路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758837

相关文章

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

nginx中端口无权限的问题解决

《nginx中端口无权限的问题解决》当Nginx日志报错bind()to80failed(13:Permissiondenied)时,这通常是由于权限不足导致Nginx无法绑定到80端口,下面就来... 目录一、问题原因分析二、解决方案1. 以 root 权限运行 Nginx(不推荐)2. 为 Nginx

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以