烧录文件

编程器就是工具,在进行单片机开发时,你可以编程写了许多代码,只要执行此代码,单片机便依你的指示工作了,但如何将这些代码(或数据)写进单片机内,这就用到编程器了。简单来说:编程器就是代码烧写工具。它既可将代码写进单片机内,也可将代码从单片机内读出(加密情况除外)。

烧写器也叫烧录器、编程器。在台湾,烧写器也叫烧录器;在大陆,客户之所以叫它为“编程器”,是因为现在英文名为PROGRAMMER,这个英文名与一般编写软件程式的设计师同名,所以就叫“编程器”。烧写器实际上是一个把可编程的集成电路写上数据的工具。烧录器主要用于单片机(含嵌入式)/存储器(含BIOS)之类的芯片的编程(或称刷写)。

烧写器在功能上可分万用型烧写器、量产型烧写器、专用型烧写器。专用型烧写器价格最低,适用芯片种类较少,适合以某一种或者某一类专用芯片编程的需要,例如仅仅需要对PIC系列编程。全功能通用型一般能够涵盖几乎(不是全部)所有当前需要编程的芯片,由于设计麻烦,成本较高,限制了销量,最终售价极高,适合需要对很多种芯片进行编程的情况。烧写器的英文名为PROGRAMMER,有人叫WRITER,更早期有人叫BURNER,这种机器是用来烧写〔PROGRAM〕一种称为可烧写的IC〔PROGRAMABLE IC〕,可烧写这些IC内部的CELL〔细胞〕资料,造成不同的功能,以前的IC大部份都是固定功能的IC〔DEDICATED ID〕,所以设计者若设计一片电路板必须用上多种不同的固定功能的IC,对大量生产者需准备很多类型的IC,自从可烧录的IC出现后,设计者只要准备一种IC便可把它烧录成不同功能的IC,备料者只采购一种IC即可,备料方便,但须准备烧写器去烧录它。

烧写方式有以下三种:

1. 把单片机当做一个ROM芯片,早期的单片机都是如此。将单片机放在通用编程上编程时,就像给28C256这样的ROM中写程序的过程一样。只是不同的单片机使用的端口,编程用的时序不一样。

2. 像AT89S52或AVR单片机一样,在单片机上有SPI接口,这时用专用的下载线将程序烧写到单片机中。这时不同的是,单片机的CPU除了执行单片机本身的指令之外,还能执行对ROM进行操作的特殊指令,如ROM擦除、烧写和校验指令。在编程ROM时,下载线先通过传输这些指令给CPU执行(擦除ROM、读入数据、烧写ROM、和校验ROM),这样完成对单片机的ROM的烧写。此外,现在普遍使用的JTAG仿真器也是这样,单片机的CPU能执行JTAG的特殊指令,完成对ROM的烧写操作。

3. 引导程序,即单片机中已经存在了一个烧写程序。启动单片机时首先运行这程序,程序判断端口状态,如果符合“要烧写ROM”的状态存在,就从某个端口(串口、SPI等等)读取数据,然后写入到单片机的ROM中。如果没有“要烧写ROM”的状态,就转到用户的程序开始执行。像AVR单片机的bootloader方式、STC的串口下载方式,还有其他单片机的串口编程等等都是这样。

现在大部分都是第三种的,所以如果你想要自己造一个烧写器,你就必须知道bootloader中是怎么握手的,也就是相关的握手协议,这样才能实现程序烧录。早期有人研究过“XTC”的握手协议,你可以百度看看。

来源:电子发烧友网

围观 664

在线烧录因集烧录测试一体的优势受到众多用户喜爱,但却往往因连接工装,夹具导致接线过长,进而增加不稳定性和烧录不良率,这究竟要如何改善呢?

1. 增加屏蔽层,防止电磁干扰、静电干扰

编程器作为一款与芯片密切通讯的工具,对电磁干扰较为敏感。烧录环境一般为工厂车间,大功率的设备,使得电磁干扰较为严重,为了降低电磁干扰,我们可以在烧录线上增加屏蔽网,或者选择屏蔽功能的线,如屏蔽电缆,网线等,另外操作时最好穿戴静电手套,以防止静电干扰。

2. 选择导电能力强的线

信号传输的完整性与线的材质、长度、粗细有关,可以选择更粗的,导电能力更强的线,好的材质可以减少内阻,降低信号损耗,如纯铜线、镀金线、镀银线等。

芯片烧录不稳定?可能你忽略了这些
图:金属电阻率

3. 降低通讯频率

通讯频率是信息传输的重要参数,频率越高传输速度越快,但信号的衰减会随着频率的增加而增加,并且随着传输距离的增加而迅速衰弱,因此接线较长时,可以适当的降低通讯频率,以增加通讯的稳定性。

4. 在关键信号线上接上拉或下拉电阻

有些芯片的编程接口,本身驱动能力较弱,需要在接口上加适当的上拉或下拉电阻,以增强驱动能力,如IIC、SWIM接口需要在数据线上接强上拉电阻,汽车钥匙芯片PCF79xx、NCF29xx等需要在时钟线上接下拉电阻等等。

5. 选择驱动能力强的编程器

编程器管脚的驱动能力,将直接影响接线的长度,市面上的一些支持在线的编程器,直接引出内部控制芯片的IO口或FPGA的管脚作为编程信号的输入与输出,其驱动能力较弱,当用户的接线比较长(一般大于30cm)时,就会出现信号失真,导致编程不稳定。

转自: ZLG致远电子

围观 299

前言

一般芯片开发过程中,存在 Bin 文件的拼接过程,比如在做 IAP 程序+用户程序过程中,最终烧写 bin 文件或 hex 文件需要将两个或者三个单独编译通过的程序拼接在一起作为最终烧录文件,本文就如何操作做详细说明。

示例案例

使用芯片为 STM32F030R8T6,IAP_Boot.bin 是程序 IAP 程序编译后生成的 bin 文件,地址在 0x0800 0000 ~ 0x0800 1FFF;APP.bin 是客户运行程序,地址在 0x0800 2000 ~ 0x0800 FFFF;而整个 Flash 空间将会是 0x0800 0000 ~ 0x0800 FFFF;

具体操作

下载任意一款支持 STM32F030 芯片烧录的烧写器 PC 软件,比如 raisonance,segger,hilosystems 等等,可根据自身所使用的量产烧写器型号进行选择,这边举例如果客户使用了 Xeltek 烧写器,其他厂商的操作大体相同。

在 xeltek 官网下载下载器的 PC 软件,www.xeltek.com

安装后打开,选择芯片型号。

用于量产烧录的拼接 Bin 文件操作

打开 IAP_Boot.bin 文件

用于量产烧录的拼接 Bin 文件操作

然后再打开 APP.bin 文件,操作注意选择地址以及不可覆盖选项

用于量产烧录的拼接 Bin 文件操作

察看拼接是否成功

会在 Buffer 中看到地址 0x0000 0000 存入的是 IAP_Boot.bin 的内容,在地址 0x0000 2000 地址上存入的是 APP.bin 文件中内容,此时即拼接成功。

用于量产烧录的拼接 Bin 文件操作用于量产烧录的拼接 Bin 文件操作

保存拼接后的文件
注意选择数据大小,生成最终量产烧写文件 Com.bin

用于量产烧录的拼接 Bin 文件操作

总结

通过上面的操作,即可生成对应的拼接文件,同样如果是几个文件的拼接也可以相同进行操作,拼接后的 bin 文件可以通过量产烧写器进行自动下载操作。

来源: ST

围观 885
订阅 RSS - 烧录文件