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

一、说明

本文是在整理相关资料的基础上,系统地介绍使用ATmega328p芯片制作Arduino Uno R3开发板的过程。请注意,所有操作指引未经过实践验证,请自行判断正误。

本文的下个更新版本将展示完整的实践过程,敬请期待!

以下将ATmega328p芯片简称为"芯片",将Arduino Uno R3开发板简称为"Arduino"。

二、判断Bootloader的有无

Bootloader是一种小型程序,预先写入微控制器或微处理器的存储空间中,用于在设备上电或复位时加载和启动主要程序。它相当于一个"启动加载程序",可以帮助设备执行自我启动和固件升级。

在制作Arduino之前,需要判断所购买的芯片是否已经带有Bootloader,建议购买已经烧录Bootloader的芯片。

如果不确定所购买的芯片是否已经烧录Bootloader,可以通过以下方式判断。

1、连接电路

将一个 LED(加限流电阻,如 220Ω)连接到芯片的第 19 引脚(D13),并将 LED 的负极接地。

2、上电测试

使用5V电源,并将芯片的正负极和电源的正负极相连接。

如果 Bootloader 已正确烧录,当芯片上电或复位时,D13 引脚的 LED 会闪烁几次。这是因为 Arduino Bootloader 默认配置会在启动时闪烁 D13 引脚,表示芯片已经加载 Bootloader。

三、正式制作

1、为芯片烧录Bootloader

对于没有配置Bootloader的芯片,需要使用另一块能够正常工作的Arduino开发板,为芯片烧录Bootloader。

所需准备的材料包括:++面包板、芯片、Arduino、杜邦线++。

(1)将 Arduino设置为ISP

打开 Arduino IDE,选择 文件 -> 示例 -> 11.ArduinoISP -> ArduinoISP。

在 Arduino IDE 中,选择 工具 -> 开发板 -> 您所用的 Arduino(如 Arduino Uno)。

选择相应的端口。

上传 ArduinoISP 示例代码到您的 Arduino 开发板,使其作为 ISP 编程器。

(2)连接 Arduino和芯片

断开 Arduino 的 USB 连接。

使用面包板和跳线,按照以下方式将 Arduino的ISP接口与芯片连接:

|-------------|--------|
| Arduino | 芯片 |
| D10(SS) | 1号引脚 |
| D11(MOSI) | 17号引脚 |
| D12(MISO) | 18 号引脚 |
| D13(SCK) | 19号引脚 |
| 5V | VCC |
| GND | GND |

(3)打开烧录Bootloader选项

将 Arduino 再次通过 USB 连接到电脑。

在 Arduino IDE 中,选择"工具 -> 开发板 -> Arduino Uno"。

选择"工具 -> 编程器 -> Arduino as ISP"。

然后选择"工具 -> 烧录引导加载程序"。

(4)等待烧录完成

烧录过程中,Arduino 的 LED 会闪烁。

Arduino IDE 的底部会显示烧录完成的提示("完成烧录引导加载程序")。

2、使用芯片搭建Arduino

(1)所需材料

|--------------|--------|
| 零件 | 数量 |
| ATmega328p芯片 | 1 |
| 16 MHz 晶振 | 1 |
| 22 pF 电容 | 2 |
| 0.1 µF 电容 | 1 |
| 10 kΩ 电阻 | 1 |
| 5V电源及稳压模块 | 1 |
| 面包板 | 1 |
| USB-TTL转换器 | 1 |

(2)准备工作

将芯片正确插入面包板。

(3)连接晶振

将 16 MHz 晶振连接到 ATmega328 的 9 号引脚(XTAL1)和 10 号引脚(XTAL2),晶振的两端各连接一个 22pF 的电容,电容的另一端接地。

(4)电源滤波

使用 0.1 µF 电容在 Vcc 和 GND 之间进行电源滤波。

0.1 µF 电容可以滤除电源上的高频噪声和瞬态干扰,稳定芯片的供电电压,防止供电波动对芯片工作产生不良影响。

当芯片内部电路切换状态时,会产生微小的电流波动,滤波电容能够提供瞬时电流,减少这种波动,避免电源电压短暂下降。

(5)上电电路

使用 10kΩ 电阻将 ATmega328 的 1 号引脚(复位引脚)连接到 5V,以确保微控制器复位引脚高电平。

(6)稳压供电

使用5V电源及稳压模块,接入到 ATmega328 的 7 号引脚(Vcc)和 20 号引脚(AVcc)。同时,将地线接入 8 号引脚和 22 号引脚(GND)。

(7)连接 USB-TTL 转换器

使用 USB-TTL 转换器连接到 ATmega328 的 RX(2 号引脚)和 TX(3 号引脚)引脚,用于烧录代码。

确保 USB-TTL 转换器的 GND 接地,VCC 接 5V(部分转换器可以用 3.3V,视转换器情况而定)。

(8)测试

打开 Arduino IDE,选择 Arduino Uno 作为开发板。

通过 USB-TTL 转换器连接到电脑,将代码上传到芯片中,如果上传的程序能够正常运行,说明Arduino制作已经完成。

相关推荐
zhangrelay6 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
Industio_触觉智能7 小时前
把NPU检测直接嵌进采集终端|RK3576 AI采集终端全链路拆解教程-下
嵌入式硬件·ai·硬件架构·npu·ai视觉·rk3576·采集终端
en.en..7 小时前
STM32 GPIO ODR 与 BSRR 寄存器完整对比详解
单片机·嵌入式硬件
HQB202610 小时前
EG1182|屹晶微电子 60V 内置高压管异步降压 DC‑DC
嵌入式硬件·硬件工程
LCG米12 小时前
STM32硬件SPI驱动SSD1306 OLED实测:上电黑屏排查、页寻址模式与取模扫描方向陷阱
stm32·单片机·嵌入式硬件·嵌入式
硅基造物主13 小时前
STM32 从 0 到 1 做智能家居(八):PWM 控制风扇、加热片与 SG90 窗帘
stm32·嵌入式硬件·智能家居·hal库·pwm
HQB202613 小时前
EG1163 (S)|屹晶微电子 600V 高压同步降压半桥控制器
嵌入式硬件·硬件工程
木由里予14 小时前
UFS 4.1 HID(Host Initiated Defragmentation)功能详解
嵌入式硬件
意法半导体STM3214 小时前
【官方原创】如何在STM32CubeMX2中使用UART
stm32·单片机·嵌入式硬件
辛迪聊物业数字化16 小时前
物业费收缴率从68%提升到97%落地复盘:中小物业收费系统选型避坑指南
人工智能·嵌入式硬件·物联网·网络协议·系统架构