电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

加快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.

       

 

 

 

博主
b275@163.com
ADT(先进驱动科技) for the lovely World!
一些有趣的、有挑战性的电机驱动技术话题, 一些感悟! adt3@tom.com QQ: 149 2322 292
点击跳转