Atmel AVR是一款不错的MCU,特别是其串行编程,非常方便实用。如图为AVR的串行编程原理图,它使用了AVR的SPI功能引脚。
如果芯片由片内振荡器提供时钟,那么就不用在XTAL1 引脚上连接时钟源。而对于大多数的AVR MCU来说,其内部OSC都具备而且正在被使用。
ISP的速度受到在XTAL1 引脚上连接的时钟源或内部OSC的约束,串行时钟(SCK) 的最小低电平时间和最小高电平时间要满足如下要求:
低:> fck < 12 MHz 时为2 个CPU 时钟周期, fck >= 12 MHz 时为3 个CPU 时钟周期。
高:> fck < 12 MHz 时为2 个CPU 时钟周期, fck >= 12 MHz 时为3 个CPU 时钟周期。
当然,提高外部XTAL1 引脚上连接的时钟源对于加快编程速度是有益的,如果编程使用的是AVR的内部OSC,采用如下方法可以加快编程速度:
1:进入编程模式;
2:擦除芯片;
3:编程熔丝位,使AVR的OSC为最高速度;
4:退出编程模式;
5:重新进入编程模式;
6:FLASH编程;
7:编程熔丝位及锁定位;
8:退出编程模式。
……
program_enable_pro();
device_id_pro();
chip_erase_pro();
fuse_fast_pro();
program_over_pro();
program_enable_once_more_pro();
down_load_pro();
eeprom_write_pro();
fuse_pro();
protect_pro();
program_over_pro();
……
以Mega48/66/165为例,第3步主要是将熔丝位低位字节的CKDIV8恢复为1,从而MCU运行于8MHZ,比较而言,同时编程5片Mega48的时间由5.5s提高到3.2s.
文章评论(0条评论)
登录后参与讨论