极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 29692|回复: 9

用 ATmega8L-8PU 体验 Arduino (提供bootloader 下载)

[复制链接]
发表于 2012-3-27 18:14:37 | 显示全部楼层 |阅读模式
本帖最后由 aGuegu 于 2012-3-27 18:30 编辑

转自 (阿)古作坊

玩了一阵子 Arduino,发现一个诡异的问题,玩 Arduino 核心的单片机,基本是 ATmega168,例如 Diecimila,而现在基本都是更为高级的 ATmega328,以 UNO 为代表。因为 Arduino 的逐渐流行,这两款芯片也是水涨船高,身价倍增,甚至供货都比较紧张。而另一方面,市面上货源最为稳定的,而且价格实惠的,(虽然有人说这个型号十年前就停产了),却是 ATmega8L,注意是带L的,也就是额定最高主频是8M的那款。
  1. ##############################################################

  2. atmega8_8M.name=ATmega8_8MHz

  3. atmega8_8M.upload.protocol=arduino
  4. atmega8_8M.upload.maximum_size=7168
  5. atmega8_8M.upload.speed=115200

  6. atmega8_8M.bootloader.low_fuses=0xa4
  7. atmega8_8M.bootloader.high_fuses=0xdc
  8. atmega8_8M.bootloader.path=optiboot
  9. atmega8_8M.bootloader.file=optiboot_atmega8_8M.hex
  10. atmega8_8M.bootloader.unlock_bits=0x3F
  11. atmega8_8M.bootloader.lock_bits=0x0F

  12. atmega8_8M.build.mcu=atmega8
  13. atmega8_8M.build.f_cpu=8000000L
  14. atmega8_8M.build.core=arduino
  15. atmega8_8M.build.variant=standard
复制代码
使用新的 Bootloader,只是选择不同的 Bootloader 文件,以及在 (ADE)\hardware\arduino\boards.txt 文件内添加配置信息就可以了。我使用的ADE(Arduino Development Environment)是1.0的版本。


适用于 ATmega8L 的 Bootloader 下载地址:Atmega8_8M.zip

需要向 Board.txt 文件中添加的内容,见文章开头部分。

一些说明:

  • 该Bootloader为自定义  OptiBoot 后编译生成,hex和lst文件,可保存在bootloaders\optiboot文件夹内。
  • 使用内部 RC 振荡器,时钟频率为 8MHz。
  • 同样适用于 ATmega8-16PU、ATmega8L-8PU
  • 阅读配置文件可知,熔丝位配置为,低位0xa4,高位0xdc,下载波特率为115200


一些诡异的情况:

  • 如果自动下载不稳定,可以尝试手动复位。对 M8-16PU 的 DTR 自动复位比较成功,而对于M8L经常无法自动复位,按说是挺没道理的。
  • 若给ATMega8L采用3.3v供电,程序依然可以运行,但是似乎无法烧写程序,手动复位依然不行。
  • 串口通讯不稳定。如果项目牵扯到串口通讯,建议还是采用 时钟更为稳定的外部晶振。但是实测中,按照115200这样的高波特率又能完成下载,是不是很神奇?

本文参考了以下文章:

在此向各位 Arduino 开源社区的前辈表示感谢。

同时,可以参考本人之前的2篇Blog,分别是:

我自己实验的时候使用的板子及方法,在这两片文章都有介绍。

希望找到更加实惠方案体验 Arduino ,不急于购买 Arduino 标准板的朋友,不妨试试看。

原文地址:http://aguegu.net/?p=699

欢迎大家多来我的博客看看。(阿)古作坊 http://aguegu.net
回复

使用道具 举报

发表于 2012-8-26 09:54:17 | 显示全部楼层
很好的文章,咋没人顶啊
回复 支持 反对

使用道具 举报

发表于 2012-8-30 19:14:33 | 显示全部楼层
顶啊好文。。
回复 支持 反对

使用道具 举报

发表于 2013-1-15 19:41:51 | 显示全部楼层
为什么啊,我一直都烧不进去啊
回复 支持 反对

使用道具 举报

发表于 2013-2-20 19:55:21 | 显示全部楼层
新人,手里还没片子
等到了之后上面包板看看
回复 支持 反对

使用道具 举报

发表于 2013-3-8 22:41:25 | 显示全部楼层
ATMEGA8L用内部 RC振荡器,时钟频率为 8MHz,USB 5V供电,选用optiboot,串口通信115200Kb/s很正常,但4800,9600,19200等速率要不乱码,要不无法通信,不知道是啥原因,按道理速率越低越可靠,这下可是反过来的。
回复 支持 反对

使用道具 举报

发表于 2013-3-28 13:00:32 | 显示全部楼层
支持·············
回复 支持 反对

使用道具 举报

发表于 2013-3-28 17:34:10 | 显示全部楼层
我的ATMEGA现在用的是16M的外部时钟,跑得很欢呢
回复 支持 反对

使用道具 举报

发表于 2013-4-21 09:33:19 | 显示全部楼层
superid888 发表于 2013-3-8 22:41
ATMEGA8L用内部 RC振荡器,时钟频率为 8MHz,USB 5V供电,选用optiboot,串口通信115200Kb/s很正常,但4800 ...

这样啊····················
回复 支持 反对

使用道具 举报

发表于 2013-11-7 01:45:11 | 显示全部楼层
superid888 发表于 2013-3-8 22:41
ATMEGA8L用内部 RC振荡器,时钟频率为 8MHz,USB 5V供电,选用optiboot,串口通信115200Kb/s很正常,但4800 ...

bootloader是按115200Kb/s编译的,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-4 23:30 , Processed in 0.054965 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表