产品简介
Arduino Due 是一块基于 Atmel SAM3X8E CPU的微控制器板.它是第一块基于32位ARM的Arduino. 和之前的ArduinoMega非常类似,它有54个数字IO口(其中12个可用于PWM输出),12个模拟输入口,4路UART硬件串口。但是它的时钟频率达到84 MHz, 还有一个USB OTG接口, 两路DAC(模数转换),两路TWI。Arduino Due最大的变化是它的工作电压为3.3V。IO口可承载电压也为3.3V。因此它不兼容原来的为5V设计的Shield和外设。不恰当的连接5V电源和外设可能会烧毁Arduino DUE,请在使用前检查好电压。
如果您在选型方面有所困恼,可以查看我们的Arduino官方控制器选型指南。
更多比较可见: Arduino 选型指南
ARM核心的优势
使用32位ARM核心的Due相较于以往的使用8位AVR核心的其他Arduino更强大。
主要的差别有:
技术规格
存储空间
SAM3X有512 KB (两块256 KB)用于存储用户程序的Flash存储空间。ATMEL在生产芯片时,已经将bootloader预烧写进了ROM里。 SRAM有96 KB,由两个连续空间64 KB和32 KB组成. 所有可用存储空间 (Flash, RAM 和 ROM) 都可以直接寻址。你可以通过板子上的擦写按钮,擦除SAM3X 的 Flash 中的数据。 这个操作将删除当前加载的项目。 在通电状态下,按住擦写按钮几秒钟,即可擦写。
输入和输出
-
Digital I/O: pins from 0 to 53
-
使用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)
-
PWM: 引脚 2 to 13 使用analogWrite()函数提供8位的 PWM 输出. 可以通过analogWriteResolution() 函数改变PWM输出精度。
-
SPI: SPI接口 (在其他arduino上称作ICSP接口) 可以通过SPI库是SPI接口用于通信。SPI 引脚已经引出到了6针接口位置, 可以和 Uno、Leonardo、Mega2560兼容. 这个SPI针仅用于和其他SPI设备通信,不能用于 SAM3X 的程序烧写。Due的SPI可以通过Due专用的扩展库来使用其高级特性。
-
CAN: CANRX 和 CANTX 硬件支持CAN,但Arduino目前的IDE并不提供该API
-
TWI 1: 20 (SDA) 和 21 (SCL)
-
TWI 2: SDA1 和 SCL1. 支持使用Wire库来进行TWI通信
-
模拟输入: A0 到 A11 Arduino Due有12路模拟输入端, 每一路都有12位精度(0-4095)。默认情况下, 模拟输入精度为10位, 和其他型号的 Arduino 控制器一样。通过analogReadResolution()你可以改变ADC的采样精度. Due的 analog inputs引脚测量范围为 0 至 3.3V。如果测量高于3.3V电压,可能会烧坏 SAM3X。analogReference() 函数在Due上是无效的.
-
AREF 引脚通过一个电阻桥接到 SAM3X 模拟参考脚. 如果要使用 AREF 脚, 你需要先从PCB上拆下BR1这个电阻。
-
DAC1 and DAC2 通过analogWrite() 函数提供12位精度的模拟输出 (4096个等级) . 可以通过Audio库创建音频输出。
编程
Arduino Due通过最新的Arduino IDE1.5下载,首先选中的“download”下载程序.。在SAM3X的Arduino上 上传程序和AVR控制器有所不同,这是因为flash在上传程序前,需要被擦写。 SAM3X 的ROM中的程序会进行上传任务,但运行该程序的前提是SAM3X的flash空间是空的。 两个USB接口都可以给Due下载程序, 由于芯片擦除方式的影响,更推荐使用编程端口:
编程端口: 使用这个端口下载, 你需要在ArduinoIDE中选择"Arduino Due (Programming Port)"。连接编程端口 (靠近DC座的那一个) 到你的电脑。编程端口使用16U2来作为USB转serial连接到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)。更多信息请参考相关文档。
相关文档