你说的我知道,是AT系列的,支持USB-ISP下载,接口和AVR的ISP是一样的,用mega8做的,STC用的是串口下载,能用到你的232,但是下载过程比较麻烦,开电源关电源的。你要是要的话我有51的USB下载线,AVR的USB-ISP,和AT通吃的USB-ISP的原理图驱动程序和固件,免费给你提供哦,邮箱请求就OK:yangfei0508@163com加分哦
STC的芯片在上电后首先进入BOOT段程序,如果不需要下载,在等待了很小一段时间后就进入的应用程序段,也就是你写的程序。
下载过程是这样的,STC的ISP程序发出一段特殊的字符串(具体数据我忘了),单片机如果这时候正在BOOT段里等待,那它就会应答一串握手数据,这时候单片机和ISP程序就连起来了,之后是下载程序的大小等数据的信息传递。接下来,ISP将需要下载的程序分割成一个一个块传给单片机,单片机一个一个接收并写到FLASH中。当最后一个块结束后,单片机就会重启,如果没有再进入下载过程的话,很小一段时间后就进入的应用程序段。
其实,下载的关键是ISP程序,只需要买个USB转串口的通用工具就可以了,不需要自制。另外,俗称的串口就是232。
一般串行下载分两种:
1、ISP:在系统编程,一般目标芯片内包含了专用的接口电路,上位机发送编程命令码及编程控制信息后由芯片硬件自动完成编程。比如通过JTAG口升级就是其中的一种,现在推出的许多新的芯片比如ARM都采用此模式。ATMEL公司的AT89S5x系列的单片机的下载模式虽然不属于JTAG模式,但很类似,应该属于ISP类。
2、IAP:一般叫做在应用编程。MCS-51系列单片机中采用比较多的sst、stc两家公司的单片机就属于这种模式,与上面的模式是有区别的。
下面重点介绍一下IAP的工作流程:
以SST公司的89E564为例:FLASH分为2块,一块64K,就是我们应用程序要使用的程序空间;另一块是8K,现在出厂时一般都预置了自编程的软件代码,这部分代码与上位机的下载软件通讯,获取机器码内容,然后实现对64K的编程 *** 作。这8K的软件用的不是专门的指令,都是51系列标准的指令,只是增加了一些特殊功能寄存器用于实现自编程。
芯片上电启动后,程序首先在8K的程序空间中运行(其实此时相当于89C52芯片),程序主要工作流程如下:
第一步、首先检测串口有无上位机传递过来的编程命令,有的话应答,然后开始自编程 *** 作,编程结束后重新启动;
第二步、如果串口没有编程命令,则检测64K区是否存在有效的机器码。如果有则跳转到64K区正式开始执行应用程序,否则会在8K区中等待,准备接收上位机传送过来的编程命令。
对64K区的编程 *** 作,8k区中的软件只要将其代码从串口接收过来,送到相应的寄存器中,按照要求循环编程就可以了。所以这部分软件是可以修改的,比如某种设备有IC卡接口,就可以修改这8K的程序,实现通过IC卡升级软件的功能,只是这种方式第一次烧写时需要编程器,将8K区的出厂预装程序换成用户自己需要的升级程序。
归纳一下二者:
ISP编程属于纯硬件 *** 作,只要FLASH的物理特性未损坏,就可以实现串口升级,但升级模式是固定的。
IAP模式属于属于软件 *** 作,如果8K区并无物理损坏但软件有问题,就只能使用编程器来编程,无法实现串口升级。但正是由于这种可更改性,可以扩展多种升级方式,更灵活。其实物理损坏的可能性不大,所以我个人认为还是IAP更好些。
那就说得通俗一点,不搞那么专业吧。
BT就是电脑点对点传,比如我的电脑有部**,我做种子,让你下载,这是相当于在我的电脑直接传文件给你,你下载完后你也是一个种子,第三人下载就从我们2个点下载,速度当然快很多。如果我这个原种子不在线,你却在线,那么这部**的下载链接还是有效的,可以从你的电脑传文件。
人越多,种子越多,速度也就越快。上传速度都是有限制的,也许只占用一点宽带,但是下载的人不一定用到你的这个种子。怕浪费宽带就关了BT下载器。
烧写器,就是以前常说的编程器,利用较高电压将程序烧录到单片机里,比如AT89C51,8751之类的单片机只能用编程器(烧录器)来写入程序。下载器一般利用单片机的串口(有的用JTAG)将程序下载到单片机,需要单片机支持才行。
以上就是关于我是单片机的初学者,想自制一个基于ISP的89S52单片机的下载器,谁能给个原理图或是PCB非常感激。全部的内容,包括:我是单片机的初学者,想自制一个基于ISP的89S52单片机的下载器,谁能给个原理图或是PCB非常感激。、51单片机有个问题一直不懂,就是STC89C51的程序是怎么烧到芯片里面的 现在市面上的下载器的原理是什么、麻烦问下单片机串口下载的原理是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)