arduino教程系列25-给ATmega8使用新版arduino bootloader

arduino uno相对于duemilanove的一个显著变化就是其bootloader,uno使用了新版的bootloader后,同样是328P芯片,使用空间有32256字节,而duemilanove只有30720字节。



新版的bootloader叫做Optiboot,是国外某位大侠觉得老版bootloader太过古董了,小宇宙爆发,就写了出来。。。



新版bootloader的主要特点

1,可用空间大了,比起原来2K的体积,减少了接近1.5KB。(对于NG的古董bootloader也缩小了0.5K)

2,上传程序速度更快,新版的bootloader波特率是115200。

3,对代码进行了优化,提高了运行效率,而且无看门狗问题。

4,支持使用ATMEGA8 168 328芯片的arduino,未来可能会支持更多芯片。



可是现在的arduino IDE中,不管是ng,nano等老于uno的板子,还是一成不变的默认下载老bootloader,跟不上时代了。



自己动手丰衣足食,先解决最古董的ATmega8芯片,其他的就好说了。

先到http://code.google.com/p/optiboot/下载回来最新版本的optiboot。



以arduino 0022为例,为了更接近官方的那么简单的下载方法,我们先把解压缩出来的两个文件optiboot_atmega8.hex与optiboot_atmega8.lst放入

arduino-0022\hardware\arduino\bootloaders\optiboot中。


Snap12.jpg

2011-11-9 16:05 上传
(219.27 KB)





然后打开arduino-0022\hardware\arduino\boards.txt文件,在文件末尾下上下面代码。

##############################################################

opti8.name=Arduino Optiboot8
opti8.upload.protocol=stk500
opti8.upload.maximum_size=7680
opti8.upload.speed=115200
opti8.bootloader.low_fuses=0xbf
opti8.bootloader.high_fuses=0xcc
opti8.bootloader.path=optiboot
opti8.bootloader.file=optiboot_atmega8.hex
opti8.bootloader.unlock_bits=0x3F
opti8.bootloader.lock_bits=0x0F
opti8.build.mcu=atmega8
opti8.build.f_cpu=16000000L
opti8.build.core=arduino


重新启动arduino IDE,就可以在Board菜单中,看到新的板子Arduino Optiboot8了。



补充:1.0 IDE使用的boards代码ARDUINO

##############################################################
 
opti8.name=Arduino Optiboot8
opti8.upload.protocol=stk500
opti8.upload.maximum_size=7680
opti8.upload.speed=115200
opti8.bootloader.low_fuses=0xbf
opti8.bootloader.high_fuses=0xcc
opti8.bootloader.path=optiboot
opti8.bootloader.file=optiboot_atmega8.hex
opti8.bootloader.unlock_bits=0x3F
opti8.bootloader.lock_bits=0x0F
opti8.build.mcu=atmega8
opti8.build.f_cpu=16000000L
opti8.build.core=arduino
opti8.build.variant=standard
 
##############################################################

Snap15.jpg

2011-11-9 16:05 上传
(124.96 KB)





我为了方便,用arduino duemilanove作为载体,给ATmega8下载bootloader,接线图如下,大家通过其他方法也都可以的。


IMGP5685_调整大小.JPG

2011-11-9 16:05 上传
(110.83 KB)





我是用的是USBtinyISP,所以就在菜单中按照这个点击,开始下载bootloader。


Snap16.jpg

2011-11-9 16:05 上传
(74.95 KB)





同样是USBtinyISP,还可以使用avrdude gui进行下载,这种下载方式,对于下载器的支持更多。arduino的IDE也是avrdude下载的。



打开avrdude gui,以ATmega8为例,下载程序的设置界面如下。对于ATmega8,熔丝位hFuse为CC,IFuse为BF,lock Bit为0F。下载的bootloader文件为optiboot_atmega8.hex,点击Erase - Write - Verify进行下载。


Snap17.jpg

2011-11-9 16:05 上传
(107.84 KB)





烧录好bootloader以后。。该怎么用就怎么用,记得编译完程序后下载,板子要选择Arduino Optiboot8


附件为这次用到的新版bootloader,avrdude与其gui。
网盘下载http://pan.baidu.com/s/1dExdYV3
optiboot_v4_4.zip (40.32 KB)
avrdude-GUI-1.0.5.zip (12.65 KB)
avrdude-5.6-win32-bin.zip (614.33 KB)



via - 极客工坊

标签: Arduino教程