stlink制作(OSHW版)

2023-05-16

stlink制作安排
视频在我的B站
工程主页在开源硬件平台

0. 项目原由

因为我那个板载stlink的NANO板近期要还给老师了。所以我就没有板子和stlink了,但是对于一个stmer来说,怎么能没stlink呢!?所以我决定买一个stlink。但是买的有的功能不全,有的很贵,而且有的还很大。同时还了之后我也没有板子,所以我决定自己制作一个板载stlink外围电路的最小系统小蓝板,这样刷stlink的固件就可以当stlink使用,不刷stlink的固件的时候,也可以当做最小系统版来使用。但是我自己做一个的话,别人要是想复刻我这个项目就得和我一样从头做一个,有点费事儿。考虑到大家如果要是用stlink的话,大概率是会有那个能买到的最小系统小蓝板。所以我决定让大家利用起来自己的小蓝板,用我的stlink扩展(pin_to_pin兼容市面上的最小系统板)来做一个stlink调试器。
先说在前头:本项目硬件不是很难,主要是c8t6的谜之容量和固件兼容性的问题有太多坑。

1.简介

ST-LinkV2-1: 支持STM32调试,带虚拟串口和虚拟U盘下载,本项目制作的就是用于STM32程序下载、仿真调试和串口功能为一体的ST-Link V2-1(扩展板)。
stlink扩展板+市面上卖的STM32F103C8T6核心板 就能构成完整的stlink V2-1调试器。

2.图片

stlink扩展板双层板3D图,如下。

我的c8t6最小系统四层板3D图,如下。(第一次画,不合理的地方还请见谅)
在这里插入图片描述

stlink扩展板双层板实物图,如下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HwjBbDY5-1665144515224)(//image.lceda.cn/pullimage/KH2gt1FtXMdzOCI8sIDOEH1lLgwGkctFbL51zueU.jpeg)]

3.原理图参考

本项目原理图参考了正点原子的NANOF1开发板上的ST-link V2-1设计,如下图。
在这里插入图片描述

3.1 ST-LINK V2.1电路

NANOF1开发板上的STlink v2.1 ,这里我用stm32f103c8t6最小系统板上的芯片,部分外围电路在stlink扩展板上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7IiiaDy7-1665144515224)(//image.lceda.cn/pullimage/GeDRYZZscYKDIgqLjeuGX7aHUXjG6iGQZTXsQSrr.png)]

3.2 USB接口电路

NANOF1开发板上的 USB_ST_LINK 可以直接cv过来,本设计中扩展版使用的是排母 ,接在stm32f103c8t6最小系统板上。
在这里插入图片描述

3.3 下载电路

刷固件的接口在最小系统板上,stlinkV2.1接口在扩展板上。
在这里插入图片描述

3.4 COM指示灯

此LED会显示ST-LINK状态:
LED呈闪烁:正在目标和PC之间交换数据。
LED为常亮:PC与ST-LINK之间的通信已建立。
在这里插入图片描述

3.5 LDO电源电路

参考这个芯片的手册。(NANOF1上用的1117,为什么我不用1117,因为我的最小系统板有点小,1117这大家伙太占地方)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mrscsv5L-1665144515225)(//image.lceda.cn/pullimage/qhx0kH6rIbzUmJvoXupwyrBgCJEnGkz4GMy9zbSR.png)]

4 ST-Link V2.1固件烧录&固件更新

4.1 固件获取

由于ST官方没有将ST-Link源码公开,也没有直接给出ST-Link固件(因为有读保护),但是网传有多个版本的固件。这里我只找了V2J28版本的固件(见附件),但是这个固件对于64k flash 的c8t6用不了(后面我有解决办法,而且已经成功),128k的c8t6和cbt6可以无脑冲V2J28版本(实测完全ok)或者更高版本。如何查看c8t6的flash大小,见我的B站。
我成功提取了V2J27版本(见附件),变砖的64k的c8t6使用这个版本就可以了(hex和bin两种格式都有,无论使用串口工具flymcu还是用Utility又或者STM32CubeProgrammer,都可以刷,终于摆脱flymcu的谜之下载逻辑了,哈哈)
注意:128k的c8t6或者cbt6刷了V2J27,一般直接就能用;64k的c8t6刷了V2J27,有小概率不能用,这时只需用ST-LinkUpgrade_V2.J27.M15重新升级一下,然后拔插USB,重启烧录软件就行了。(实测成功)

4.2 烧录软件选择

这3个都可以,请随意选择方便的。

  1. flymcu(见附件):主要功能是编程烧录,只能用串口,配合CH340的usb转TTL下载(51小伙伴表示熟悉的配方)。
    在这里插入图片描述

  2. Utility(附件也有):STM32 ST-LINK Utility的主要功能也是编程下载,得用stlink下载,也就是说你得有一个能用的stlink,去隔壁小伙伴那借一下。
    在这里插入图片描述

  3. STM32CubeProgrammer(太大了,附件没有,要用的话直接去官网下):主要功能也是编程下载,支持Windows、 Linux、 macOS操作系统。同时,需要安装JRE环境才能使用它。这个工具我只用过stlink下载,貌似这个工具还能用串口和USB。
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oynwToXP-1665144515226)(//image.lceda.cn/pullimage/234ZIUwIiglURNrlfKQ9m8NgZst3P9TwoNmWNo02.png)]

我采用的Utility和STM32CubeProgrammer,因为有时候得打开STM32CubeProgrammer才能识别自己做的stlink。

4.3 固件更新

注意:64k的c8t6,一定不要升级,很大可能会变砖,变砖的要重新刷我的V2J27。

  1. 用ST-LinkUpgrade_V2.J27.M15(见附件)升级,这个升级器只能升级到V2J27,非64k flash的不推荐使用。
  2. 下载官方固件升级应用程序STSW-LINK007:ST-LINK,ST-LINK / V2,ST-LINK / V2-1和STLINK‑V3板的固件升级。
  3. 使用STM32CubeProgrammer或者STM32 ST-LINK utility 自带的升级工具升级。
  4. 使用Keil MDK-ARM 内置的升级工具进行升级,当ST-link 的版本低于MDK内置的版本时,会提示进行升级。

固件烧录及更新过程视频见我的B站。

U盘拖拽下载视频和stlink串口收发视频 见附件。

5 验证

在这里插入图片描述

在这里插入图片描述

一般显示ST-Debug而且插上电脑会自动弹出UNDEFINED文件夹,就说明ok了。

6 测试

  1. 测试烧录功能,用Keil-MDK,下载程序成功,说明烧录功能正常.(视频太大,在我的B站)
  2. 测试Debug功能,用Keil-MDK进行Debug调试,可以调试,说明Debug功能正常.(视频在我的B站)
  3. 测试U盘拖拽烧录功能,需要生成bin文件(bin文件生成方法),将bin文件拖到ST-link 模拟的U盘中,成功烧录,说明虚拟U盘功能正常。(视频见附件)
  4. 测试串口收发功能:用杜邦线连接ST-LINK V2-1的TX和RX ,打开串口助手,发送数据,接收区收到相同的数据,说明串口收发正常(视频见附件);或者让其它开发板的usart口给虚拟串口发个数据来验证.(视频在我的B站)

7 注意事项

  1. ST-LINK 最近的几个版本加入了读保护,SWD口是锁上的,不能通过SWD口读写固件。
  2. 如果想改成DAP-LINK 之类的固件,不能通过SWD口烧录固件,但是可以通过ISP的方式擦除STM32的固件信息,然后就可以使用SWD口正常读写。(本条参考攻城狮的)

8 错误记录

错误记录文档在我的CSDN
视频在我的B站


最后:有问题的小伙伴,可以在评论区留言,看到留言后会及时回复。如果我的这个项目对你有帮助,请在评论区上方点个赞,谢谢!
e10986af)


最后:有问题的小伙伴,可以在评论区留言,看到留言后会及时回复。如果我的这个项目对你有帮助,请在评论区上方点个赞,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stlink制作(OSHW版) 的相关文章

  • STlink、Jlink驱动一直安装失败的解决办法

    STlink Jlink驱动一直安装失败的解决办法 STlink驱动安装失败问题详情 Jlink驱动安装的问题也类似 xff0c 总是有一项安装失败 xff01 xff01 xff01 在经过各种尝试完毕之后 xff0c 怀疑是系统的问题
  • ACfly飞控用STlink下载的接口,接线,并用STlink(SWD)下载程序

    部分电脑上的操作过程我有录屏并放到B站上了 ACfly飞控用STlink下载的接口 这是在用户手册里面的 然后STlink的接线看这篇博文 xff0c 正好我之前买过正点原子 xff0c 用的STlink和这一样 xff0c 也好装驱动 h
  • stlink故障修复

    前言 一直用的是国产版stlink xff0c 但是最近手头手头上的两个stlink在下载的时候出故障了 xff0c 无法识别 上淘宝一搜发现涨价了 xff0c 记得以前是20左右 xff0c 现在都要40快一个 于是想着能不能进行修复 百
  • stlink制作(OSHW版)

    stlink制作安排 视频在我的B站 工程主页在开源硬件平台 0 项目原由 因为我那个板载stlink的NANO板近期要还给老师了 所以我就没有板子和stlink了 xff0c 但是对于一个stmer来说 xff0c 怎么能没stlink呢
  • ST-Link驱动安装不正确,设备管理器黄色感叹号,win10安装stlink驱动

    这是由于驱动没有安装好导致的 xff0c 从该链接下载驱动文件 xff1a http pan baidu com s 1bog5FZ5 我是win10 win7 win8一样的办法 解压缩后 xff0c 直接以管理员身份运行其中的dpins
  • 自制STLink

    前段时间 xff0c 由于芯片大涨价 xff0c 手上又没有STLink xff0c 只有STM32F103c8t6的芯片 xff0c 在网上借鉴了很多大佬的DIY xff0c 就自己动手画了一个 xff0c 好像有两个版本 xff0c 好
  • keil提示用STLINK下载程序提示Error: Flash Download failed - Target DLL has been cancelled的一种情况

    keil版本为 xff1a V5 25 30 0 下载器为ST LINK 1 如下图 xff0c keil提示Error Flash Download failed Target DLL has been cancelled 2 原因是如下
  • ubunut安装stlink

    在ubuntu上面的stlink驱动的安装 依赖包的安装 sudo apt get install libusb 1 0sudo apt get install cmakesudo apt get install libgtk 3 dev
  • STLINK-V3MINI 的 STDC14 接口与 JTAG 接口对应关系

    1 STLINK V3MINI 实物图 xff08 图片来自官方文档 xff09 STDC14 接口管脚间距为 1 27mm 2 STLINK V3MINI 硬件介绍 xff08 图片来自官方文档 xff09 3 STLINK V3MINI
  • stlink使用笔记

    1 stlink灯一直闪 2 当用外部电源 xff08 外部 就是不直接使用stlink为板子供电 xff09 为板子供电时 xff0c 如果要用stlink xff08 SWD模式 xff09 xff0c 那么不能只插SWCLK和SWDI
  • STLINK下载程序(附STLINK驱动包)

    一 ST Link V2的JTAG SWD接口定义及产品图 实物图 STLINK指定标准接口 xff1a 二 STLINK驱动安装 xff1a 双击ST LinkUpgrade安装即可 安装成功之后 xff0c 设备管理器 三 打开工程文件
  • 解决win10下 stlink 无法正常安装问题

    注 xff1a 自己解决问题做的笔记 xff0c 大神勿喷 有不足之处还望不吝赐教 一般win7下装的驱动都没问题 xff0c 但到了win10下问题殊出 大家都知道 xff0c win10是个问题系统 xff0c 还不够完善 xff0c
  • STLink V2烧录SWIM和SWD接口接线图

    stm8 采用SVTP软件烧录 xff0c 烧录接口为SWIM xff08 stlink v2烧录器带有该接口 xff09 xff0c 如下图 xff1a stm32可采用stlink v2 的SWD接口烧录 xff0c 接线图如下 xff
  • Keil4,Keil5下使用STlink II 仿真调试

    1 关闭Keil软件 2 下载以下压缩包STlink II相关文件 xff0c 包含三个文件ST LINKII KEIL dll xff0c StorAcc dll和TOOLS INI 3 将ST LINKII KEIL dll和StorA
  • STLINK CONNECTION ERROR 问题的解决

    打开STLINK UTILITY 连接芯片也连接不上 在settings里面 选择这个连接模式 xff0c 按下芯片复位键的同时 xff0c 点击连接 st link的灯闪烁红蓝相间的光表示连接成功 松开芯片reset xff0c 既连接成
  • ST-LINK烧录stm32程序步骤

    此篇文章记录下STM32使用ST LINK烧录程序的步骤 好兄弟 给个关注呗 材料 ST LINK驱动安装 点我下载st link驱动 提取码 4aw1 安装包有详细教程 stm32f103c8t6 ST LINK 杜邦线 keil5配置
  • STLINK,ST-LINK Utility无法连接单片机

    STLINK ST LINK Utility无法连接单片机 keil ST LINK Utility尝试连接最小系统板 但是无法连接 网上搜了很多教程 偶然看到一位道友说他连接空板子可以 有程序的不行 不知道为什么 因为我的板子之前也下载过
  • Keil 5使用ST-LINK调试STM32程序

    1 下载并安装STM32 ST LINK Utility 含有驱动 2 启动STM32 ST LINK Utility 点击菜单 ST LINK Firmware 更新固件 3 打开Keil工程 设置Debug 4 开始调试
  • 使用STM32CubeMX生成源码工程后,使用ST-LINK下载出现问题的解决方法

    第一次使用STM32CubeMX生成源码工程文件 各种时钟引脚资源配置好后 点击生成了Keil的工程 编译通过 连接ST LINK下载程序 第一次下载 一切正常 然后修改了一下程序 再次下载 出现找不到设备的提示 以为板子出了问题 又拿过来
  • 使用 ST-LINK 烧录程序到 STM32

    前言 之前博主在使用单片机时 烧录程序用的都是串口的方式 最近公司定制了一个工业版单片机目前只支持使用 ST LINK 烧录 因此博主收集了一些资料 并整理了烧录程序的流程用于分享和后期自己回顾 准备工作 准备烧录编程器 博主直接在网上买了

随机推荐

  • ubuntu安装KVM

    ubuntu安装KVM 现在官网下载ubuntu镜像 xff0c 桌面版或者服务端都可 xff0c 这里以桌面端为例 安装之前确保磁盘有足够大的空间 xff08 这很重要 xff09 安装KVM span class token funct
  • Error: GPG check FAILED

    Error GPG check FAILED 这由于源key错误导致的dnf或者yum xff08 软件包管理器 xff09 安装软件失败 解决的方法很简单 xff0c 有些傻逼博客在那边坑人 xff0c 写的一长串解决办法都不能用 xff
  • Ubuntu彻底卸载Python

    1 查看要卸载的Python版本 若要卸载python2 xff0c 则查看命令为 python2 version 若要卸载python3 xff0c 则查看命令为 python3 version 这里我卸载python3 6 2 卸载Py
  • Ubuntu Python链接指向python3

    1 安装python3 7 sudo apt get install python3 7 2 查看python目前的指向 ls l usr bin grep python 3 删除原有的python链接 sudo rm usr bin py
  • ubuntu安装pip3

    1 安装命令 sudo apt get install python3 pip 2 查看pip3的版本以及对应的python版本 pip3 V pip 21 1 1 from usr local lib python3 7 dist pac
  • latex打双引号“ “

    latex中如果用英文输入模式的双引号键入 xff0c 则输出的结果与我们预期的不符合 xff0c 这并不是LaTeX的正确输入方式 34 test 34 输出为 xff1a 正确的输入方式为 xff1a 引号左边输入两个反引号 96 xf
  • 过拟合的原因以及解决办法(深度学习)

    过拟合 xff1a 模型在训练集上表现的非常好 xff0c 但在测试集的数据下表现很差 具体观察loss函数就是 xff0c train loss一直降低 xff0c 而test loss先降低 xff0c 而后随着epoach的增加 xf
  • Linux与MAC共享以及TimeMachine服务器的搭建

    自从添置了MBPR之后 xff0c 就发现使用Samba协议的话 xff0c Linux与MacOS之间传输速度相当不稳定 xff0c 我还一度以为是MBP的无线网卡问题 随后便尝试了一下AFP协议 xff0c 果然效果立现 xff0c 因
  • Python字符串转数字

    默认转换方式 xff1a num 61 int string 把二进制 xff0c 八进制 xff0c 十六进制转化为数字 xff0c python也提供了内置函数 xff0c 非常方便 xff0c 用法分别如下 xff1a num1 61
  • Linux根据进程名字彻底删除所有相关的子进程

    Linux有些时候kill 9进程pid xff0c 进程名字还会出现 xff0c 比如spark提交应用时的SparkSubmit 这是因为当前进程有其它子进程依赖 此时可以根据进程名字彻底删除 xff0c 这里我提供了一份模板 xff1
  • Python中Json文件的写入与读取

    字典写入Json文件 xff0c 代码如下 xff1a import json sparkConfDict 61 39 defaultMaxSplitBytes 39 defaultMaxSplitBytes 39 openCostInBy
  • Python获取当前工作目录以及改变工作目录

    import os print os getcwd 获取并打印当前工作目录 os chdir 34 目标目录 34 修改当前工作目录为目标目录
  • Linux 手动杀VNC进程

    步骤 方法一 1 查VNC进程 span class token function ps span ef span class token operator span span class token function grep span
  • 记录我重新安装ORBSLAM2和PX4的过程

    1 背景 xff1a 今天卸载了Ubuntu16 04 xff0c 重新装了一个Ubuntu18 04 xff0c 成功做完系统之后需要把之前的备份恢复 我的备份比较粗暴 xff0c 就是直接把 home里的文件都先复制到Windows下
  • 【网络干货】最全BGP路由协议技术详解

    一 BGP 的基本概念 自治系统AS xff08 Autonomous System xff09 AS 是指在一个实体管辖下的拥有相同选路策略的 IP 网络 BGP 网络中的每个 AS 都被分配一个唯一的 AS 号 xff0c 用于区分不同
  • Python正则表达式之 - ?: / ?= / ?!

    用圆括号将所有选择项括起来 xff0c 相邻的选择项之间用 分隔 但用圆括号会有一个副作用 xff0c 使相关的匹配会被缓存 xff0c 此时可用 放在第一个选项前来消除这种副作用 其中 是非捕获元之一 xff0c 还有两个非捕获元是 61
  • Python教程:无参装饰器

    一 xff1a 储备知识 1 args xff0c kwargs span class token keyword def span span class token function index span span class token
  • 面向对象:类关系(泛化/实现/依赖/关联/聚合/组合)

    泛化 泛化 xff0c 也称作继承关系 指面向对象中派生类与基类之间的关系 xff0c 一个类 xff08 称为子类 子接口 xff09 继承另外的一个类 xff08 称为父类 父接口 xff09 的功能 指ClassA为ClassB Cl
  • webpack基本概念及使用

    webpack是什么 xff0c 用来干什么 xff1f webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具 xff1b webpack的下载安装 官网文档地址 xff1a https webpack js o
  • stlink制作(OSHW版)

    stlink制作安排 视频在我的B站 工程主页在开源硬件平台 0 项目原由 因为我那个板载stlink的NANO板近期要还给老师了 所以我就没有板子和stlink了 xff0c 但是对于一个stmer来说 xff0c 怎么能没stlink呢