Arduino UNO开发板硬件设计全解析

您所在的位置:网站首页 arduino编程器选择 Arduino UNO开发板硬件设计全解析

Arduino UNO开发板硬件设计全解析

2022-07-13 06:56| 来源: 网络整理| 查看: 265

本篇文章主要从硬件角度介绍Arduino开发板是如何工作的。

大多数文章都介绍的是Arduino的软件。但是,深入了解其硬件设计有助于您在Arduino旅程中迈出坚实的一步。掌握Arduino硬件的电子设计将帮助您学习如何将Arduino嵌入到最终产品的设计中,包括应该从原始设计中保留以及省略哪些部分。

组件概述

Arduino UNO开发板的PCB设计全部采用使用SMD(表面贴装器件)组件。几年前,当我学习Arduino PCB设计时,我开始了解SMD组件,而我当时正在重新DIY设计一款Arduino UNO的克隆版。

集成电路使用标准化的封装,并且采用了各种封装形式。

许多SMD电阻、电容和LED的尺寸是通过以下的封装代码表示:

Yahya_1.jpg (27 KB, 下载次数: 45)

下载附件  保存到相册

2018-4-16 10:44 上传

电阻、电容和电感等分立元件的SMD封装代码。

大多数的封装是通用的,可用于具有不同功能的不同部分。例如,SOT-223封装可以是一个晶体管或一个稳压器。

Arduino_Parts_diag.jpg (76.36 KB, 下载次数: 61)

下载附件  保存到相册

2018-4-16 10:44 上传

下表列出了Arduino UNO采用的部分元件以及各自对应的封装:

元件 封装NCP1117ST50T3G 5V稳压器SOT223LP2985-33DBVR 3.3V稳压器 SOT753 / SOT23-5M7二极管 SMBLMV358IDGKR双通道放大器 MSOP08FDN340P P沟道MOSFET晶体管 SOT23ATmega16U2-MU MLF32

Arduino UNO系统概述

在我们了解UNO的硬件之前,我们必须首先对系统进行总体概述。

使用Arduino IDE编译代码后,应通过USB连接将其上传到Arduino UNO的主微控制器。由于主微控制器没有USB收发器,因此需要一个桥接器来转换微控制器的串行接口(UART)与主机USB信号之间的信号。

最新版本中的桥接器是ATmega16U2,它有一个USB收发器和一个串行接口(UART)。

为了给你的Arduino开发板供电,你可以使用USB供电。另一种方式是使用DC插孔。您可能会问,“如果我同时连接了直流适配器和USB,哪个会是电源?”答案将在本文的“电源部分”一节中讨论。

要复位您的开发板,您应该使用开发板上的按钮。每次从Arduino IDE打开串行监视器时,都应该产生另一个复位源。

我将原始的Arduino UNO原理图重新进行分配,使其更加易读,如下所示。

Arduino_schematic.png (47.61 KB, 下载次数: 156)

下载附件  保存到相册

2018-4-16 10:44 上传

原始Arduino原理图的重新分配版本

微控制器

需要重视的一点是Arduino开发板包含一个微控制器,并且该微控制器是执行程序中的指令的。如果你知道这一点,你将不会再说类似“Arduino是一个微控制器”的话了。

Arduino UNO R3中使用ATmega328微控制器作为主控制器。 ATmega328是AVR系列的一个MCU;它是一个8位器件,这意味着其数据总线架构和内部寄存器被设计为处理8个并行数据信号。

ATmega328有三种类型的内存:

●    Flash闪存:32KB非易失性存储器。这用于存储应用程序,这就解释了为什么每次从电源拔下arduino时都不需要上传应用程序。

●    SRAM存储器:2KB易失存储器。这用于存储应用程序在运行时使用的变量。

●    EEPROM存储器:1KB非易失性存储器。这可用于存储即使在电路板断电然后再次通电后也必须可用的数据。

让我们简单回顾一下这个MCU的规格:

封装

该MCU采用的是DIP-28封装,这意味着它具有双列直插式封装中的28个引脚。这些引脚包括电源和I / O引脚。大多数引脚是多功能的,这意味着可以根据您在软件中配置的方式,使用相同引脚的不同模式。这减少了必要的引脚数,因为微控制器不需要为每个功能单独设置引脚。它还可以使您的设计更加灵活,因为一个I / O连接可以提供多种类型的功能。

ATmega328也有其他封装,如TQFP-32 SMD封装(表面贴装器件)。

DIP28_QFP.jpg (23.81 KB, 下载次数: 60)

下载附件  保存到相册

2018-4-16 10:44 上传

Atmega328两个不同的封装

电源

MCU支持1.8至5.5 V的电源电压。但是,对工作频率有限制;例如,如果要使用最大时钟频率(20 MHz),则需要至少4.5 V的电源电压。

数字I / O

该MCU有三个端口:PORTB、PORTC和PORTD。这些端口的所有引脚都可用于通用数字I / O或用于下面引脚分配中指示的复用功能。例如,PORTC引脚0到引脚5可以是ADC输入,而不是数字I / O。

还有一些引脚可以配置为PWM输出。这些引脚在Arduino板上标有“〜”。

注意:ATmega168与ATmega328几乎相同,并且它们是引脚兼容的。不同之处在于,与ATmega168的16KB闪存,512字节EEPROM和1KB RAM相比,ATmega328具有更多内存(32KB闪存,1KB EEPROM和2KB RAM)。

Atmega328_Arduino_Pinout.png (103.84 KB, 下载次数: 71)

下载附件  保存到相册

2018-4-16 10:44 上传

采用Arduino标签的ATmega168引脚排列;ATmega168和ATmega328引脚兼容。

Arduino_UNO_R3_Pinout.jpg (225.09 KB, 下载次数: 65)

下载附件  保存到相册

2018-4-16 10:44 上传

Arduino UNO R3引脚排列。

ADC输入

该MCU具有6个通道 - PORTC0至PORTC5 - 具有10位分辨率的A / D转换器。这些引脚连接到Arduino板上的模拟插头。

一个常见的错误是将模拟输入视为专用于A / D功能的输入,因为电路板中的插头显示为“模拟”。事实是,您可以将它们用作数字I / O或A / D。

Atmega328_ADC.jpg (45.86 KB, 下载次数: 67)

下载附件  保存到相册

2018-4-16 10:44 上传

ATmega328框图。

如上图所示(通过红色迹线),与A / D单元相关的引脚为:

AVCC:A / D单元的电源引脚。

AREF:如果您想为ADC使用外部参考电压而不是内部Vref,则可选择使用输入引脚。您可以使用内部寄存器进行配置。

Atmega328_Vref.jpg (34.7 KB, 下载次数: 55)

下载附件  保存到相册

2018-4-16 10:44 上传

用于选择Vref源的内部寄存器设置。

UART外设

UART(通用异步接收器/发送器)是一个串行接口。 ATmega328只有一个UART模块。

UART的引脚(RX、TX)连接至USB至UART转换器电路,并连接至数字插头中的引脚0和引脚1。如果您已经使用UART通过USB发送/接收数据,则必须避免使用UART。

SPI外设

SPI(串行外设接口)是另一种串行接口。 ATmega328只有一个SPI模块。

除了将其用作串行接口外,还可以使用独立编程器对MCU进行编程。您可以从Arduino UNO开发板中的MCU旁边的插头或数字插头访问SPI的引脚,如下所示:

11 < - > MOSI

12 < - > MISO

13 < - > SCK

TWI

I2C或TWI接口包含两条线,串行数据SDA和串行时钟SCL。

您可以通过数字插头的最后两个引脚或者模拟插头的引脚4和引脚5来访问这些引脚。

其他功能

MCU中包含其他功能,例如定时器/计数器模块提供的功能。您可能不知道您在代码中未使用的功能。您可以参考数据表以获取更多信息。

Arduino_MCU_Part.jpg (53.06 KB, 下载次数: 68)

下载附件  保存到相册

2018-4-16 10:44 上传

Arduino UNO R3 MCU部分。

回到电子设计,微控制器部分具有以下内容:

●    ATmega328-PU:我们刚才谈到的MCU。

●    IOL和IOH(数字)插头:除GND、AREF、SDA和SCL外,这些插头还是针脚0至13的数字插头。请注意,来自USB桥的RX和TX连接到引脚0和引脚1。

●    AD插头:模拟引脚的插头。

●    16 MHz陶瓷谐振器(CSTCE16M0V53-R0):与MCU的XTAL2和XTAL1连接。

●    复位引脚:通过一个10K电阻上拉,有助于防止在嘈杂的环境中发生虚假复位;该引脚具有一个内部上拉电阻,但根据AVR硬件设计考虑事项应用指南(AVR042),“如果环境噪声太大,可能会导致不必要的复位,并且偶尔会发生复位。”如果用户按下复位按钮或者USB桥发出一个复位信号,就会产生复位。你也可以看到一个D2二极管。这个二极管的作用在同一应用笔记中有描述:“如果不使用高电压编程,建议从RESET到Vcc增加一个ESD保护二极管,因为由于高电压编程而内部未提供该二极管。”

●    C4和C6电容(100nF):添加这些器件用于滤除电源噪声。电容的阻抗随频率下降:

XC=12πfC

电容给高频噪声信号提供了一条低阻抗接地路径。 100nF是最常见的值。

●    PIN13:连接到MCU的SCK引脚,也连接到LED。 Arduino开发板使用一个缓冲器(LMV358)驱动LED。

●    ICSP插头(在线串行编程):用于使用外部编程器编程ATmega328。它连接到在系统编程(ISP)接口(使用SPI引脚)。通常情况下,您不需要使用这种编程方式,因为引导加载程序通过使用桥接器连接到USB的UART接口来处理MCU的编程。只有在生产中第一次向MCU编程一个引导加载程序时才会使用此头文件。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3