使用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制作已经完成。

相关推荐
lantiandianzi5 小时前
基于单片机的多功能跑步机控制系统
单片机·嵌入式硬件
哔哥哔特商务网5 小时前
高集成的MCU方案已成电机应用趋势?
单片机·嵌入式硬件
跟着杰哥学嵌入式5 小时前
单片机进阶硬件部分_day2_项目实践
单片机·嵌入式硬件
电子科技圈5 小时前
IAR与鸿轩科技共同推进汽车未来
科技·嵌入式硬件·mcu·汽车
东芝、铠侠总代136100683936 小时前
浅谈TLP184小型平面光耦
单片机·嵌入式硬件·物联网·平面
lantiandianzi6 小时前
基于单片机中医药柜管理系统的设计
单片机·嵌入式硬件
小A1597 小时前
STM32完全学习——使用SysTick精确延时(阻塞式)
stm32·嵌入式硬件·学习
楚灵魈8 小时前
[STM32]从零开始的STM32 HAL库环境搭建
stm32·单片机·嵌入式硬件
小A1598 小时前
STM32完全学习——使用标准库点亮LED
stm32·嵌入式硬件·学习
code_snow10 小时前
STM32--JLINK使用、下载问题记录
stm32·单片机·嵌入式硬件