本文包括以下内容:

  • 如何通过 Arduino Uno 对全新的 ATmega328P 烧写 Bootloader
  • 如何通过 Arduino Uno 对带有 Bootloader 的 ATmega328P 进行编程

所需材料

  • Arduino Uno
  • ATmega328P 芯片

介绍
如果你买了一个全新的 ATmega328P, 然后你想要对其进行编程,一个自然而然想到的办法就是把原来插在板子上的芯片拔下来,把这块新的插上去不就可以进行编程了?
df54f62e1c54474cbce6180f4ccdedce~noop.image?_iz=58558&from=article.jpg
ATmega328P 芯片

25ec6d29cc004a6faed5a36313995009~noop.image?_iz=58558&from=article.jpg
Arduino Uno

很遗憾的是这种想法行不通,因为 Arduino Uno 是通过板载串口对 ATmega328P 芯片进行编程的,而要想通过串口对 ATmega328P 芯片进行编程则需要其内部的 Bootloader 支持,但是,全新的 ATmega328P 里没有 Bootloader。
因此,需要先将 Bootloader 烧写到 ATmega328P 中。

烧写 Bootloader
Arduino Uno 本身可以变成一个编程器(ISP), 可以对全新的 ATmega328P 烧写 Bootloader.
将 Arduino IDE 自带的 “ArduinoISP” 代码下载到 Arduino Uno 中,Arduino Uno 就变成了一个编程器:
b84829b6108646ac9e8ea0dd891bf8cd~noop.image?_iz=58558&from=article.jpg
将A rduino Uno 编程编程器

烧写开始前,按下图所示连接硬件:
b7f384f6c577467ba5bb497d78a914f0~noop.image?_iz=58558&from=article.jpg
烧写 Bootloader 时的硬件连线

注意目标板的 RESET 脚连接作为编程器的 Arduino Uno 的第10脚。
Arduino IDE 中 选择 Arduino 作为编程器:
ae9ee7aee5884772b7c07aeca0b2d626~noop.image?_iz=58558&from=article.jpg
编程器选择 Arduino as ISP

Arduino IDE 中开发板选择“Arduino Uno”。点击菜单中的“烧录引导程序”:
a91e0f2dc3a547abb85edc7d99a02aa7~noop.image?_iz=58558&from=article.jpg
开始烧录后提示如下:
4b4765fb4d5148d4b359602af47b4aea~noop.image?_iz=58558&from=article.jpg
烧录成功后提示如下:
0e755fa363244dd0977338792e4bc4d0~noop.image?_iz=58558&from=article.jpg

下载程序
烧录完 Bootloader 后,就可以通过 Arduino Uno 板自带的串口对已经烧写了 Bootloader 的 ATmega328P 进行编程了。
编程前需要将作为编程器的 Arduino Uno 板上的 ATmega328p 拿掉。就相当于将要编程的 ATmega328P 插到了 Arduino Uno 开发板上。硬件连线如下:
08ed362f47b24138b3e3526a7ccd96c5~noop.image?_iz=58558&from=article.jpg
烧写闪灯程序时的硬件连线

编写一个 LED 闪烁程序,Arduino IDE 中选择 “ArduinoISP” 作为编程器:
2880b0424876418581091777faff9b92~noop.image?_iz=58558&from=article.jpg
选择编程器 ArduinoISP

然后,就可以正常下载程序了。



来源:飞多学堂