转帖:Arduino Due 中文介绍
kc20382013/09/03电子技术 IP:广西
Arduino Due 中文介绍

XXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXml
以下内容均翻译自XXXXXXXXXX,水平有限,如有错误请大家指正 。

105042ugvuuzbwt53g7nnb.jpg


概述
Arduino Due 是一块基于 Atmel SAM3X8E CPU的微控制器板.它是第一块基于 32ARM核心的arduino. 它有54个数字IO口 (其中12个可用于PWM输出),12个模拟输入口,4UART硬件串口, 84 MHz的时钟频率, 一个USB OTG接口, 两路DAC(模数转换),两路TWI,一个电源插座,一个SPI接口,一个JTAG接口,一个复位按键和一个擦写按键。

警告: 不同于其他arduinoarduino due的工作电压为3.3VIO口可承载电压也为3.3V。如果你使用更大的电压,比如5V到一个IO口,可能会烧了芯片。

电路板上已经包含控制运行所需的各种部件,你仅需要通过USB连接到电脑 或者 通过AC-DC适配器、电池连接到电源插座就可以让控制器开始运行。arduino due兼容工作在3.3V且引脚排列符合1.0 arduino标准的arduino扩展板。

ARM核心的优势
使用32ARM核心的Due相较于以往的使用8AVR核心的其他arduino更强大。明显的差别有:
32位核心在一个时钟能处理32位的数据;
84MhzCPU时钟频率;
96 KBytesSRAM
512 KBytesFlash
一个DMA控制器, 他能减轻 CPU做大量运算时的压力。

原理图及参考设计
arduino-Due-reference-design.zipSchematic: arduino-Due-schematic.pdf

摘要

微控制器  AT91SAM3X8E
工作电压  Voltage 3.3V
输入电压(推荐)  7-12V
输入电压(限制)  6-20V
数字I/O引脚  54 (其中12PWM输出)
模拟输入通道  Pins 12
模拟输出通道 Pins 2 (DAC)
IO口总输出电流 130 mA
3.3V端口输出能力   800 mA
5V端口输出能力   800 mA
Flash    512 KB (所有空间都可以储存用户程序)
SRAM   96 KB (两个部分: 64KB and 32KB)
时钟速率  84 MHz

电源
Arduino Due可以通过Micro USB接口或外接电源供电,电源可以自动被选择。
外部(非USB)电源可以用AC-DC适配器(wall-wart)或电池。 适配器可以插在一个2.1毫米规格中心是正极的电源插座上,以此连接到控制器电源。控制器能支持620V电压输入。如果输入电压低于7V, 5V引脚可能得到的电压会低于5V,控制器运行可能会不稳定。如果使用输入电压超过12V, 可能会造成控制器过热,甚至损坏损坏。推荐输入电压范围为712V。电源相关引脚如下:
VIN. Arduino 使用外部电源时的输入电压引脚(你可以通过这个引脚供电,或者当DC座供电时,通过这个引脚使用DC电源)
5V. 通过板载稳压芯片输出的5V的电压引脚。你可以从DC电源口、USBVIN三处给控制器供电。也可以绕过稳压IC,直接从5V3V3引脚供电,但不建议这样使用。
3.3V.通过板载稳压芯片输出的3.3V的电压引脚。 最大电流800 mA。该电压也是 SAM3X 的工作电压.
GND.接地引脚.
IOREF.该引脚提供arduino微控制器的工作参考电压. 一个适合的arduino扩展板能够读取 IOREF 引脚电压选择合适的电源, 或者提供3.3V5V的电平转换。

存储空间
SAM3X512 KB (两块256 KB)用于存储用户程序的Flash空间。ATMEL已经在生产芯片时,将bootloader预烧写进了ROM. SRAM96 KB,由两个连续空间64 KB32 KB组成. 所有可用存储空间 (Flash, RAM ROM) 都可以直接寻址。你可以通过板子上的擦写按钮,擦除SAM3X Flash 中的数据. 这个操作将删除当前加载的项目. 在通电状态下,按住擦写按钮几秒钟,即可擦写。
输入和输出
Digital I/O: 053号引脚
使用pinMode(), digitalWrite(), anddigitalRead() 函数,每一个IO都可以作为输入输出端口。他们工作在3.3V。每一个IO都可以输出 3 mA 或者 15 mA电流,或者输入6 mA 或者 9 mA电流。他们也都有100K 欧 的内部上拉电阻 (默认状态下不上拉)。另外,一些引脚有特殊功能:
Serial: 0 (RX) and 1 (TX)
Serial 1: 19 (RX) and 18 (TX)
Serial 2: 17 (RX) and 16 (TX)
Serial 3: 15 (RX) and 14 (TX)
串口发送接受端口(工作在3.3V电平). 其中01连接到了 ATmega16U2 的对应串口上,用于USBUART通信.
PWM: 引脚 2 to 13
使用analogWrite()函数提供8位的 PWM 输出. 可以通过analogWriteResolution() 函数改变PWM输出精度。
SPI: SPI接口 (在其他arduino上称作ICSP接口)
可以通过SPI库是SPI接口用于通信。SPI 引脚已经引出到了6针接口位置, 可以和 UnoLeonardoMega2560兼容. 这个SPI针仅用于和其他SPI设备通信,不能用于 SAM3X 的程序烧写。DueSPI可以通过Due专用的扩展库来使用其高级特性。
CAN: CANRX CANTX
硬件支持CAN,但arduino目前并不提供该API
"L" LED: 13
有一个内置的LED在数字脚13上,当引脚是高电平事,LED亮,引脚为低电平时,LED不亮。因为13脚带有PWM输出功能,因此可以进行亮度调节。
TWI 1: 20 (SDA) 21 (SCL)
TWI 2: SDA1 SCL1.
支持使用Wire库来进行TWI通信
模拟输入: A0 A11
Arduino Due12路模拟输入端, 每一路都有12位精度(0-4095)。默认情况下, 模拟输入精度为10, 和其他型号的 Arduino 控制器一样。通过analogReadResolution()你可以改变ADC的采样精度. Dueanalog inputs引脚测量范围为 0 3.3V。如果测量高于3.3V电压,可能会烧坏 SAM3XanalogReference() 函数在Due上是无效的.
AREF 引脚通过一个电阻桥接到 SAM3X 模拟参考脚. 如果要使用 AREF , 你需要先从PCB上拆下BR1这个电阻。
DAC1 and DAC2
通过analogWrite() 函数提供12位精度的模拟输出 (4096个等级) . 可以通过Audio库创建音频输出。

其他引脚:
AREF
模拟输入参考电压。通过analogReference()使用。
Reset
接低复位控制器。典型应用是通过该脚来连接扩展板上的复位按键。

通信
Arduino Due 可以通过多种方式与电脑、其他arduino 或者其他控制器通信, 也可以和其他不同的设备通信,像手机、平板、相机等等。SAM3X提供一组硬件UART3TTL (3.3V) 电平的UARTs 来进行串行通信。
程序下载接口连接着 ATmega16U2, 他虚拟了一个COM口在(Windows需要一个 .inf文件来识别该设备, OSX Linux 可以自动识别). SAM3X 的硬件UART也连接着ATmega16U2。 串口 RX0TX0通过ATmega16U2 提供了用于下载程序的串口转USB通信。ArduinoIDE包含了一个串口监视器, 可以通过串口监视发送或接收简单的数据。当数据通过16U2传输时 或者 USB连接电脑时(并不是01上的串口通信),板子上的RXTX两个LED会闪烁。
原生的USB口虚拟串行CDC通信,这样可以提供一个串口,与串口监视器 或者 你电脑上其他应用相连。这个USB口也可以用来模拟一个 USB鼠标或者键盘。要使用这个功能,请查看鼠标键盘库支持页面 。这个原生USB口也可以作为USB 主机去连接其他外设,如鼠标, 键盘、智能手机. 要使用这个功能, 请查看USBHost支持页面。
SAM3X 也支持TWISPI通信.ArduinoIDE中可以通过Wire库轻而易举的使用TWI总线;使用SPI库可以进行SPI通信,细节方面请查看SPI支持页面。
编程
Arduino Due通过ArduinoIDE中的download下载程序.。在SAM3Xarduino上 上传程序和AVR控制器有所不同,这是因为flash在上传程序前,需要被擦写。 SAM3X ROM中的程序会进行上传任务,但运行该程序的前提是SAM3Xflash空间是空的。
004043uh7h5amrcehazha4.jpg



两个USB接口都可以给Due下载程序, 由于芯片擦除方式的影响,更推荐使用编程端口:


编程端口:
使用这个端口下载, 你需要在arduinoIDE中选择"Arduino Due (Programming Port)"作为你的板子。连接编程端口 (靠近DC座的那一个) 到你的电脑。编程端口使用16U2来作为USBserial连接到SAM3X 的第一UART(RX0 and TX0)16U2上有两个针连接到连接到SAM3X的复位和擦除脚。在1200波特率下,打开和关闭串口会触发SAM3X的硬擦写程序,在通信之前通过串口触发 SAM3X 的擦写和复位引脚。推荐使用这个端口,上传程序到arduino。相对于使用原生USB端口软擦写芯片,使用编程端口硬擦写更稳定可靠。即使主芯片坏了,该端口仍旧会工作。


原生端口:
使用这个端口下载, 你需要在arduinoIDE中选择  "Arduino Due (Native USB Port)" 作为你的板子。连接原生USB端口 (靠近复位按键的那一个) 到你的电脑。在1200波特兰下,打开和关闭串口会触发SAM3X的软擦写程序:flash空间被擦写、程序倒转到bootloader区。如果主芯片损坏,软擦写程序 会不工作,这是因为该程序完全在SAM3X 上。开关原生USB端口baudrate 不会复位SAM3X

不同于其他的Arduino控制器使用avrdude上传程序, Due上传程序依赖于 bossac

ATmega16U2固件源码能在arduino库中找到。你可以使用外部编程器,通过ISP接口烧写固件 (覆盖DFU bootloader)。更多信息请参考相关文档。

USB过流保护

Arduino Due上有一个自恢复保险丝,短路或者过流时,可以自动断开,从而保护你的电脑USB.。大部分电脑都带有内部过流保护,这个保险丝可以提供一层额外保护。 当电流大于500MA时,这个保险丝会自动断开,直到没有过载或者短路现象。


外形和扩展板兼容性

这段我真不想翻译了,和2560的外形一样。扩展板兼容考虑下电平就好。


翻译自XXXXXXXXXX
XXXXXXXXXXXXXXXXX/en/Main/ArduinoBoardDue
  
+20  科创币    发热门诊    2013/09/03 高质量发帖
来自:电子信息 / 电子技术
1
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
kc2038
学者 机友 笔友
文章
37
回复
268
学术分
1
2009/01/06注册,5年9个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}