基于STM32的ST LINK V 2-1多功能烧录器制作

基于STM32的ST LINK V 2-1多功能烧录器制作
前 言
根据官方相关文档可知 ST LINK V2-1拥有以下四大功能:
ST LINK V2-1制作教程和资料说明
主空部分原理图(参考):
打样回来的PCB如下:
给ST LINK V2-1下载器烧录固件
1. 在MDK 中升级更新固件
2. 在升级工具中手动操作
测 试
1. 对ST LINK V2-1在MDK中烧录测试:
2. 串口功能测试:
结 语
最 后 附 上 资 料 [ST LINK V2-1固件 以及PCB文件 ](https://download.csdn.net/download/Guard_Byte/85090678)
哔哩哔哩视频: https://www.bilibili.com/video/BV1tt4y1g79q?share_source=copy_web
码云仓库: https://gitee.com/pick-up-light/utility-set
前 言
根据官方相关文档可知 ST LINK V2-1拥有以下四大功能:
ST LINK Debug

Flash Download烧录程序

USB - TTL 串口功能

U盘功能 可拖拽源文件烧录

根据官方给的图纸,本人只是对原理图稍作修改重新规划PCB布局,将愿USB A口更换为 type-C接口,通过数据线延长接入,使用更加灵活。

主控推荐 CBT6,意法半导体 贵的话,可以考虑CKS32和其他国产芯片代替(注意兼容性),试验C8T6也可以使用不过看具体,因为C8T6官方给出为64K,与CBT6属于同一批次,规格相同,因内部封装ID不同,实际就是你买到的C8T6可能有64K的也可能有128K的,只不过平时使用基本没有任何感知,但用软件进行读写测试所得实际大小一致,而在官方软件进行写入或程序烧录时,默认64K,而CBT6是128K。

因为要给STM32烧程序,虽然我的板子上有串口,可以通过ISP模式将编译好的程序烧进开发版,但每次重新进烧录软件(尽管有个下载条件选项叫:当目标文件发生变化时或编程后执行)总觉得麻烦。再说,速度也不如直接在MDK中一键下载来的快,最关键的原因就是,串口它不能仿真啊,Debug功能就没了吧。

以前 ST LINK V2版本的烧录器,存在的问题也挺多,主要某宝大量10几块的,U盘型ST LINK ,本人有有幸买过两个,一个莫名 无法烧录程序,另一个勉强还能用,但其使用主控非,ST官方推荐芯片。拿起手里的,ST LINK V2 U盘模样,但这都要什么年代了,插个杜邦线直接再怼到电脑USB口甚是不方便,时不时还因为手里的ST LINK坏的无法烧录程序而影响创作心情。原因就是第三方芯片做的烧录器,你一个不注意在MDK里弹出来的升级界面中点了个确定,那么 恭喜你 它废了。。。。。

后面在某宝购无意买了一款开源DAP-LINK ,但个人使用后的感受就是:没有ST LINK 稳定,虽然有串口功能,省去了再另外使用 USB转串口工具的麻烦,但是当多次烧录后,会莫名地出现烧录失败的情况,只有重新拔插后先擦除数据后再烧录才行,你受得了?

ST LINK V2-1制作教程和资料说明
主空部分原理图(参考):


打样回来的PCB如下:
购置好材料(bom清单或PCB文件文末会提供)自行焊接,有条件的可以使用焊台,可以使用风枪 但 不太建议使用风枪,因为温度高了的话会烤坏LED灯珠的,当然电烙铁用的 ‘6’ 的也可以用电烙铁,自行想办法,别焊错了元件就行。

给ST LINK V2-1下载器烧录固件
下面的教程的前提是, 你必须有一个SW的下载器(我是用自己还能用的旧版ST LINK V2下载器给焊好的新板子烧固件的),原因就是烧录器嘛就第一次烧固件使用一次,以后再也不用该接口,也就没有将ISP 或串口烧录对应引脚引出。
如果你是用JLINK下载器的,自己去JLINK那边下载hex格式的固件文件,如果你是用DAP下载器的,自己去找野火那边问下怎么烧hex文件,相关教程一搜就有。

解压我提供的资料 打开文件夹后你会看到教程所需得所有文件:
其中ST-LINK_USB_V2_1_Driver 是电脑端ST LINK的驱动程序,如果你电脑已近安装了keil MDK的话就不需要再安装了,若没有,则根据电脑选择安装对应驱动:
ST-LINK Utility文件夹中:
准备好焊好的板子(多功能烧录器)和软件工具后,按照以下方式将ST LINK连接下载器的预留下载端口(如下图),对应接 3V3 , SWDIO, SWCLK以及GND 四根线就行: 顺便强调一下,新焊接的板子一定要检查无短路,焊接正确后再上电测试
有这个东西的话直接对上烧录,没有的话找四根杜邦线暂时焊在板子上,完事后拆了就行。

连接好后 打开STM32 ST-LINK Utility.exe ,先连点击 Target目标 ->Connect 连接,识别出芯片信息后(蓝色字体,包含内存大小等信息),点击File文件 ->open file打开文档 选择ST-LINK V2-1固件 文件夹中的大小为128K的固件进烧录如下图:


然后点击Target -> Vrogram & Verify 烧录即可 (大概3秒烧完)
烧录成功之后,把你的旧版ST LINK拔掉, 然后把制作好的板子的ST LINK 2-1 通过Type-C数据线插入电脑USB口, 在设备管理器出现下面内容即为已经成功烧录了v2.1固件了:
模块接入电脑后 会弹出存储设备接入( U盘功能 ) 如下。当连接上目标芯片时此容量会发生变化,可以通过把编译好的程序文件直接粘贴进去。其中已有的两个文件存放了当前ST LINK V2-1的固件版本信息。

关于固件升级_两种方式: 这款烧录器是根据官方相关文档资料制作,可以直接更新ST 官方固件。

1. 在MDK 中升级更新固件
ST Debug 里面勾选 检查升级 Check version on start 检查版本选项,进行升级更新:


2. 在升级工具中手动操作

当然,烧录的固件 STLINK-V2-1-J28.M18 或STLINK-V2-1-J31.M21 这两个版本,不更新升级也是可以正常使用 的。完了之后就可以仅使用一个ST LINK V2-1并通过一根数据线对你心爱的开发板进行 程序烧录,串口通信 和Debug操作了。

测 试
1. 对ST LINK V2-1在MDK中烧录测试:
打开keil MDK ,我这里随便找了一个STM32F030C8T6的最小系统板进行测认结果如下:

效果:个人使用感觉,下载速度比ST LINK V2和DAP LINK 快了许多许多!,你们可以试试。

2. 串口功能测试:
我这里使用的串口软件工具是正点原子的 XCOM V2.6,和另外一个USB-TTL CH340串口模块 同时打开两个 XCOM,进行 收/发 测试:


结 语
工具制作纯属日常使用遇到问题,一时兴起,找资料,画板子不知不觉间凑齐材料做出来的,完了就根据制作过程随便写了点东西。欢迎感兴趣的小伙伴可以一起交流。
最后是整理的文件包含PCB文件,可直接在嘉立创下单打样。
最 后 附 上 资 料 ST LINK V2-1固件 以及PCB文件
哔哩哔哩视频: https://www.bilibili.com/video/BV1tt4y1g79q?share_source=copy_web
码云仓库: https://gitee.com/pick-up-light/utility-set
————————————————
版权声明:本文为CSDN博主「Guard_Byte」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Guard_Byte/article/details/124008023

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区 域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 3)SRAM = 芯片内置的RAM区,就是内存啦。            在每个STM32芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表: BOOT1=x   BOOT0=0   从用户闪存启动,这是正常的工作模式。 BOOT1=0   BOOT0=1   从系统存储器启动,这种模式启动的程序功能由厂家设置。 BOOT1=1   BOOT0=1   从内置SRAM启动,这种模式可以用于调试。         在系统复位后, SYSCLK的第4个上升沿, BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。         在从待机模式退出时, BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持为需要的启动配置。在启动延迟之后, CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。        因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。 Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。 STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。         根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问: ● 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问, 0x0000 0000 或 0x0800 0000。 ● 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。(可用于串口下载) ● 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。 注意: 当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从新映射向量表之SRAM中。 ————————————————
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值