风筝
发表于: 2018-11-29 19:50:57 | 显示全部楼层

众所周知,Arduino UNO开发板采用的是Atmega328微控制器。该控制器相当于Arduino开发板的大脑。实际上,Arduino设计师希望为初学者制作一个方便的原型板,这样他们就可以组织所有组件,任何人都可以访问Atmega328 IC的所有引脚,只需将其连接到计算机即可对其进行编程。 Arduino开发板非常适合制作业余爱好项目。但在工业或消费产品中使用完整的Arduino开发板并不是一个好主意,因此我们可以使用独立的Atmega328 IC,可以使用Arduino IDE进行编程,而无需使用Arduino开发板。


在本篇文章中,我们将看到如何用Atmega328替换Arduino开发板以及其他一些组件。要使用Atmega328代替arduino,首先我们必须在其中烧录Arduino Bootloader引导加载程序,然后我们将使用FTDI或使用Arduino开发板对其进行编程。本文还将可以帮助您更换Arduino开发板上损坏的Atmega328微控制器。此外,通过使用下面描的电路,您可以通过在PCB上复制它来制作自己的Arduino开发板。


所需的组件

●    Atmega328微控制器

●    面包板

●    LM7805

●    16 MHz晶振

●    22pF陶瓷电容

●    10uF电容

●    10 K电阻

●    1k电阻

●    跳线

●    您也可以使用3.3v稳压器LM1117-3.3v在电路中包含3.3v电压。


Atmega328的引脚图

Atmega328-Pinout.png


电路原理图

在面包板上搭建Arduino的电路图如下:

Circuit-Diagram-for-DIY-Breadboard-Arduino-Circuit.png


组件描述

电源部分 -

●    5V稳压器:Atmega 328控制器采用5V电源供电。所以在这里,我们使用LM7805获得5v输出,它可以处理高达30V的输入电压。如果你有一个单独的5V电源,那么你可以不使用该稳压器。

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

●    LED:可以指示5V电压。


微控制器部分 -

●    Atmega 328:这是面包板上的主要组件。其引脚图如上所示。

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

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

●    LED:LED与数字引脚13连接。


本篇文章分为三个部分来介绍:

1.    在面包板上搭建Arduino电路

2.    将Bootloader刻录到Atmega328 IC中

3.    如何将Arduino Bootloader烧写到在面包板上的Atmega 328 IC。

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


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

第1步: - 如电路图所示连接电源部件,并使用LM7805的外部电源进行测试。如下所示。

Power-Supply-Circuit-for-Breadboard-Based-Arduino-Board.jpg

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

Microcontroller-Circuit-for-Breadboard-Based-Arduino-Board.jpg

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

Connecting-Power-Supply-and-Microcontroller-Circuit-for-Breadboard-Based-Arduino-Board.jpg

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


第2部分:将Bootloader刻录到Atmega328控制器

什么是bootloader以及我们为什么需要它?

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

传统上,Atmel的所有微控制器都是在需要烧写器才能编程,这些烧写器有一些奇特的连接。 Bootloader降低了复杂性,使我们能够以简单有效的方式对微控制器进行编程。这意味着您只需使用USB电缆即可对其进行编程。


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


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

●    使用USBasp编程器

●    使用Arduino UNO开发板


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


因此,在本教程中,我们将使用Arduino Uno开发板上传bootloader。


上传Arduino Bootloader到Atmega328芯片中

第1步: - 打开Arduino IDE。转到File -> Examples -> ArduinoISP。然后选择ArduinoISP。如下所示。

ArduinoISP-Example-in-Arduino-IDE.png

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


第3步: - “Done uploading”后,断开Arduino开发板与计算机的连接,并将Arduino开发板与Atmega 328连接,如下图所示。

Circuit-Diagram-for-connecting-Arduino-with-Atmega328.png

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

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

Set-Programmer-to-Arduino-as-ISP-for-programming-Atmega328.png

步骤5: - 现在,再次转到Tools并单击Programmer选项下方的Burn Bootloader。几秒钟后,bootloader成功上传。如果上传时出现任何错误,请检查连接。

Burn-Bootloader-into-Atmega328.png

您的面包板Arduino已准备好作为真正的Arduino开发板工作。现在,问题是如何烧写Atmega 328 IC?我们将在下一节讨论。

跳转到指定楼层
风筝
发表于: 2018-11-29 22:06:55 | 显示全部楼层

第3部分:如何编程已经上传Bootloader的Atmega328微控制器

独立的Atmega328控制器可以通过多种方式进行编程。

●    使用空白Arduino开发板,即不带Atmeg328的Arduino开发板。

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

●    使用USBasp编程器(涉及许多连线)。

Components-needed-for-Arduino-Bootloader-uploaded-Atmega-328IC.png


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


使用Arduino开发板编程Atmega328芯片

第1步: - 使用没有Atmega328芯片的Arduino开发板。将Arduino开发板与我们的面包板Arduino连接起来,如下图所示。

Circuit-Diagram-for-Programming-Atmega328-Chip-using-Arduino-board.png

第2步: - 将Arduino开发板与计算机连接,然后打开Arduino IDE。从ToolsBoard菜单中选择Arduino UnoProgrammer选择USBasp,并选择正确的电路板对应的com端口。

第3步: - 我们将从上传Blink程序开始。因此,从Examples中选择blink程序,然后点击Upload按钮。

Circuit-Hardware-for-DIY-Breadboard-Arduino-Circuit.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模块具有复位引脚,也称为DTR引脚,需要与Atmega328的复位引脚(引脚1)连接。


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

Checking-Device-Manager.png

如果没有标记,请记下com端口号并打开Arduino IDE。转到Tools -> Ports ->选择您看到的串口号。


第3步: - 现在,我们将上传blink程序到Arduino中。转到File -> Examples -> Basics -> Blink。从Tools的Board菜单中选择Arduino Uno,以USBasp方式选择Programmer,并更正开发板的串口号。然后点击上传按钮。


注意:如果您的FTDI模块没有DTR引脚,则按住面包板上的Reset按钮并点击上传按钮。如果它显示“编译草图”,则一直按住...一旦显示“正在上载”,请立即松开按钮...


现在,该程序将成功上传到带有Bootloader的Atmega328微控制器中了。

Breadboard-Arduino-Circuit.jpg

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 705 | 回复: 1492



手机版|

GMT+8, 2024-12-4 01:05 , Processed in 0.041025 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表