machao 发表于 2006-1-26 14:20:45

AVR的编程方式和调试模式的简单汇总

对AVR的编程方式有:



    高压编程(指某些引脚上需要加高于5V的电压),分成高压并行编程和高压串行编程两种。它是最根本的编程方式,只要芯片没有损坏,就能实现,熔丝位不能封住。缺点,需要专用的编程器(stk500),需要将芯片取下来,需要专用插座等。



    普通串行方式编程,分为ISP和JTAG方式。优点在系统编程,不需要取下芯片(PCB上需留好编程接口)。最合适在生产中使用为ISP方式,因为占用I/O口少,并且可以复用,但不支持ON-CHIP-DEBUG。JTAG支持ON-CHIP-DEBUG。两种编程的缺陷为受熔丝位配置的影响。一旦被熔丝位封住,只能采用解救方式。当然,最彻底的解救是使用高压编程方式解救了。



    采用BOOTLOAD的ISP在系统编程。其实这是一种间接的编程方式。开始的BOOTLOAD程序还是需要先使用上面的编程方式下到芯片中(菲力浦支持ISP的51不同,它的BOOTLOAD在出厂时固化在芯片中的,可以直接使用。两种形式各有特点)。建议有一定经验的工程师使用。



对AVR的调试方式有:



    在板调试(ON-BOARD-DEBUG)。这是传统的方式,不需要主芯片AVR,但需要仿真器支持,如ICE50,太贵了。



    在芯片调试(ON-CHIP-DEBUG)。直接利用主芯片,通过串口将片内情况读出。支持口有JTAG和debugWIRE(单线,利用RESET脚),但ISP不支持调试,只能用于下载。支持工具 AVRICE mkII。



    AVR软件模拟器,采用PC上纯软件方式的模拟仿真。典型软件为ATMEL公司免费的开发平台 AVR Studio,支持汇编级和高级语言的模拟仿真。当然还有其它的软件和开发平台,如BASCOM-AVR、IAR都具备自己的软件模拟器。而ICC、CVAVR需要与AVR Studio配合使用。这也是IAR贵的原因之一。



    个人建议尽量要掌握和使用软件模拟的方式。





   对于引脚少的AVR,如8脚的TINY,为了节省I/O口,一般只支持ISP下载(和BOOTLOAD)和debugWIRE调试。最终方式使用高压串行编程。所以,开始学习AVR,建议使用M16(DIP40),它支持ISP、JTAG、BOOTLOAD,以及比较方便的从板上取下等。



    基本上使用目标板和一条并口下载线(指使用PC的并口,但对AVR还是为ISP方式)能满足基本的学习使用。有条件先配置STK500,然后JTAGICE mkII,最后为ICE50。



    以上的方法以及概念都是最近几年发展起来的。许多改进的51也都或多或少的采用这些技术。而目前在学校中往往教的和学的均为最早的老技术,许多教师因为不从事实际的产品开发,因此他只了解和教一些基本的概念和老方法。但这样学出来的学生却与进入实际工作脱节太大,甚至还会受到框束了,比如,没有硬件仿真器就不会干活了。

aben 发表于 2006-2-9 20:02:59

马老师:

    我曾经用软件仿真,但水平有限,看不出之所以然来?以后可能都麻烦您啦,请别介意!我想买您的书,但前两天专门去深圳,只是找到您的一本书<atmega8原理与应用〉

xiaoluoshan 发表于 2012-10-26 09:05:37

学习了……………………

maxims 发表于 2012-10-26 09:53:47

学习了{:lol:}
页: [1]
查看完整版本: AVR的编程方式和调试模式的简单汇总