购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 Arduino DUE

Arduino DUE提供了一个32位微控制器,可以用于开发大型项目。Arduino DUE工作在3.3V,具有54针数字I/O(12个PWM)、12个模拟输入、84MHz时钟、2DAC(数模转换)和JTAG,用于直接编程和调试,如图1-5所示。

图1-5 Arduino DUE

1.3.1 概述

Arduino DUE是基于Atmel SAM3X8E ARM Cortex-M3 CPU的微控制器板。它是基于32位ARM内核微控制器的第一个Arduino板卡。它有54个数字输入输出引脚(其中12个可用作PWM输出)、12个模拟输入、4个UART(硬件串行端口)、84MHz时钟、支持USB OTG功能的2个DAC(数模转换器)、2个TWI、电源插孔、SPI接头、JTAG接头、复位按钮和擦除按钮。

与其他Arduino板不同的是,Arduino DUE运行在3.3V。I/O引脚可承受的最大电压为3.3V。向I/O引脚提供更高的电压(如5V)可能会损坏电路板。

该板包含支持微控制器所需的一切,只需使用微型USB电缆将其连接到计算机,或用AC到DC适配器、电池供电即可开始使用。Arduino DUE与所有Arduino扩展板兼容,工作在3.3V,符合1.0版本的Arduino引脚排列。

TWI是靠近AREF引脚的SDA和SCL引脚。IOREF引脚能够通过适当的配置让连接的扩展板适应电路板提供电压。这样,扩展板就与DUE之类的3.3V电路板和基于AVR、工作电压为5V的电路板兼容,未连接引脚留作将来之用。

Arduino DUE拥有32位ARM内核,可以优于典型的8位微控制器板。最重要的区别有:

一个32位内核,允许在单个CPU时钟内对4个字节宽的数据进行操作;

CPU时钟为84MHz;

96KB SRAM;

512KB闪存的代码存储空间;

一个DMA控制器,可以缓解CPU执行内存密集型任务。

微控器的参数和开发板的总体参数,如表1-6和表1-7所示。

表1-6 Arduino DUE微控制器参数

表1-7 Arduino DUE总体参数

1.3.2 技术规范

本部分主要介绍Arduino DUE开发板的电源、存储器、输入和输出、通信、编程、自动(软件)复位、USB过流保护、物理特性和输出引脚。

1.电源

Arduino DUE可通过USB连接器或者外部电源供电。自动选择电源。外部(非USB)电源可以是AC-DC适配器(壁式),也可以是电池。通过将2.1mm中心正极插头插入电路板的电源插座即可连接适配器,电池的引线可插入电源连接器的GND和Vin排针。

电路板可由6~20V外部电源供电。然而,如果电源电压低于7V,那么5V引脚可能会提供低于5V的电压,电路板也许会不稳定。如果电源电压超过12V,稳压器可能会过热,从而损坏电路板,电压范围建议为7~12V。电源引脚如下:

Vin:使用外部电源时Arduino板的输入电压(与通过USB连接或其他稳压电源提供的5V电压相对)。如果通过电源插座提供电压,则可通过该引脚使用。

5V:该引脚通过电路板上的稳压器输出5V电压。电路板可由DC电源插座(7~12V)、USB连接器(5V)或电路板的Vin引脚(7~12V)供电。通过5V或3.3V引脚供电会旁路稳压器,从而损坏电路板,不建议如此。

3V3:板载稳压器产生的3.3V电源。最大电流消耗为800mA。该稳压器还为SAM3X微控制器供电。

GND:接地引脚。

IOREF:Arduino板上的该引脚提供微控制器的工作电压参考。配置得当的扩展板可以读取IOREF引脚电压,选择合适的电源或者启动输出的电压转换器以便在5V或3.3V电压下运行。

2.存储器

SAM3X带有512KB(2个256KB)闪存,可存储代码。Atmel在工厂内已将启动加载器预先烧录到了专用ROM存储器中。可用SRAM为96KB,被划分成2个相邻的库,分别为64KB和32KB。所有可用存储器(闪存、RAM和ROM)均可作为平面寻址空间直接进行访问。

可以利用板载“擦除”按钮清除SAM3X的闪存,这能将当前加载的程序从MCU中移除。电路板通电时,按下“擦除”按钮并保持几秒钟即可擦除。

3.输入和输出

数字I/O:引脚0~53。利用pinMode()、digitalWrite()和digitalRead()函数,DUE上的54个数字引脚都可用作输入或输出。它们的工作电压为3.3V。根据引脚的不同,每个引脚都可以提供(源)3mA或15mA的电流,或者接受(吸收)6mA或9mA的电流。它们还有1个100kΩ的内部上拉电阻器(默认情况下断开)。此外,某些引脚还具有特殊功能:

串口:0(RX)和1(TX);

串口1:19(RX)和18(TX);

串口2:17(RX)和16(TX);

串口3:15(RX)和14(TX)。

用于接收(RX)和发送(TX)TTL串口数据(3.3V电平)。引脚0和1与ATmega16U2 USB转TTL串口芯片的相应引脚相连。

PWM:引脚2~13。使用analogWrite()函数提供8位PWM输出。可以用analogWriteResolution()函数改变PWM的分辨率。

SPI:SPI接口(其他Arduino板上的ICSP接口)。这些引脚支持利用SPI库进行SPI通信。SPI引脚被引出到中央6引脚接口上,其与UNO、LEONARDO和MEGA 2560物理兼容。SPI头只可用于与其他SPI器件通信,不可用于通过在线串行技术给SAM3X编程。DUE的SPI还具有与DUE的扩展SPI法一起使用的高级特性。

CAN:CANRX和CANTX。引脚支持CAN通信协议,但还未得到Arduino API的支持。

LED:13引脚。有1个内置式LED连至数字引脚13。在引脚为高值时,LED打开;引脚为低值时,LED关闭。还可以给LED调光,因为数字引脚13还是PWM输出。

TWI 1:20(SDA)和21(SCL)。

TWI 2:SDA1和SCL1。

支持通过Wire库实现TWI通信。可以利用Wire库提供的Wire1组控制SDA1和SCL1。虽然SDA和SCL有内部上拉电阻器,但是SDA1和SCL1却没有。在SDA1和SCL1线路上添加2个上拉电阻器方可使用Wire1。

模拟输入:引脚A0~A11。DUE有12个模拟输入,每个模拟输入均可提供12位的分辨率(即4096个不同的数值)。默认情况下,为了与其他Arduino板兼容,读数的分辨率设为10位。可以利用analogReadResolution()改变ADC的分辨率。DUE的模拟输入引脚的电压为0~3.3V(最大值)。在DUE的引脚上施加高于3.3V的电压会损坏SAM3X芯片。在DUE上,analogReference()函数被忽略。

AREF引脚通过电阻器桥与SAM3X模拟参考引脚相连。如需使用AREF引脚,必须将电阻器BR1从PCB上拆下来。

DAC1和DAC2。这些引脚通过analogWrite()函数为真正的模拟输出提供了12位分辨率(4096电平)。这些引脚可用于通过音频库创建音频输出。

电路板上的其他引脚:

AREF:模拟输入的参考电压,与analogReference()一起使用;

Reset:降低线路值以复位微控制器,通常用于为扩展板添加复位按钮。

4.通信

Arduino DUE有很多工具可供与计算机、另一个Arduino或其他微控制器和不同的器件(例如手机、平板电脑、照相机等)通信之用。SAM3X提供了1个硬件UART和3个硬件USART,可以实现TTL(3.3V)串口通信。

编程端口与ATmega16U2相连,其为计算机上的软件提供了一个虚拟通信端口(如需识别该器件,Windows计算机需要1个.inf文件,但OSX和Linux计算机会自动将电路板识别成通信端口)。16U2还与SAM3X硬件UART相连。引脚RX0和TX0上的串口为通过ATmega16U2微控制器给电路板编程提供了串口转USB通信。Arduino软件包含1个串行监控器,使得简单的文本数据能够发送到设备或从电路板上发出。当通过计算机的ATmega16U2芯片和USB连接传输数据时,电路板上的RX和TX LED会闪烁(但不适于引脚0和1上的串行通信)。

本机USB端口连接到SAM3X。它允许通过USB进行串行(CDC)通信。这提供了串行监视器或计算机上其他应用程序的串行连接,可以将USB鼠标或键盘模拟到连接的计算机。

本机USB端口还可以充当连接外围设备(如鼠标、键盘和智能手机)的USB主机。SAM3X还支持TWI和SPI通信。Arduino软件包括一个Wire库,用于简化TWI总线的使用。对于SPI通信,请使用SPI库。

5.编程

可以利用Arduino软件给Arduino DUE编程。将程序上传至SAM3X不同于其他Arduino板内的AVR微控制器,因为需要擦除闪存方可重新编程。上传至芯片由SAM3X上的ROM管理,只有在芯片的闪存为空时它才运行。

其中1个USB端口可用于给电路板编程,由于芯片擦除处理方式的原因,建议使用编程端口。

编程端口:在Arduino IDE中选择“Arduino DUE(编程端口)”作为电路板即可使用该端口。将DUE的编程端口(最靠近DC电压插座的端口)连至计算机。编程端口将16U2用作连至SAM3X的第一个UART(RX0和TX0)的USB转串口芯片。16U2有2个引脚连至SAM3X的复位和擦除引脚。打开和关闭连接速度为1200波特的编程端口会触发SAM3X芯片的“硬擦除”规程,激活SAM3X上的擦除和复位引脚,然后与UART通信。建议使用该端口给DUE编程。这比Native端口上的“软擦除”更可靠,并且即使主MCU已经崩溃,它也能正常运行。

Native端口:在Arduino IDE中选择“Arduino DUE(Native USB端口)”作为电路板即可使用该端口。Native USB端口直接连至SAM3X。将DUE的Native USB端口(最靠近复位按钮的端口)连至计算机。打开和关闭连接速度为1200波特的Native端口会触发“软擦除”规程:闪存被清除,电路板通过启动加载器重启。如果MCU由于某种原因而崩溃了,那么很可能是软擦除规程失灵,因为该规程完全是在SAM3X上的软件内发生的。打开和关闭波特率不同的Native端口不会复位SAM3X。

与使用avrdude上传的其他Arduino板不同,DUE采用bossac。Arduino库提供ATmega16U2固件源代码。可以使用带有外部编程器(覆写DFU启动加载器)的ISP接口。

6.USB过流保护

Arduino DUE有1根自恢复保险丝,能够保护计算机USB端口免遭短路和过电流的损害。尽管大部分计算机都有它们自己的内部保护,但保险丝提供了更多一层保护。如果施加到USB端口上的电流超过500mA,那么保险丝会自动切断连接,直到短路或过电流情况消失为止。

7.物理特性

Arduino DUE PCB的最大长度和宽度分别为4inch和2.1inch,USB连接器和电源插孔延伸超出以前的尺寸。三个螺孔允许板连接到表面或外壳。请注意,数字引脚7和8之间的距离为160mil(0.16″),而不是其他引脚的100 mil间距的偶数倍。

Arduino DUE的设计与面向UNO、Diecimila或Duemilanove的扩展板大多都兼容。数字引脚0~13(和相邻的AREF与GND引脚)、模拟输入0~5、电源接口和ICSP(SPI)接口都在对应的位置。并且,主UART(串行端口)位于相同的引脚(0和1)上。请注意,I2C不在与Duemilanove/Diecimila(模拟量输入4和5)的DUE(20和21)相同的引脚上。 SiRzA0ppy8q9o7qy2prHGaRmQm9lVfmCq68ef5n865wxGR0HWT6S2BR2cbt0TwLq

点击中间区域
呼出菜单
上一章
目录
下一章
×