当前位置:文档之家› Arduino烧写BootLoader

Arduino烧写BootLoader

Arduino烧写BootLoader
Arduino烧写BootLoader

使用Arduino Diecimila(Uno)给Atmega328P烧写BootLoader

我有一个旧的Arduino Diecimila的和一些新的Atmega328p -PU芯片。不应该有,但我带来一些没有引导程序的来节省一些钱。

接下来是什么?搜索操作步骤,看看我是否能烧引导程序到这些芯片。不幸的是无法工作。出现一个错误消息"avrdude: stk500_getsync(): not in sync: resp=0x00 avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51"。

有一个办法是焊接Arduino Diecimila上的一些引脚来解决这个问题,但是,Arduino是我唯一有的一个,所以我并不想改变我的工作板。

步骤1:打开sketch ArduinoISP和连接电线

所以,我打开ArduinoISP sketch 检查。然后发现大多数操作步骤已经错过了一个环节:连接Arduino的pin 10到Atemega328P的pin 1(复位)。我连接那根线,然后一切正常。当然那是多次尝试后才有的事。

连接如截图所示。第一列是指到Arduino Diecimila,第二列是指Atmega328p,

Pin 10 - >pin 1(在我这里,这是非常重要的,如果没有它,IDE会提示错误,然后烧录失败)

Pins 13, 12, 11 -> pins 19, 18, 17

Pins 10 -> pin 1

Vcc -> pins 7, 20

Gnd -> pins 8, 22

然后连接晶振和电容到Atmega328p

晶振16Mhz -> pins 9, 10

电容22pf -> pins 8,9

电容22pf -> pins 8, 10

现在硬件部分搞定。然后把Arudino Diecimila插入到您的计算机,并按照下一个步骤走。步骤2:下载ArduionISP程序和开始烧写bootloader

我知道我的Arduino是内嵌Atmega168p的Diecimila,我将要烧录Arduino UNO到我的Atmega328p,现在开始。

首先上传程序把我的Diecimila设置为ArduioISP

1、选择Tools -> Board -> Arduion Diecimila,Duemilanove,或Nano w/ ATmega168

注:如果你使用Arduino Uno,方法相同,选择Tools -> Board -> Arduion Uno

2、编译然后上传ArduinoISP sketch。您应该看到“完成上传”

3、现在选择Tools - > Board - > Arduino UNO

4、选择Tools - > Burn Bootloader - > w/ Arduino as ISP,在一分钟内,你应该看到“完成烧录bootloader”

如果你是幸运的,你很容易在一分钟内到达步骤4。要烧第二Atmega328p,拔下USB电缆,交换一个新的328p到你的面包板再插上USB线,并再次运行步骤4。

如果发现任何错误,检查接线,然后再一次按照步骤一个一个操作一遍。

步骤3: 测试烧写完bootloaded 的Atmega328p

要测试有bootloader后的Atmega328p能否工作,我只是用它换下我的Arduino Diecimila 上的Atmega168,然后按照正常sketch上传程序步骤,如下。

1、加载Blink程序。改变LED的开启和关闭时间,所以你知道atmega328p中运行的程序是你独一无二的程序

2、从Arduino的IDE中,选择Tools -> Board -> Arduino UNO

3、把LED插入您的Arduino GND脚和pin 13之间

4、用Atmega328p换下Atemega168。当你拔下芯片时要小心。越轻柔,损坏芯片的可能

越小。我用了两个针头,以帮助拔下芯片:)

5、把Arduino插回到您的计算机。确保你听到哔一声,电脑确认识别到你的板

6、编译并上传。那么你应该看到你在第1步中设置的LED闪烁的方式。

如果不工作,请检查第2步,并遵循上述步骤再试。

为了测试另一片Atmega328p,重复步骤4至6。

这就是一切。享受它。

相关主题
文本预览
相关文档 最新文档