產品說明10
![](/commerce/images/arduino/DFR220/DFR220_0.jpg)
簡介
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,請在使用前檢查好電壓。
ARM核心的優勢
使用32位ARM核心的Due相較於以往的使用8位AVR核心的其他Arduino更強大。
主要的差別有:
- 32位核心在一個時鐘能處理32位的數據
- 84Mhz的CPU時鐘頻率
- 96 KBytes的SRAM
- 512 KBytes的Flash
- 一個DMA控制器, 能減輕CPU做大量運算時的壓力
技術規格
- 控制器 AT91SAM3X8E
- 工作電壓 3.3V
- 輸入電壓(推薦) 7-12V
- 輸入電壓(極限) 6-20V
- 數字I/O引腳 54 (其中12路PWM輸出)
- 模擬輸入口 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
-
Microcontroller | | AT91SAM3X8E |
Operating Voltage | | 3.3V |
Input Voltage (recommended) | | 7-12V |
Input Voltage (limits) | | 6-16V |
Digital I/O Pins | | 54 (of which 12 provide PWM output) |
Analog Input Pins | | 12 |
Analog Outputs Pins | | 2 (DAC) |
Total DC Output Current on all I/O lines | | 130 mA |
DC Current for 3.3V Pin | | 800 mA |
DC Current for 5V Pin | | 800 mA |
Flash Memory | | 512 KB all available for the user applications |
SRAM | | 96 KB (two banks: 64KB and 32KB) |
Clock Speed | | 84 MHz |
Length | | 101.52 mm |
Width | | 53.3 mm |
Weight | | 36 g |
存儲空間
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)。更多信息請參考相關文檔。