ATmega8L的arduino bootloader
原帖地址:http://www.hackmeister.dk/2011/01/new-bootloader-file-for-atmega8l/国外某高手做出来ATmega8L使用8M晶振的arduino bootloader
在\hardware\arduino\boards.txt 中下入下面代码,与新版bootloader配合,既可以在arduino中使用ATmega8L了。##############################################################
atmega8l.name=LCD I/O Backpack w/ ATmega8L @ 8MHz
atmega8l.upload.protocol=stk500
atmega8l.upload.maximum_size=7168
atmega8l.upload.speed=19200
atmega8l.bootloader.low_fuses=0xdf
atmega8l.bootloader.high_fuses=0xca
atmega8l.bootloader.path=atmega8
atmega8l.bootloader.file=ATmega8L.hex
atmega8l.bootloader.unlock_bits=0x3F
atmega8l.bootloader.lock_bits=0x0F
atmega8l.build.mcu=atmega8
atmega8l.build.f_cpu=8000000L
atmega8l.build.core=arduino
##############################################################附件就是bootloader:
补充:1.0 IDE使用的boards代码##############################################################
atmega8l.name=LCD I/O Backpack w/ ATmega8L @ 8MHz
atmega8l.upload.protocol=stk500
atmega8l.upload.maximum_size=7168
atmega8l.upload.speed=19200
atmega8l.bootloader.low_fuses=0xdf
atmega8l.bootloader.high_fuses=0xca
atmega8l.bootloader.path=atmega8
atmega8l.bootloader.file=ATmega8L.hex
atmega8l.bootloader.unlock_bits=0x3F
atmega8l.bootloader.lock_bits=0x0F
atmega8l.build.mcu=atmega8
atmega8l.build.f_cpu=8000000L
atmega8l.build.core=arduino
atmega8l.build.variant=standard
############################################################## 我这好几个,8l可以试试这个~ 我按照这个做了一块小板,但是上载程序时通信灯闪了一阵就不动了,如果再次上载就无法通信了,崩溃中,哪位高人拉兄弟一把啊。。。 首先,需要按复位键,然后点下载程序。
用SLISP,并口下载线,把这个BOOTLOADER烧进M8芯片,按复位键(其实按不按都一样),用实串口COM1上传程序(9600或19200都一样),TX和RX灯高速闪烁,然后就停了,Upload黄色消失,提示信息Done uploading。
再次按复位键,上传程序,TX灯慢闪两下,然后出现红色错误提示。
:'( :'( :'( :'( :'( :'( {:soso_e154:}熔丝位配置对了吗? 0xdf
0xca 看现象,应该是把程序上传时破坏了boot区,但是反复学习检查熔丝位,这个配置应该没有问提呀! 不知如何修改这个Bootloader, 让8L工作在4MHz晶振?
乞丐版Arduino制作图解
本帖最后由 thomas 于 2012-4-14 18:01 编辑首先,感谢弘毅的友情技术支援!
这是我第一次自建并烧系统,还比较自信自己对硬件的驾驭能力。
去商店买芯片时,问我用Atmega8还是8L,按照我萌萌的理解,按照车的标准, L肯定好,于是就买了。。。L没想到是低速的意思,不是加长。。。我只是想做个小开关,足够了。
结果昨天凌晨5点也没烧好熔丝位。今天下午,在弘毅的远程协助下,终于烧上Arduino并且成功运行了。
心得:一理通,百理明,以后熟悉了就好办了。
收获:实现了“乞丐版的Arduino方案”,硬件整个下来50元以内就能搞定了,因为山寨的烧录器实在太便宜了。
硬件:
ATmega8L芯片,外接8M晶振,两个22p电容。
1脚复位脚向vcc接了一个10k电阻,向GND接了100n电容,做个简易复位功能。
VCC/GND间接了个100n电容。
另:芯片第19脚(Arduino PIN13)对GND接了一个led和220r电阻,用来测试状态。
烧录器是昨天在商店随手买的便宜货,也不确定行不行,说好不能用给退。也没提供软件,让我自己找。
淘宝卖20左右,搜下“USBISP”一大堆,U盘样子,还有免驱动的,不知效果怎么样,我这个是老版本,做工很山寨。
不过,烧系统带烧程序都能完成,也算是性价比突出。
软件:
网上找的 progisp1.72,更高版本的我用的烧录器不支持。(后来确认,我用的版本应该是山寨版,写这个软件的人出品的是正版)
硬件搭建好后确认无误。
运行progisp,选择ATmega8,然后选择RD键盘。下方提示“读取ID成功”也就证明连接没问题了。
然后,右边位置有个"。。。"的按钮,这就是熔丝位界面,选中。
直接操作1,0位置就可以。操作后,下面显示低位值和高位值。根据8L的熔丝位信息,经过如上选择,最终结果是DF,CA,与说明书一致。
然后选择写入。提示写入成功;然后选择读出,提示读出成功。至此熔丝位已经完成!(打个比方,相当于按照软件要求给计算机系统分区,但分区很严格,必须按照手册来,不知我这么理解对不对。)
分好区就要装系统了,选择调入flash(这个步骤,以后传程序时还会重复)
选中8L的hex(相当于系统盘)
然后选择写入,提示成功。
至此,Arduino已经装好了。如果你也在ic的19脚(Arduino P13)接了个led,它会诡异的闪起来了,非常像是警车警灯。
完成真正的乞丐版操作,还需要以最经济的方法传程序。
需要改下preferences.txt ,加入 hex生成路径这一行。
板子设置一下Tools 》Board 》 LCD I/0 Backup w/ATmega8L就可以干活了。(别忘了用UNO时改回来)
现在软硬件都调好了,想让你的乞丐版Arduino做点儿就可以试试了,13口不是还连着个led吗?直接找个例子驱动吧。
打开实例里的blink,然后选择“运行” 而不是 upload
运行通过后,不要关窗口,赶紧到你刚才设置的去捡宝吧。
一堆文件,里面有个*.HEX 拷贝走,要不一关窗口这个文件夹内就全删除了
重复一遍Flash烧录的过程,这次的hex目标,指向你刚才的hex,载入,如果没意外的话,Arduino的第一个乞丐程序已经开始运行了~
选择
写入
高手都是练出来的啊!:funk: thomas 发表于 2012-4-14 17:28 static/image/common/back.gif
首先,感谢弘毅的友情技术支援!
经过测试绝对可行, 不过目前碰到的问题是每次重新烧新程序的时候,必须先清空芯片,然后再烧bootloader然后再烧程序, 有没有办法可以直接烧程序,不用每次都清空呢? 不烧bootloader看看行不行 顶一下,自己也做个! 我搞了块烧好的328,可不会下载
页:
[1]
2