在本节中给出一个最基本的、典型的支持ISP编程的AVR单片机最小系统硬件图。尽管ATmega16的SPI和JTAG口都可以实现ISP在线编程,但采用SPI口实现ISP在线编程是常用的方式,因为这样不会造成AVR单片机的I/O口浪费。
如图2-13以ATmega16芯片构成的AVR单片机最小系统中,并没有考虑如何实现对AVR单片机的编程。如果完全按图2-13完成硬件系统后,要对AVR单片机编程时,就必须将芯片从PCB上取下,放到专用的编程设备上才能将系统的执行代码下载到芯片中,然后再将芯片插回到PCB上,对于系统调试和生产都非常不方便。
图2-20上增加了一个ISP编程下载口,该口的2、3、4、5脚与芯片SPI口的MOSI(PB5)、MISO(PB6)、SCK(PB7)和RESET引脚连接。当需要改动AVR单片机的熔丝位配置,或将编译好的运行代码烧入AVR单片机的FlashROM中时,就不需要将芯片从PCB上取下了。只要将一根简单的编程线插在该编程下载口上,利用PC就可以方便地实现上面的操作了。
如2.6.5中所介绍的,当PC对AVR单片机编程时,需要先将SCK和RESET引脚拉低,使AVR单片机芯片进入SPI编程状态,然后通过SPI口进行下载操作。所以,在设计AVR单片机系统硬件时,可考虑使用SPI口实现ISP的功能。
AVR单片机的PB5、PB6、PB7与编程下载口连接,在编程状态时这3个引脚用于下载操作。编程完成拔掉下载线,芯片进入正常工作后,PB5、PB6、PB7仍可作为普通的I/O口或AVR单片机的SPI口使用,受AVR单片机的控制,这是使用SPI口实现ISP功能的优点之一。需要注意的是,如果系统中使用了这3个引脚,PCB上这3个引脚已经与外围器件连接在一起的情况下,就需要对外围的连接情况进行分析。如果外围连接在上电情况时表现为强上拉或强下拉(最极端的情况为接高电平或GND),那么为了保证AVR单片机的SPI功能正常工作,应该如图2-20所示,串入3个隔离电阻,阻值在2kΩ左右。(www.xing528.com)
图2-20支持ISP编程的最小系统设计
对于不同的AVR单片机芯片,使用SPI方式进行下载编程的硬件连接口,操作命令和时序请参考与该器件相关器件手册中的详细说明,会有所变化(如ATmega128),但基本方式相同。与使用其他类型的单片机(如8051)一样,可以采用专用的写入设备进行编程下载,但AVR单片机提供了更方便的在线(ISP)串行下载的方法,用户只要制作一个简单的带隔离电路的下载线,就可直接使用PC的打印机口实现AVR单片机的Flash、EEPROM以及熔丝配置位进行编程操作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。