Arduino论坛
直播中

余华

12年用户 427经验值
擅长:可编程逻辑 嵌入式技术 处理器/DSP
私信 关注
[资料]

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-0022hardwarearduinobootloadersoptiboot中。




然后打开arduino-0022hardwarearduinoboards.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

[color=rgb(51, 102, 153) !important]复制代码

重新启动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
  • ##############################################################



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



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



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

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




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

附件为这次用到的新版bootloader,avrdude与其gui。

optiboot_v4_4.zip (40.32 KB, 下载次数: 448) [size=0.83em]2012-8-31 20:27 上传
点击文件名下载附件





avrdude-GUI-1.0.5.zip (12.65 KB, 下载次数: 494)

avrdude-5.6-win32-bin.zip (614.33 KB, 下载次数: 475)

回帖(1)

秦智

2017-4-29 15:00:53
谢谢楼主分享,
举报

更多回帖

发帖
×
20
完善资料,
赚取积分