cgperson 发表于 2005-7-31 14:58:30

对avr并口和串口下载程序方式有些糊涂

想自己DIY一个AVR的程序下载模块,发现本网站上有好多示例,有并口和串口2种下载方式,研究了



其原理图后有以下不解:



   (1)串口下载方式中,在MAX232后都有一块小容量的MCU,接受RXD和送TXD,SPI口再连到目标MCU的SPI上,想是把PC上位机传来的数据帧转为了AVR的编程时序。

   (2)并口下载方式中,好象不要这个下位机了,直接通过244连到目标MCU的相应的并行编程口上。



   我认为有差别是因为:串口口固定的数据格式,上位机来的数据要经过下位机来转换;并口下载上位机是直接通过并口出编程时序。



   不知道是不是这样?如果是的话,那上位机是否都是并口直接出编程时序?

machao 发表于 2005-8-1 03:19:54

一般所谓的串口下载和并口下载的说法严格讲是不标准的,通常是指使用PC机的何种接口。



你所问的两种下载方式,对于AVR讲实际上都是使用的其本身的SPI串行下载方式。实际上从AVR芯片本身看,它支持4种方式的下载:1。高压并行编程;2。SPI串行编程;3。JTAG串行编程;4。BOOTLOAD自引导编程。其中2、3都属于ISP在线编程,4属于IAP在应用编程。每种方式其使用的编程协议都是不同的,手册中都有说明。4种编程方式中,第2种方式使用最方便,同时大多数AVR都支持,所以使用的最多。



你问的“(2)并口下载方式中,好象不要这个下位机了,直接通过244连到目标MCU的相应的并行(正确为SPI串行口)编程口上。”是直接利用PC的打印口中的4根线,PC机上的程序控制这4根线,直接按照AVR的SPI编程协议将执行代码写入AVR中。244芯片只是其到一个隔离作用,防止操作不当将PC的打印口损坏。这种方式不使用编程器,有244芯片的应该称为“带隔离口的下载线”



你问的“(1)串口下载方式中,在MAX232后都有一块小容量的MCU,接受RXD和送TXD,SPI口再连到目标MCU的SPI上,想是把PC上位机传来的数据帧转为了AVR的编程时序。”基本理解正确。这种方式实际是多了一道工作:PC将数据通过RS232传给编程器(及你说的下位机),编程器上的MCU再按照AVR的SPI编程协议,将执行代码写入到目标AVR中。



ATMEL公司本身不赞成使用所谓的“第2种并口下载方式”,其原因是:1.怕造成PC机打印口的损坏,特别是对于无经验的人。2.PC上的程序对于编程的时序不容易控制,有时快,有时慢,不稳定,可能会造成下载失败。3.PC打印口的电平为5v,而目标板上的系统电压会从1.8v到5v等情况,会造成电平的不匹配,引起下载失败或器件损坏等。一旦发生这些情况,一般人会认为AVR质量不好,影响ATMEL的产品的声誉,所以ATMEL公司本身不推荐直接使用PC下载的方式。



不过,我一直使用“带隔离口的下载线”编程,目前一个公司使用了一年半,共写了近50K的片子(M16、M8),我使用了6年,写过4414、8515、2312、T13、M8、M16、M8515、M8535、M128,同时还写过89S52、89S55、89S51等,贴片、PID都用过,一直正常。

cgperson 发表于 2005-8-1 18:48:50

万分感谢,您比我身边的那些professor们弓虽很多!

HJJourAVR 发表于 2005-8-2 09:56:56

当然弓虽多啦。

也不看看 ATMEL公司 是如何的看重 马老师。

Ryan 发表于 2007-1-4 14:16:56

馬老師能不能把您所用的“带隔离口的下载线”原理圖貼出來我們學學啊?

還想請教馬老師一個問題,就是用PC機的串口下載時所用的下載軟件有哪些呢?不要笑話我,我是新手!

謝謝馬老師了!

daven 发表于 2007-1-6 09:30:18

要实现远程下载,因为只留出RS232接口,可不可以由UART0直接软件通讯升级应用程序,不经过下载线转(SPI)呢???,

draapho 发表于 2007-1-19 23:23:22

楼上的需求属于IAP在应用编程。使用BOOTLOAD自引导编程。

ytusxc 发表于 2009-7-22 14:01:25

长见识了
页: [1]
查看完整版本: 对avr并口和串口下载程序方式有些糊涂