zcbzjx 发表于 2012-7-29 09:48:58

让optiboot支持atmega168pa@8Mhz

本帖最后由 zcbzjx 于 2012-12-18 20:00 编辑

此贴有毛病,请看更新帖
有同学已经发过使Arduino支持ATmega168PA,现在我发的这个是用optiboot的bootloader,而且让他工作在8MHz,这样我们就可以用3.3V电源供电,好处?。

以下均在arduino1.01 测试通过,而且能稳定运行。

第一步,下载optiboot-with-168p.zip,拷贝到<path-where-you-installed-arduino-1.0>\hardware\arduino\bootloaders,替换原来的optiboot目录。

第二步,修改makefile文件,建议大家下载Notepad++,这样编辑就不会乱行。

找到这个位置pro8: TARGET = pro_8MHz
pro8: MCU_TARGET = atmega168
pro8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200'
pro8: AVR_FREQ = 8000000L
pro8: $(PROGRAM)_pro_8MHz.hex
pro8: $(PROGRAM)_pro_8MHz.lst

pro8_isp: pro8
pro8_isp: TARGET = pro_8MHz
# 2.7V brownout
pro8_isp: HFUSE = DD
# Full swing xtal (20MHz) 258CK/14CK+4.1ms
pro8_isp: LFUSE = C6
# 512 byte boot
pro8_isp: EFUSE = 04
pro8_isp: isp

在这个位置之后加# Atmega168p target 8Mhz added by zcbzjx
atmega168p_pro8: TARGET = Atmega168p_pro_8MHz
atmega168p_pro8: MCU_TARGET = atmega168p
atmega168p_pro8: CFLAGS += '-DLED_START_FLASHES=3' '-DBAUD_RATE=115200'
atmega168p_pro8: AVR_FREQ = 8000000L
atmega168p_pro8: $(PROGRAM)_Atmega168p_pro_8MHz.hex
atmega168p_pro8: $(PROGRAM)_Atmega168p_pro_8MHz.lst

atmega168p_pro8_isp: Atmega168p_pro8
atmega168p_pro8_isp: TARGET = Atmega168p_pro_8MHz
# 2.7V brownout
atmega168p_pro8_isp: HFUSE = DD
# Full swing xtal (20MHz) 258CK/14CK+4.1ms
atmega168p_pro8_isp: LFUSE = C6
# 512 byte boot
atmega168p_pro8_isp: EFUSE = 04
atmega168p_pro8_isp: isp

大家可以看,基本上就是改了个MCU_TARGET,atmega168变成了atmega168p。

第三步,生成bootloader

1,启动命令提示符
按Win + R,输入cmd,回车键
2,改变工作目录,
cd "<path-where-you-installed-arduino-1.0>\hardware\arduino\bootloaders\optiboot\"
Enter
3,启动编译器输入
omake atmega168p_pro8
Enter

现在,文件夹"<path-where-you-installed-arduino-1.0>\hardware\arduino\bootloaders\optiboot\"中,就可以找到你为ATmega168p(8MHz)编译optiboot引导程序:optiboot_atmega168p_pro8.hex

第四步,修改boards.txt

在最后加入##############################################################

micromagician168pa.name= optiboot (3.3V, 8 MHz) w/ ATmega168PA

micromagician168pa.upload.protocol=arduino
micromagician168pa.upload.maximum_size=15872
micromagician168pa.upload.speed=19200

micromagician168pa.bootloader.low_fuses=0xc6
micromagician168pa.bootloader.high_fuses=0xdd
micromagician168pa.bootloader.extended_fuses=0x04
micromagician168pa.bootloader.path=optiboot
micromagician168pa.bootloader.file=optiboot_Atmega168p_pro_8MHz.hex
micromagician168pa.bootloader.unlock_bits=0x3F
micromagician168pa.bootloader.lock_bits=0x0F

micromagician168pa.build.mcu=atmega168p
micromagician168pa.build.f_cpu=8000000L
micromagician168pa.build.core=arduino
micromagician168pa.build.variant=standard重新启动arduino,就可以在板卡找到"optiboot (3.3V, 8 MHz) w/ ATmega168PA"


希望大家举一反三,生成自己需要的bootloader。

参考:
Add support for ATmega168P in optiboot
ATMega8 Arduino Bootloader (Optiboot)

zcbzjx 发表于 2012-7-31 19:50:32

我自己up下这个吧,我觉得很有价值啊。。。为什么没人顶下嘞。。

弘毅 发表于 2012-8-1 19:00:04

{:soso_e102:}灰常有价值的好贴。。。

zcbzjx 发表于 2012-8-1 20:35:12

多谢管理员大大肯定,没人理,俺都差点觉得我是不是out了。。。

弘毅 发表于 2012-8-1 21:00:42

zcbzjx 发表于 2012-8-1 20:35 static/image/common/back.gif
多谢管理员大大肯定,没人理,俺都差点觉得我是不是out了。。。

哈哈,这种玩到bootloader阶段的人还不是很多。。。大家估计看不懂=.=

Ansifa 发表于 2012-8-4 10:50:23

:lol用到PA了。。。能不能测温。。。

ewx_boy 发表于 2012-11-4 20:47:42

写的好~~~~~~~~~

ttyp 发表于 2012-11-4 23:57:39

怎么没有提供编译好的下载啊

zcbzjx 发表于 2012-11-5 00:20:23

授人以鱼不如授人以渔

oyhomy7get 发表于 2019-11-27 17:40:46

好久的帖子了,才看懂,哈哈




————————————————————————————
Nothing is impossible!
页: [1]
查看完整版本: 让optiboot支持atmega168pa@8Mhz