利用Atmega328构建Arduino板并进行编程

描述

我们都知道,Atmega328 IC用于Arduino UNO板。该 IC 是 Arduino 板的大脑。实际上,Arduino 设计人员想为初学者制作一个方便的原型板,因此他们以这样的方式组织所有组件,以便任何人都可以访问 Atmega328 IC 的所有引脚,并且只需将其连接到计算机即可对其进行编程。Arduino 板在构建爱好项目时非常受欢迎。但在工业或消费产品中,使用完整的 Arduino 板并不是一个好主意,因此我们可以使用独立的 Atmega328 IC,它可以使用 Arduino IDE 进行编程,但无需使用 Arduino 板。

在本教程中,我们将看到如何用 Atmega328 IC和其他一些组件替换 Arduino 板。要使用 Atmega328 IC 代替 arduino,首先我们必须在其中烧录 Arduino Bootloader,然后我们将使用 FTDI 或使用 Arduino Board 对其进行编程。本教程还将帮助从 Arduino 板上更换损坏的 Atmega328 IC。此外,通过使用下面描述的电路,您可以通过在 PCB 上复制来构建自己的 Arduino 板。

所需组件

Atmega 328集成电路

面包板

LM7805

16兆赫晶体

22pF 陶瓷电容器 (2)

10uF电容(2)

10K电阻

1k电阻

跳线

或者,您还可以使用 3.3v 稳压器 LM1117-3.3v 在您的电路中包含 3.3v 电源轨。

Atmega328引脚图

编程

电路原理图

下面给出了在面包板上复制 Arduino 的电路图:

编程

组件说明

电源部分-

5V 稳压器: Atmega 328 IC 在 5V 电源上运行。所以在这里,我们使用 LM7805 来获得 5v 输出,它可以处理高达 30V 作为输入。如果您有单独的 5V 电源,则可以离开此步骤。

电容: 10uF电容用于7805的输入和输出部分,将任何交流分量旁路到地。

LED:这将显示您的 5V 输出即将到来。

微控制器部分-

Atmega 328:这是我们在面包板上的主要组件。上面给出了它的引脚图。

晶振:在 ATmega328 的 Pin 9 和 Pin 10 之间连接了一个 16MHz 的外部晶振。该晶体用于为微控制器提供时钟以更快地执行任务。

按钮:要重置微控制器,在引脚 1 和 GND 之间连接一个按钮。通常,它使用 10k 电阻与 5v 连接。

LED:LED与数字引脚 13 相连。

这个完整的教程分为三个部分,让您自己的 Arduino 在面包板上运行:

在面包板上构建 Arduino 电路

将引导加载程序烧入 Atmega328 IC

如何编程 Arduino Bootloader 在面包板上上传 Atmega 328 IC。

现在我们将一一解释每个部分。

第 1 部分:在面包板上构建 Arduino 电路

第 1 步:- 如电路图所示连接电源部分,并使用 LM7805 的外部电源对其进行测试。它看起来像这样。

编程

第 2 步:- 现在,如电路图所示连接微控制器部分。仔细进行连接。

编程

第 3 步:- 现在,使用跳线连接电源和微控制器部分。你的最终电路看起来像这样。

编程

所以,这是我们在面包板上的 Arduino。您可以使用 EasyEDA 等简单工具在 PCB 上实现相同的电路。现在,我们必须将引导加载程序上传到新的 Atmega 328 IC,以便我们可以开始对 IC 进行编程。

第 2 部分:将引导加载程序烧入 Atmega328 IC

什么是引导加载程序以及我们为什么需要它?

引导加载程序是永久存储在微控制器内存中的一小段可执行代码。这占用不到 1Kb 的内存。引导加载程序允许 IC 接受来自计算机的代码并将其放入微控制器的内存中。

传统上,Atmel 的所有微控制器都是在具有一些花哨连接的程序员的帮助下进行编程的。引导加载程序降低了复杂性,使我们能够以一种简单有效的方式对微控制器进行编程。这意味着您只需使用 USB 电缆即可对其进行编程。

当您从市场上购买新的 Atmega 328 时,它没有引导加载程序。因此,要使用 Arduino IDE 对 Atmega328 进行编程,您必须首先上传引导加载程序。

要上传 Bootloader,我们有两种方法:

使用 USBasp 编程器

使用 Arduino UNO 板

与第一种方法相比,第二种方法更容易。因为它需要较少的连接,而且最新版本的 Arduino IDE 不支持花哨的 USBasp 程序员。

因此,在本教程中,我们将使用 Arduino Uno 板上传引导加载程序。

在 Atmega328 芯片中上传 Arduino Bootloader

第 1 步:-打开 Arduino IDE。转到文件 -〉 示例 -〉 ArduinoISP。比选择 ArduinoISP。如下所示。

编程

第 2 步:-现在,您必须将此代码上传到您的 Arduino 板。从工具菜单中选择 com 端口和板,然后点击上传按钮。

第 3 步:-完成上传后,断开 Arduino 板与计算机的连接,并将 Arduino 板与 Atmega 328 连接,如下图所示。

编程

第 4 步:-现在,将 Arduino 板与计算机连接。打开 Arduino IDE。

转到工具,选择板作为 Arduino/Genuine Uno,为您的板选择正确的端口。选择Programmer 作为“Arduino as ISP”。不要将其与 ArduinoISP 混淆。两者是不同的。

编程

第 5 步:-现在,再次转到工具,然后单击Programmer 选项下方的Burn Bootloader 。几秒钟后,引导加载程序成功上传。如果上传有任何错误,请检查连接。

编程

查看以下视频以了解上述在 Atmega 328 IC 中上传 Bootloader的步骤。

您的 面包板 Arduino 已准备好作为真正的 Arduino 板工作。现在,问题出现了,如何对 Atmega 328 IC进行编程?我们将在下一节中讨论。

第 3 部分:如何编程 Arduino Bootloader 上传的 Atmega 328 IC

独立的 Arduino Atmega328 芯片可以通过多种方式进行编程。

使用空白的 Arduino 板,即没有 Atmega 328 IC 的 Arduino 板。

使用USB转串口TTL转换模块(FTDI模块)。

使用 USBasp 编程器(涉及很多连接)。

编程

在这里,我们将使用两种方法对其进行编程:USB 转串口转换器和 Arduino 板。

使用 Arduino 板对 Atmega328 芯片进行编程

第 1 步:-拿一块没有 Atmega328 芯片的 Arduino 板。如图所示,将 Arduino 板与我们的面包板 Arduino连接起来。

编程

第 2 步:-将 Arduino 板与计算机连接并打开 Arduino IDE。从Tools的 Board 菜单中选择 Arduino Uno ,Programmer 为 USBasp 并正确的板子的 com 端口。

第 3 步:-我们将从上传 Blink 程序开始。所以从示例中选择闪烁程序并点击上传按钮。

编程

现在,您可以看到面包板上的 LED 开始闪烁。

使用 USB 转串口转换器对 Arduino Atmega328 芯片进行编程

第 1 步:-如果您没有 Arduino 板。这是对面包板 Arduino进行编程的最佳方法。

使连接如下:

FTDI 的 RXD 引脚 -〉 Atmega328 的 Tx 引脚(引脚 3)

FTDI 的 TXD 引脚 -〉 Atmega328 的 Rx 引脚(引脚 2)

GND -〉 GND(引脚 8)

5v -〉 Vcc(引脚 7)

部分FTDI模块有Reset pin也称为DTR pin,需要连接Atmega328的Reset pin(pin 1)。如果模块中没有reset管脚,别着急,我会在我们烧写芯片的时候给出解决方案。

第 2 步:-现在,将 FTDI 与计算机连接并在控制面板中打开设备管理器。您将看到端口部分,展开它。如果驱动程序前面有黄色标记,则必须更新模块驱动程序。

编程

如果没有标记,则记下 com 端口号并打开 Arduino IDE。转到工具 -〉 端口 -〉 选择您记下的 com。

第 3 步:-现在,我们将 Blink 程序上传到我们的Breadboard Arduino。转到File -〉 Examples -〉 Basics -〉 Blink。从工具中的Board菜单中选择Arduino Uno,Programmer as USBasp和正确的板com端口。

然后点击上传按钮。

注意:如果您的 FTDI 模块没有 DTR 引脚,则按下面包板上的重置按钮并点击上传按钮。如果它说Compiling sketch.。。请按住它,一旦它说Uploading.。。就松开按钮

现在,程序将成功上传到 Arduino Bootloader Atmega328 芯片中。

编程

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分