STM32单片机在Keil5下仿真的问题攻克

2022-06-01     大方老师单片机

原标题:STM32单片机在Keil5下仿真的问题攻克

STM32单片机Keil5下仿真的问题攻克

\\\插播一条:文章末尾有惊喜~///

作为一个单片机开发人员,每天跟我们打交道的工具没非两种,一种PC机上的开发环境,假Keil MDKIAR Embedded Workbench等等;而另外一种呢,没非就是集程序下载、调试功能于一体的编程器、这个叫法比较混乱、也能够叫编程器、下载器、仿真器(但我认为不叫烧录器,烧录器一般值批量烧录阶段所用的那种能够快捷完成芯片批量烧录的玩意)。后文统称编程器。

常见的编程器有以下几种:

1、自然是老Jlink;

其实拆开市面上常见jlink,能够看到各种各样的板子:

这都是从某宝上买的,标注着正版、永不掉固件jlink,这样的东西在我手里坏2个,一初始我还有毅力去找XP系统刷一下固件,但是刷了没几天就又坏了,而且身边XP是越来越少了,想着再买一个也才几十块,完全没必要浪费这个时长去刷了。当然很多人喜爱动手挑战一下,但是当你的项目忙的不可开交,而这个时候你的编程器固件掉了,你还要跑去找XP给他刷固件,想想都不爽。

有朋友告诉我,自己经常要去其他城市出差,调试自己的板子SEGGER的原版太贵,只好从某宝买几十块的用,而且买一个又担忧坏了耽搁事,所以每次出差至少都带两个,然而这个硕大的体积是在让人不爽,出差的时候要在极其宝贵的行李空间里放两jlink,也是够了。

也有人埋怨jlink的接口太不方便了,虽然大多数时候调试的时候,只用了四五根杜邦线截出来,然而他的接口却保留20脚,其中有一整排除了一个脚全GND了。做个板子,入股只留几个排针,那样不好插线调试,假如想留一个jlink一样的接口,又觉得会显得板子笨重,而且在一些对尺寸有严格要求的产品里,压根没有空间放下这20脚的接口。

这时候有人提出了攻克方案,也就是下文的第二种编程器:

2ST-LINK

可是仔细看看这个并没有攻JLINK的一些缺少点,接口还是笨,体积还是不小。那么万能的某宝上还有一种攻克方;

各种各样的颜色,而且价格比较便宜,十五块左右就能搞到,尝鲜买个试试,发现挺好用。和优盘一样大小的身板,出差带着也方便。但是某一天它忽然不工作了,插上之后电脑没有人任何反应,我经过一系列的诊断,最后怀着沉重的心情给它下了死亡通知书。

然后再去买下载器,我又不想买太贵的,又想买个小体积的,想来想去,最终一次买了三四个这种小STLINK,我知道他会坏,但是一次买好几个就不怕他坏了,而且好几个的价格也就是一个某版jlink价格。

接下来没意发现了淘宝上有一款叫elink的玩意:

3elink32-pro

这个东西看起来很棒,由于它集成了串口调试,而且貌似速度很快,正好我和合泰半导体这个公司有业务往来,就请合泰的相关负责人寄我一个样品试用,试用效果很棒,唯二的缺少点就是体积太大(jlink差不多)、价格太贵。

那么有没有可能和合泰达成一个协议,共有作出一款合乎以下需求的编程器(下载器、仿真器、调试器)呢?

a、能支持简直所32ARM-CortexM内核单片机

b、小巧便携

c、不掉固件

d、去掉多余接口,只保swd

e、增加虚拟串口功能

f、可对外供电、电流过大自动切断

g、低老本,大多数人买得起

h、没需驱动,即插即用

于是我和合泰的相关人员进行沟通(这个沟通大略1610月初始的)。

经过屡次沟通,最终确定:elink32-pro为原型,去掉一些没用的东西、增加相关功能、由合泰半导体提供固件,我提供硬件及出产。

沟通中争议最多的一个问题RST引脚是否保留。由于我们使stlinkjlink等时经常会发生以下问题:

这个问题能够通过一下方式攻克:

但是还有很多问题是通过开发环境配置修改所不能攻克的,这时候就须要保RST,然后RST接在开发板上,就能完成下载,这个功能主要是波及以下几种使用场景:

1swd引脚复用(例STM32F103PA13PA14在程序中被设置为其他功能),这时候须要编程器能对开发板进行硬件复位。

2、芯片工作状态为低功耗或者睡眠模式,这时候须要编程器能对开发板进行硬件复位。

所以最终探讨结果是依照合泰半导体厂商提供的方案来,毕竟他们是半导体厂商,考虑问题很严谨、完善。

方案定稿之后,签订了软件使用合同与保密合同,接下来是合泰提供带固件的芯片,我来做整体设计并完PCB设计、焊接调试等详细的工作。经过一个月的时长、出了几个样品,经过测试发现使用不顺手,等各种问题。假如第一次构思的是直接在板子上加一usb公头,然后就能够插在电脑上了,但是后续使用发现,这样不是很方便,由于这样的话就会导致宗旨板距离电脑独有杜邦线长度的距离,假如杜邦线太短,挪动不太方便,甚至此时有些电脑USB口在后面,这样不方便用户下载程序后观察现象。而杜邦线太长则会不稳定,很多情况下,程序没法下载是与杜邦线连接不稳定有关系的(在使用优盘状STLINK时,经常由于杜邦线太长或者接触不良导致下载失败,后来换成航空线直接焊接上去就能够下载,说明这stlinkio口驱动才能欠佳)。

考虑以上的缺少点,我决定使用此时最常见micro-USB线来连e-Link32PC机。于是经过改版e-Link32变成了下面这样(手工焊接调试版):

其中白色SH1.0端子和右侧5P弯针都SWD接口。为啥要增加一SH1.0端子呢,由于在有些电路里,保2.54的插针都是对空间的浪费,而且插针是要占PCB的双面,对其他布线造成了影响。所以增加SH1.0端子接口,以后大家做板也能够使用这样的端口、减小板子面积,方便调试。

这个版e-Link32我赠送给五个人进行测试,大略是1612月份初始测试的、178月份没有人任何问题,所以我才批量1000个。选用的是最可靠PCB提供商和贴片厂商,做出的板子如下:

一个产品必需有完善的文档。在量产的阶段我也进行了相关文档的编写

详细文档能够在淘宝宝贝详情下载。大略详细内容如下:

另外清晰的阐述elink32如何连接开发板和电脑:

以及如何elink3220jtag接口的开发板下载程序:

此时能够说完成了当时提出的这个需求,实现了具有以下功能的调试器:

经测试,可用于但不局限于以下芯片的调试:

STM32F0,STM32F1,STM32F2,STM32F3,STM32F4STM32F7

STM32L0STM32L4

LPC800XX,LPC1100XXX,LPC1200XXX,LPC1300XXX,LPC1500XXX,LPC1700XXX,LPC1800XXX,LPC4000XXX,LPC4300XXX,LPC5400XXX,

K60

HT32F16XX,HT32F52XXX

NV32F100XXX

EFM32XXX

W7500

NXP iMX RT1052系列

列表有待完善。

有人提出了:带串口的东西其实早有了,那么你能够去看看,网络上也有很多教程教大家做这样的下载器的,我能够花一两天时长依据教程完成这么一个下载器,但我肯定没有勇气把他批量了放在市场上给大家用。一款工具性的东西须要经过长期的稳定性测试、还须要对加工工艺进行测试、这些流程都增加了产品的老本,但是却是保证用户买到有保证的产品的一个必需的投入。

委托西安某军工企业进行了温冲测试与高低温测试。

兼容市面上绝大多ARM Cortex-M系列单片机。

500ma3.3v对外供电电流,加自恢复二极管保驾护航。

半导体原厂提供固件与技术支持。

如何使用串口来STM32下载程序

转自如何使用串口来STM32下载程 - whik -博客 (cnblogs.com)如侵权,联络删!!前言第一次进STM32的时候,不知道有调试器这个东西,所以一直是通过串口来STM32下载程序?

静水流深

如何了STM32单片机引脚的复用功能?

北岛李工发表于单片机与...

STM32单片机的启动过程

STM32单片机的启动过程分享这篇文章,谈一 STM32启动流程。假如读者朋友已经有过汇编相关根底,能够够好了解本文内容。汇编语言是C语言更接近机器底层的编程语言,能让我们更好的了解?

一个发表于亿配芯城...

彩蛋:最近有同学跟我要单片机的资料,我特意花几个月时间,总结了我10年产品研发经验,资料包几乎覆盖C语言、单片机、模电数电、原理图PCB设计、单片机高级编程等等,非常适合初学者入门和进阶。除此以外,再含泪分享我压箱底22个热门开源项目,包含源+原理+PCB+说明文档,不是市面上打包卖的那种课程,我认为教程多未必是好事10年前我自学快,除了自身执行力以外,还有就是教程少。不要害羞做伸手党,等你一个小红点。后期我也会组建一些纯技术交流的小圈子,让大家能认识更多的大佬,有个好的圈子,你对行业的认知一定是最前沿的。

文章来源: https://twgreatdaily.com/zh-hans/f18f6e56a96da8cd243ff47aa1e51818.html