资讯详情

如何解决单片机下载程序失败的问题

作为单片机开发人员,每天处理我们的工具只有两种,一种是PC机器上的开发环境,如Keil MDK、IAR Embedded Workbench等等;另一个呢,它只不过是一个集程序下载和调试功能于一体的编程器。这个名字很混乱,也可以称为编程器、下载器和模拟器(但我不认为它被称为燃烧器。燃烧器通常用于批量燃烧阶段,可以快速完成芯片批量燃烧)。编程器统称后文。

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

自然是老牌Jlink了;

事实上,拆开市场上常见的东西是很常见的jlink,你可以看到各种各样的板:

这些都是从宝藏上买的,标有正版,永不掉固件jlink,这样的东西在我手里坏了两个。起初,我有耐心找到一个XP系统刷一下固件,但是刷了没几天就又坏了,而且身边的XP是越来越少了,想着再买一个也才几十块,完全没必要浪费这个时间去刷了。当然,很多人喜欢挑战,但是当你的项目很忙的时候,这个时候你的编程器固件掉了,你得跑去找XP给他刷固件,想想都不开心。

有朋友告诉我,我经常要去别的城市出差,调试我的板子,SEGGER原版太贵了,不得不从宝藏买几十元,买一个担心坏延迟,所以每次出差至少带两个,但这个巨大的体积让一个人不开心,出差在极其宝贵的行李空间放两个jlink,也是够了。

也有人抱怨,jlink接口太不方便了。虽然大多数时候只有四五条杜邦线被切断,但他的接口保留了20英尺,其中一只排除了一只脚GND了。做个板子,入股只留几个针,插线调试不好。如果你想留一个和谐,jlink同样的接口会让板子看起来笨重,在一些对尺寸要求严格的产品中,根本没有放下这个20脚接口的空间。

此时,有人提出了解决方案,即以下第二种编程器:

2、ST-LINK

但是仔细看这个并没有解决这个问题JLINK的一些缺点,接口还是笨,体积还是不小。那么万能的某宝上还有一种解决方案;

各种颜色,而且价格相对便宜,大约15元可以做到,尝试买新鲜的尝试,发现很容易使用。身体大小和优秀的盘子一样,出差也很方便。但有一天它突然停止工作,插入电脑后没有反应,经过一系列的诊断,我终于心情沉重地给了它死亡通知。

然后我去买下载器。我不想买太贵的。我想买一个小尺寸的。我想了想。后一次买了三四个这么小的STLINK,我知道他会坏,但一次买几个不怕他坏,几个价格是某个版本jlink价格。

接下来,我无意中发现淘宝上有一个叫做elink的玩意:

3、elink32-pro

这个东西看起来很棒,因为它集成了串口调试,似乎很快,只是我和合泰半导体公司有业务交流,请合泰相关负责人送我一个样品试用,试用效果很好,唯一的缺点是体积太大(和jlink差不多),价格太贵。

那么,是否有可能与合泰达成协议,共同制作编程器(下载器、仿真器、调试器),以满足以下要求?

a、几乎所有32人都能支持ARM-CortexM内核单片机

b、小巧便携

c、不掉固件

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

e、增加虚拟串口功能

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

g、大多数人负担得起低成本

h、即插即用,无需驱动

于是我和合泰的相关人员进行了沟通(这种沟通从16年10月左右开始)。

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

沟通中最具争议的问题之一是RST是否保留引脚。因为我们使用它。stlink,jlink以下问题经常发生:

这个问题可以通过一下方式解决:

然而,通过开发环境配置修改,仍有许多问题无法解决。此时,需要保留RST,然后把RST下载可以在开发板上连接,主要涉及以下使用场景:

1、swd重用引脚(例如STM32F103的PA13和PA14在程序中设置为其他功能),此时需要编程器对开发板进行硬件复位。

2.芯片的工作状态是低功耗或睡眠模式。此时,编程器需要重置开发板的硬件。

因此,最终的讨论结果是根据合泰半导体制造商提供的解决方案,毕竟,他们是半导体制造商,考虑非常严格和完美。

方案定稿后,签订了软件使用合同和保密合同。接下来,合泰提供带固件的芯片。我将进行整体设计和完成PCB具体工作,如设计、焊接调试等。经过一个月的时间,出现了几个样品,经过测试发现使用不方便等问题。例如,第一个想法是直接在板上添加一个usb公共头,然后你可以插入电脑,但后续使用发现,这不是很方便,因为这将导致目标板距离电脑只有杜邦线长度,如果杜邦线太短,移动不太方便,甚至现在一些电脑USB口在后面,不方便用户下载程序后观察现象。如果杜邦线太长,就会不稳定。很多情况下,程序无法下载与杜邦线连接不稳定有关(使用优盘状)STLINK当杜邦线太长或接触不良时,往往会导致下载失败。后来,它可以直接用航空线焊接下载,这表明这种情况stlink的io口驱动能力差)。

考虑到上述缺点,我决定使用最常见的micro-USB线来连接e-Link32和PC机器。所以经过改版,e-Link32变成了以下(手工焊接调试版):

其中白色的SH1.端子和右侧5P弯针都是SWD为什么要添加一个接口?SH1.0端子,因为在某些电路中,保留2.54插针是费空间,插针占用PCB双面影响其他布线。所以增加了SH1.0端接口,以后也可以用这样的端口做板,减少板面积,方便调试。

这个版本e-Link我给了五个人测试,从16年12月开始,到17年8月没有问题,所以我批量了1000个。选择是最可靠的PCB提供商和贴片制造商制作的板材如下:

产品必须有完善的文件。在量产阶段,我还编写了相关文件

淘宝宝贝详情可下载具体文档。具体内容如下:

另一个清晰的阐述elink如何连接开发板和计算机:

以及如何用elink32给带20脚jtag接口开发板下载程序:

可以说,当时提出的需求已经完成,具有以下功能的调试器已经实现:

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

STM32F0,STM32F1,STM32F2,STM32F3,STM32F4,STM32F7

STM32L0,STM32L4

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

K60

HT32F16XX,HT32F52XXX

NV32F100XXX

EFM32XXX

W7500

列表需要改进。

有人提出,有串口的东西已经存在了,所以你可以去看看。互联网上有很多教程教你如何制作这样的下载器。我可以花一两天的时间根据教程完成这样的下载器,但我当然没有勇气批量把它放在市场上供你使用。工具性的东西需要经过长期的稳定性测试和加工过程。这些过程增加了产品的成本,但这是确保用户购买有保证的产品的必要投资。

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

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

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

一个USB完成下载调试串口通信,逐步查看串口数据,为您的计算机节省宝贵的USB口。

标签: 二极管efm

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台