原创 加快AVR_ISP的编程速度

2008-1-12 12:35 4580 4 4 分类: MCU/ 嵌入式

    Atmel AVR是一款不错的MCU,特别是其串行编程,非常方便实用。如图为AVR的串行编程原理图,它使用了AVR的SPI功能引脚。


                              2e594c37-ef58-4fd0-81c0-e5cddbcebc42.JPG


    如果芯片由片内振荡器提供时钟,那么就不用在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();


……


abdc4d3e-a74b-4131-8cc7-ad502c43186c.JPG


   


    以Mega48/66/165为例,第3步主要是将熔丝位低位字节的CKDIV8恢复为1,从而MCU运行于8MHZ,比较而言,同时编程5片Mega48的时间由5.5s提高到3.2s.


        3fe324be-ab19-49de-8784-2734c157b677.jpg


 


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条