0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

科技观察员 来源:circuitdigest 作者:Rishabh Jain 2022-09-23 17:11 次阅读

我们都知道,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引脚图

pYYBAGMteDqAJGAkAABq3kiwXyE444.png

电路原理

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

pYYBAGMteD-AfCDAAAFGg5b6geA061.png

组件说明

电源部分-

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 的外部电源对其进行测试。它看起来像这样。

poYBAGMteECAVam7AABTOmoDmsQ859.jpg

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

pYYBAGMteEOATi2EAACI3BhGM-c332.jpg

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

poYBAGMteEaAMSFIAACr92XAuPA933.jpg

所以,这是我们在面包板上的 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。如下所示。

poYBAGMteEiAb5SwAAAwwatTqMY413.png

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

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

poYBAGMteEqAa0H1AADJjyk7UOg232.png

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

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

pYYBAGMteEuAa69-AAByB9WyydI749.png

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

pYYBAGMteE-Adx9hAADoRCBDmhw532.png

查看以下视频以了解上述在 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 编程器(涉及很多连接)。

poYBAGMteFCAeEgiAAFFw2uysnk307.png

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

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

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

pYYBAGMteFOAIyzVAADfE27eUYk793.png

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

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

poYBAGMteFWAcUuVAAC2Ax6obmI241.jpg

现在,您可以看到面包板上的 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 与计算机连接并在控制面板中打开设备管理器。您将看到端口部分,展开它。如果驱动程序前面有黄色标记,则必须更新模块驱动程序。

pYYBAGMteFiAGSWmAABVxoH1ujE083.png

如果没有标记,则记下 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 芯片中。

poYBAGMteFmAUbbPAAB4gUqIBEk268.jpg

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

    关注

    88

    文章

    3615

    浏览量

    93709
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186994
  • ATmega328
    +关注

    关注

    1

    文章

    37

    浏览量

    21021
收藏 人收藏

    评论

    相关推荐

    基于ATmega328 MCU的Arduino UNO板实验方案

    我们从MCU以及数字和模拟IO引脚接头开始。Arduino UNO具有巧妙的排针布局,与ATMEGA328 28-DIP封装的布局非常匹配。因此,无需交叉导线。
    发表于 01-12 11:03 1364次阅读
    基于<b class='flag-5'>ATmega328</b> MCU的<b class='flag-5'>Arduino</b> UNO板实验方案

    基于ATmega328 MCU的电源电路设计

    我们从MCU以及数字和模拟IO引脚接头开始。Arduino UNO具有巧妙的排针布局,与ATMEGA328 28-DIP封装的布局非常匹配。因此,无需交叉导线。
    发表于 03-02 09:27 1154次阅读

    基于ATmega328的Dano设计项目

    编程Dano可以使用 Arduino 软件(下载)进行编程。从“工具”>“”菜单中选择“Ar
    发表于 06-23 06:22

    ATMEGA328/8 SMD转DIP PCB

    ic 的 Arduino Uno 的微控制器,很长一段时间后,我了解了它是如何工作的,然后我想制作自己的板子版本供任何人开发,这次我用的是贴片型的ATmega328 ic,但是我觉得会给用户带来麻烦
    发表于 08-04 06:19

    基于Atmega328的适配器

    描述Arduino nano 到 uno 适配器Arduino Nano 是 Arduino 家族中一个不错、小巧且便宜的成员。它基于 Atmeg
    发表于 09-09 06:59

    AtMega328AtMega328-MU的编程

    描述AtMega328AtMega328-MU 的编程。非常适合为您的项目编程新芯片。用于刻录引导加载程序和
    发表于 09-13 07:03

    基于ATmega328设计了智能墨镜

    Arduino Pro Mini实现的可穿戴,技术宅基于ATmega328设计了智能墨镜!
    的头像 发表于 06-05 06:00 2601次阅读

    怎样在ATmega328微控制器上刻录引导加载程序

    如果你正在查看这个项目,那么你可能已经使用过Arduino了。 Arduino UNO上的ATmega328微控制器很可能在一定时间(或不正确的连接)后发生故障。为了重用
    的头像 发表于 07-29 10:17 7249次阅读

    如何采用Arduino系统进行单片机编程

    Arduino最小系统电路见下图,适用于对ATmega8、ATmega168、ATmega328等型号的单片机
    发表于 09-26 15:44 6451次阅读
    如何采用<b class='flag-5'>Arduino</b>系统<b class='flag-5'>板</b><b class='flag-5'>进行</b>单片机<b class='flag-5'>编程</b>

    Arduino Uno微控制器采用的是Atmel的ATmega328

    Arduino Uno微控制器采用的是Atmel的ATmega328
    发表于 11-15 12:06 11次下载
    <b class='flag-5'>Arduino</b> Uno微控制器采用的是Atmel的<b class='flag-5'>ATmega328</b>

    基于ATmega328Arduino的变频驱动器

    用于基于ATmega328Arduino的变频驱动器实现。
    发表于 04-11 14:47 4次下载

    用于测试Atmega328/Arduino Uno和Atmega1284/p的

    电子发烧友网站提供《用于测试Atmega328/Arduino Uno和Atmega1284/p的 .zip》资料免费下载
    发表于 08-02 15:06 5次下载
    用于测试<b class='flag-5'>Atmega328</b>/<b class='flag-5'>Arduino</b> Uno和<b class='flag-5'>Atmega</b>1284/p的<b class='flag-5'>板</b>

    Atmega328时钟开源分享

    电子发烧友网站提供《Atmega328时钟开源分享.zip》资料免费下载
    发表于 08-03 11:16 3次下载
    <b class='flag-5'>Atmega328</b>时钟开源分享

    AtMega328编程/开发开源分享

    电子发烧友网站提供《AtMega328编程/开发开源分享.zip》资料免费下载
    发表于 08-19 09:43 6次下载
    <b class='flag-5'>AtMega328</b><b class='flag-5'>编程</b>/开发<b class='flag-5'>板</b>开源分享

    ATmega328/168/8/48/88编程屏蔽开源

    电子发烧友网站提供《ATmega328/168/8/48/88编程屏蔽开源.zip》资料免费下载
    发表于 11-07 15:51 2次下载
    <b class='flag-5'>ATmega328</b>/168/8/48/88<b class='flag-5'>编程</b>屏蔽开源