单片机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

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

IDEA如何实现远程断点调试jar包

《IDEA如何实现远程断点调试jar包》:本文主要介绍IDEA如何实现远程断点调试jar包的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录问题步骤总结问题以jar包的形式运行Spring Boot项目时报错,但是在IDEA开发环境javascript下编译

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Python MCPInspector调试思路详解

《PythonMCPInspector调试思路详解》:本文主要介绍PythonMCPInspector调试思路详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录python-MCPInspector调试1-核心知识点2-思路整理1-核心思路2-核心代码3-参考网址

Linux系统调试之ltrace工具使用与调试过程

《Linux系统调试之ltrace工具使用与调试过程》:本文主要介绍Linux系统调试之ltrace工具使用与调试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、ltrace 定义与作用二、ltrace 工作原理1. 劫持进程的 PLT/GOT 表2. 重定

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模