使用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号引脚
5VVCC
GNDGND

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914720.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 正则表达式进阶用法:分组与引用详解

Python 正则表达式进阶用法:分组与引用详解 正则表达式是一种用于字符串匹配和处理的强大工具。它不仅能识别简单的文本模式,还能通过更高级的特性来完成复杂的文本处理任务。本文将深入探讨 Python 正则表达式中的“分组”和“引用”——两个在高级匹配…

米家通过HomeAssistant控制笔记本电脑开关机

米家通过HomeAssistant控制笔记本电脑开关机 配置HomeAssistant配置EMQX mqtt自动化配置电脑关机实现电脑开机实现(网络唤醒WOL包) 环境准备: HomeAssistant:能配置接入米家的设备,我这里采用fnos安装MQTT服务器&…

前端环境配置

对于换公司的小伙伴来讲,重新安装环境,百度或许稍微有点麻烦,本文章让你无脑式直接操作,保证环境畅通无阻。 1.安装nvm-setup 该插件是一款管理nodeJs的包,无需你单独下载nodeJs去安装,只需要下载安装此…

[CKS] K8S AppArmor Set Up

最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于AppArmor Pod操作权限的问题。 ​ 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] …

提升自然排名的有效策略与方法

内容概要 在数字营销的快速发展背景下,自然排名的提升日益显得重要。自然排名不仅影响网站的流量,同时也直接关系到品牌的曝光度和市场竞争力。针对这个主题,我们将探讨多个关键因素,帮助读者更好地理解自然排名的重要性及其影响…

golang go语言 组建微服务架构详解 - 代码基于开源框架grpc+nacos服务管理配置平台

整体介绍: 本文主要介绍如何用go语言 来组建微服务的框架,grpc服务管理 示例框架 代码由grpcnacos go sdk 组成。 grpc负责将调用序列化并传递到远端,nacos负责服务发现和服务管理。 grpc和nacos都是开源产品。代码复制下来就能跑。 微服…

软件测试项目实战

软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。 一、引言 1.编写目的 本文档…

基于百度飞桨paddle的paddlepaddle2.4.2等系列项目的运行

PPASR 必看&#xff01;&#xff01;&#xff01; PaddleSpeech develop --> PaddlePaddle 2.5.0/2.5.1 PaddleSpeech < 1.4.1 --> PaddlePaddle < 2.4.2 1.创建虚拟环境 conda create --name test python3.10 2.激活环境&#xff0c;安装ppasr的paddlepaddl…

MySQL数据库专栏(四)MySQL数据库链接操作C#篇

摘要 本篇文章主要介绍C#链接MySQL数据库的接口介绍&#xff0c;使用实例及注意事项&#xff0c;辅助类的封装及调用实例&#xff0c;可以直接移植到项目里面使用。 目录 1、添加引用 2、接口介绍 2.1、MySqlConnection 2.2、MySqlCommand 2.3、MySqlDataReader…

【Pikachu】File Inclusion文件包含实战

永远也不要忘记能够笑的坚强&#xff0c;就算受伤&#xff0c;我也从不彷徨。 1.File Inclusion(文件包含漏洞)概述 File Inclusion(文件包含漏洞)概述 文件包含&#xff0c;是一个功能。在各种开发语言中都提供了内置的文件包含函数&#xff0c;其可以使开发人员在一个代码…

计算机网络基本概念总结

IP地址 概念 使网络中的设备都有唯一的地址标识&#xff0c;用于表示其在网络中的位置。 格式 IP地址是一个32位的二进制数&#xff0c;通常被分割为4个8位二进制数&#xff08;也就是4个字节&#xff09;&#xff0c;如&#xff1a;01100100.00001000.00001010.00000110。通常…

CSS回顾-基础知识详解

一、引言 在前端开发领域&#xff0c;CSS 曾是构建网页视觉效果的关键&#xff0c;与 HTML、JavaScript 一起打造精彩的网络世界。但随着组件库的大量涌现&#xff0c;我们亲手书写 CSS 样式的情况越来越少&#xff0c;CSS 基础知识也逐渐被我们遗忘。 现在&#xff0c;这种遗…

RabbitMq项目实战--延迟队列实现超时订单处理

简单实现版 RabbitMq创建队列绑定交换机_rabbitmq 绑定交换机-CSDN博客 Configuration public class RabbitmqConfig {Value("${rabbitmq.exchange}")private String exchange;Value("${rabbitmq.host}")private String host;Value("${rabbitmq.por…

Vivado+Vscode联合打造verilog环境

一、Vivado下载安装 详细参考我另一篇文章&#xff1a; Vivado2022.2下载安装_fpga vivado下载-CSDN博客https://blog.csdn.net/weixin_61081689/article/details/143460790?spm1001.2014.3001.5501 二、Vscode下载安装 详细参考我另一篇文章&#xff1a; VscodeAnacond…

Unity 热更新 之 一篇文章完全入门AssetBundle

本篇知识来源于unity官方手册以及siki学院的相关教程,链接如下,仅作学习分享 AssetBundle&#xff08;创建打包&#xff09;入门学习(基于Unity2017) - SiKi学院|SiKi学堂 - unity|u3d|虚幻|ue4/5|java|python|人工智能|视频教程|在线课程 目录 0.热更新是什么 1.AssetBundl…

思考:linux Vi Vim 编辑器的简明原理,与快速用法之《 7 字真言 》@ “鱼爱返 说 温泉啊“ (**)

Linux vi/vim | 菜鸟教程 https://zhuanlan.zhihu.com/p/602675406 Linux Vim编辑器的基本使用_vim文本编辑器-CSDN博客 这里提出使用 vi / vim 进行简单的编辑操作的原因&#xff0c;主要是在容器镜像中&#xff0c;普遍都是使用这个。 在 linux 服务器应用场景&#x…

【网络安全 | 甲方建设】DDOS 防范教程

未经许可,不得转载。 文章目录 前言DDoSDDoS种类针对DDoS CC攻击的防护备份网站拦截HTTP请求带宽扩容使用CDN隐藏服务器真实IP关闭不必要的服务或端口限制SYN/ICMP流量启用反向代理前言 假设你是一个电商平台的管理员,网站每天都处理大量的用户请求,比如用户浏览商品、加入…

【WRF模拟】全过程总结:WPS预处理及WRF运行

【WRF模拟】全过程总结:WPS预处理及WRF运行 1 数据准备1.1 嵌套域设置(Customize domain)-基于QGis中gis4wrf插件1.2 静态地理数据1.2.1 叶面积指数LAI和植被覆盖度Fpar(月尺度)1.2.2 地面反照率(月尺度)1.2.3 土地利用类型+不透水面积1.2.4 数据处理:geotiff→tiff(W…

【青牛科技】 GC6153——TMI8152 的不二之选,可应用于摇头机等产品中

在电子工程领域&#xff0c;不断寻求性能更优、成本更低的解决方案是工程师们的永恒追求。今天&#xff0c;我们要为广大电子工程师带来一款极具竞争力的产品 —— GC6153&#xff0c;它将成为 TMI8152 的完美替代之选。 一、产品背景 随着科技的飞速发展&#xff0c;电子设备…

Openstack9--安装etcd分布式键-值对存储系统

只需在控制节点安装 yum -y install etcd 编辑配置文件 配图画线处需要更改&#xff0c;如果改行被#注释请删掉# 以取消注释 vi /etc/etcd/etcd.conf 修改的 ETCD_LISTEN_PEER_URLS"http://192.168.10.10:2380" ETCD_LISTEN_CLIENT_URLS"http://192.168.1…