跳转到主要内容

ISP

关于ISP、IAP、DFU和bootloader

judy /

这是嵌入式开发中常用的几个专业术语,其诞生的背景和其具体作用大概如下

在很久很久以前,那是8051单片机流行的时代,做单片机开发都需要一个专用工具,就是单片机的编程器,或者叫烧写器。说“烧”写一点不为过,当年的经典芯片AT89C51在编程时需要十几伏的高电压,加在一个特定的引脚上,才能进入编程。对于某款芯片的编程,都有一个特定的时序,这个时序通常在芯片的datasheet里进行描述并以硬件实现。另外在编程器里的也有一个MCU,这其中使用软件产生这个时序,从而对目标芯片进行编程。电脑通过串口把程序发到编程器,编程器按照规定的时序把程序送入目标芯片。

但是这种编程模式有几个问题,首先就是需要为特定的芯片购买特定的编程器。这种编程器通常比较昂贵,且只能用于特定型号的MCU. 对于企业来说,编程器的成本算不了什么,但更大的问题是,编程时我们必须把待编程的芯片从产品上拆下来,插到编程器上,编程后再安装回产品中。这种方法对于双列直插式的芯片也许是可行的。但对于现在日益流行的表面贴装技术是很不可行的,尤其是BGA封装的芯片,通常需要专业设备才能拆卸,拆下后需要重新植球才能焊接。。。为了更新固件而将其从高密度的PCB板上拆下来,是非常不可行的。

基于STC单片机的ISP下载线设计

judy /

本文首先介绍了在线编程技术,然后给出了基于两种下载线设计电路,最后阐述了的性能特点。实践表明:本设计具有低成本、高灵活性,对单片机爱好者,尤其是初学者,具有很强的实用价值。

<strong>一、ISP技术</strong>

在单片机的实际应用中,往往要求系统能够脱机运行,这就要求必须将用户程序代码固化到非易失性的程序存储器中。把用户程序代码固化到程序存储器的过程称为编程。传统对程序存储器的编程是通过编程器完成的,用户需要将单片机从目标板上取下来放到编程器上,然后通过烧写软件将程序代码固化到程序存储器中,这种编程方式通常称为脱机烧写(也叫离线编程)。但随着芯片制造工艺的不断提高,贴片式封装得到快速发展,这就使得单片机不可能轻易取下来放到编程器上。目前普遍采用ISP技术,这种编程方式不用费劲把单片机从目标板上取下来,而是通过单片机上的相关接口就可以直接将编好的程序代码固化到程序存储器中,对于STC单片机,用的是它的UART接口,也就是串行口:对于AT89S51单片机,用的是它的SPI接口,接口标准不同,涉及的引脚和下载电路也就不同。本文介绍STC单片机的ISP下载电路。

<strong>二、串口ISP下载线设计</strong>

单片机ISP、IAP和ICP几种烧录方式的区别

judy /

ISP:In System Programing,在系统编程

IAP:In applicating Programing,在应用编程

ICP:In Circuit Programing,在电路编程

ISP是指可以在板级上进行编程,也就是不用拆芯片下来,写的是整个程序,一般是通过ISP接口线来写。

IAP虽然同样也是在板级上进行编程,但是是自已对自已进行编程,在应用中进行编程,也即可以只是更改某一部分而不影响系统的其它部分,另外接口程序是自已写的,这样可以进行远程升级而不影响应用。

打个比喻吧:

1、ISP是把房子拆了再重造一间,那么在造好之前当然是不能住人的啦!

2、IAP是在造好的房子里边进行一些装修,当然人可以继续住啦!

ICP是在电路编程,是LPC芯片的编程方式,相当于ATMEL的ISP,而LPC的ISP就相当于ATMEL的IAP了。

<strong>ISP于IAP的区别</strong>

ISP:in system programming, 在系统编程

IAP: in applicatin programming 在应用编程

但两者的操作方式,结果和应用场合有什么区别

关于MCU-ISP和ICP的区别

Lee_ /

对Flash-based的MCU来说, ISP和ICP几乎是不可或缺的功能, 但我们经常被这两个功能搞混, 究竟他们的差别在哪里? 对客户的意义又是什么?在这里, 和大家分享并澄清一些观念, 希望对大家有所帮助, 进而解答来自客户关于ISP与ICP的疑问.

<strong>1)在开发阶段</strong>
改code时, 不再需要将MCU从板子上拔起来, 拿到烧录器上烧, 然后再装回去. 可以直接利用ISP/ICP Programmer做板上烧录, 为开发者提供了极大的便利性.

<strong>2)在量产阶段</strong>
客户可以采用”先焊到板子上再烧code”的方式, 将烧code的动作安排在生产线的某一站.

那么传统的方式 (先将code烧好再焊到板子上)有什么缺点?

传统的方式是这样的: 拆封-->从tray盘取出chip-->烧录-->把chip放回tray盘.

这样的流程比起上面建议的方式: 增加了烧录时间, 容易造成QFP包装的chip弯脚, 或忘了烧code即放回tray盘.

关于MCU-ISP和ICP的区别

kelly /

对Flash-based的MCU来说,ISP和ICP几乎是不可或缺的功能。但我们经常被这两个功能搞混,究竟他们的差别在哪里?对客户的意义又是什么?在这里,和大家分享并澄清一些观念,希望对大家有所帮助,进而解答来自客户关于ISP与ICP的疑问。

<strong>1)在开发阶段</strong>

改code时,不再需要将MCU从板子上拔起来,拿到烧录器上烧,然后再装回去。可以直接利用ISP/ICP Programmer做板上烧录,为开发者提供了极大的便利性。

<strong>2)在量产阶段</strong>

客户可以采用“先焊到板子上再烧code”的方式,将烧code的动作安排在生产线的某一站。

那么传统的方式(先将code烧好再焊到板子上)有什么缺点?

传统的方式是这样的:拆封-->从tray盘取出chip-->烧录-->把chip放回tray盘。

这样的流程比起上面建议的方式:增加了烧录时间,容易造成QFP包装的chip弯脚,或忘了烧code即放回tray盘。

<strong>3)在成品阶段</strong>

【下载】ISP下载工具包

kelly /

串口烧录PC端软件使用说明

1. 当您加压文件包后将得到以下文件

<center><img src="http://mm32.eetrend.com/files/2016-09/wen_zhang_/100002802-9164-1.png&q…; alt=""></center>

2. 点击PC_ISP.exe 打开烧录软件,界面如下:

<center><img src="http://mm32.eetrend.com/files/2016-09/wen_zhang_/100002802-9165-2.png&q…; alt=""></center>