EDN首页   博客首页

日志档案

发表于 2008-1-12 12:35:49

1

标签: AVR  MCU  单片机  编程器  

加快AVR_ISP的编程速度

    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.

       

 

 

 

系统分类: 单片机   |   用户分类: AVR   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(633)    回复(0)  

投一票您将和博主都有获奖机会!