使用ATmega328p芯片制作Arduino Uno R3开发板

一、简介

Arduino的Bootloader是一段预装在Arduino板上微控制器中的小型程序,负责在上电或复位时初始化硬件,并允许通过串行通信将用户代码上传到板子上,无需外部硬件编程器。

本文详细地介绍了如何为空白的ATmega328p芯片烧录Bootloader,从而使ATmega328p芯片像Arduino一样可以直接上传程序!

换言之,就是介绍如何使用ATmega328p芯片制作Arduino Uno R3开发板的过程。

本教程已通过测试,请放心使用!

二、准备

1、硬件

本文不指定硬件的品牌,所提供的产品图片可供参考,硬件接口(引脚类型)一致即可相互替换。

为方便区分烧录Bootloader和上传程序两个概念,本文对烧录和上传两个名词的使用加以区分。

序号名称数量作用
1ATmega328PU1运行程序,系本文的研究核心
2AVR ISP Shield1扩展ATmega328PU芯片的引脚
3USBasp1提供烧录Bootloader的ISP接口
4UART-USB1提供上传程序的RX/TX硬件接口

(1)ATmega328PU

1920d60aacf4428ea0949bba8acd01ed.png

(2)AVR ISP Shield

6b3a83273b314d19bbd4d2402cb1f388.png

(3)USBasp

320eb9c65a2447c38e4b571639189105.png00874ed59478472091d569c09e1d8830.png

(4)UART-USB

13cbafd162aa4713905111c0e92466eb.png

2、软件

本文仅提供Windows 11系统的实现方法,三个软件需要下载windows版本。

如果使用其它系统,请自行搜索相应的软件版本,并查看该系统环境下的软件使用教程。

序号名称作用
1zadig提供USB驱动的安装
2avrdude烧录编译后的AVR程序
3optiboot提供Booloader文件
4Arduino IDE上传arduino程序

四个软件的官方下载链接如下。本文还提供了其中三个软件的下载链接(除Arduino IDE外),可以查看本文绑定的资源【ATmega328_Bootloader_Maker.zip】。

ZADIG 官方下载链接https://zadig.akeo.ie/AVRDUDE 官方下载链接https://github.com/avrdudes/avrdude/releases/tag/v8.0OPTIBOOT 官方下载链接https://github.com/Optiboot/optibootARDUINO IDE 官方下载链接Open-source electronic prototyping platform enabling users to create interactive electronic objects.https://www.arduino.cc/en/software下载后,解压zadig、avrdude、optiboot,三者可以直接使用。Arduino IDE需要安装,建议安装到C盘。

在optiboot文件夹中找到optiboot_atmega328.hex文件,复制到avrdude文件夹中,如下图所示。

4f25c4a4066a4a28ba02b381a10af443.png

三、制作

为方便表述,以下将四类硬件简称如下。

原名简称
ATmega328PU芯片
AVR ISP Shield扩展板
USBasp烧录器
UART-USB串口模块

1、安装驱动

运行zadig软件,并将烧录器通过USB接入计算机。

选择Options,勾选List All Divices。

回到软件主界面,在第一个下拉框选中USBasp,在第二个下拉框选中libusb-win32。

点击Install Driver,完成后将显示以下图片,代表烧录器的驱动已经安装完成。

8fed1436f19647429d71502c02ec74c9.png

2、正确锁紧芯片

初始状态下,扩展板的压杆为抬起状态。

2a3677f31b9648fc9a40490968d0a416.png

将芯片插入扩展板中,注意芯片带有半圆缺口的方向要朝向扩展板的压杆。如果装反,通电后可能烧坏芯片!

芯片插入扩展板后,按下扩展板的压杆,使芯片锁紧在扩展板上。

b88fd9319de3432aa054b7faefd00eb5.png

3、连接扩展板和烧录器

先将烧录器从计算机上拔出。

再将烧录器和扩展板相连接,注意烧录器上的MISO字样和扩展板上的MISO字样对应。如果接反,通电后可能烧坏芯片!

0374db1ae5094a28a16961cf46b387db.png

4、烧录Bootloader

通过USB接口,重新将烧录器插入计算机。

457d8453c2e34a4ba656e2f6c44a47a2.png

在avrdude文件夹中,点击鼠标右键并选择“在终端中打开”,如下图所示。

12a7f13e7e5f47f2b005dc64bd9f8833.png

输入以下指令,给芯片烧录Bootloader。

./avrdude -c usbasp -p m328p -U flash:w:optiboot_atmega328.hex

当烧录完成后,终端将显示如下内容。只要提示Avrdude done则说明烧录成功,其它报错无需关注。

Reading 474 bytes for flash from input file optiboot_atmega328.hex
Writing 474 bytes to flash
Writing | ################################################## | 100% 0.38 s
Reading | ################################################## | 100% 0.26 s
474 bytes of flash verified

Avrdude done.  Thank you.

5、连接扩展板和串口模块

要验证芯片是否已经烧录了Bootloader,最直接的方法就是使用Arduino IDE给芯片编程。

将串口模块和扩展板正确连接。注意,串口模块上有个跳帽,跳帽应该插到5V和GND上,代表对外输出5V电压。

af04a5d9e65c4eedb9a2d9f5e55c9f91.png

此外,仔细观察串口模块上的6个接口要和扩展板上的6个接口相对应。如果插反,通电后可能烧坏芯片!

7f08d05a19464ce7831a062273d7f449.png

6、验证Bootloader

通过USB线,将串口模块插入计算机。

0fa4b676e3454f9c956ceabc5cd553a6.png

打开Arduino IDE软件,运行test.ino程序。

# test.ino

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Hello World!");
  delay(500);
}

如果在串口监视器中观察到Hello World!字样,代表芯片已经烧录了Bootloader,并且能够像Arduino一样运行程序!

af670f0fc4b34930b85a10d4d5966906.png

四、资源下载

ATmega328_Bootloader_Maker.zip

可从绑定资源下载,也可从百度网盘下载。

【百度网盘下载链接】
链接:https://pan.baidu.com/s/15xBEHhqqCWMXE_aWBScH_A?pwd=bagw 
提取码:bagw 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值