Arduino Due 是一塊基于 Atmel SAM3X8E CPU的微控制器板.它是第一塊基于32位ARM的Arduino. 和之前的ArduinoMega非常類似,它有54個(gè)數(shù)字IO口(其中12個(gè)可用于PWM輸出),12個(gè)模擬輸入口,4路UART硬件串口。但是它的時(shí)鐘頻率達(dá)到84 MHz, 還有一個(gè)USB OTG接口, 兩路DAC(模數(shù)轉(zhuǎn)換),兩路TWI。Arduino Due最大的變化是它的工作電壓為3.3V。IO口可承載電壓也為3.3V。因此它不兼容原來的為5V設(shè)計(jì)的Shield和外設(shè)。不恰當(dāng)?shù)倪B接5V電源和外設(shè)可能會(huì)燒毀Arduino DUE,請(qǐng)?jiān)谑褂们皺z查好電壓。
如果您在選型方面有所困惱,可以查看我們的Arduino官方控制器選型指南。
更多比較可見:Arduino 選型指南
ARM核心的優(yōu)勢(shì)使用32位ARM核心的Due相較于以往的使用8位AVR核心的其他Arduino更強(qiáng)大。
主要的差別有:
-
32位核心在一個(gè)時(shí)鐘能處理32位的數(shù)據(jù)
-
84Mhz的CPU時(shí)鐘頻率
-
512 KBytes的Flash
-
一個(gè)DMA控制器, 能減輕CPU做大量運(yùn)算時(shí)的壓力
-
控制器 AT91SAM3X8E
-
工作電壓 3.3V
-
輸入電壓(推薦) 7-12V
-
輸入電壓(極限) 6-20V
-
數(shù)字I/O引腳 54 (其中12路PWM輸出)
-
模擬輸入口 Pins 12
-
模擬輸出口 Pins 2 (DAC)
-
IO口總輸出電流 130 mA
-
3.3V端口輸出能力 800 mA
-
5V端口輸出能力 800 mA
-
Flash 512 KB (所有空間都可以儲(chǔ)存用戶程序)
-
SRAM 96 KB (兩個(gè)部分: 64KB and 32KB)
-
時(shí)鐘速率 84 MHz
SAM3X有512 KB (兩塊256 KB)用于存儲(chǔ)用戶程序的Flash存儲(chǔ)空間。ATMEL在生產(chǎn)芯片時(shí),已經(jīng)將bootloader預(yù)燒寫進(jìn)了ROM里。 SRAM有96 KB,由兩個(gè)連續(xù)空間64 KB和32 KB組成. 所有可用存儲(chǔ)空間 (Flash, RAM 和 ROM) 都可以直接尋址。你可以通過板子上的擦寫按鈕,擦除SAM3X 的 Flash 中的數(shù)據(jù)。 這個(gè)操作將刪除當(dāng)前加載的項(xiàng)目。 在通電狀態(tài)下,按住擦寫按鈕幾秒鐘,即可擦寫。
輸入和輸出-
Digital I/O: pins from 0 to 53
-
使用pinMode(), digitalWrite(), anddigitalRead() 函數(shù),每一個(gè)IO都可以作為輸入輸出端口。他們工作在3.3V。每一個(gè)IO都可以輸出 3 mA 或者 15 mA電流,或者輸入6 mA 或者 9 mA電流。也都有100K 歐 的內(nèi)部上拉電阻 (默認(rèn)狀態(tài)下不上拉)。
-
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()函數(shù)提供8位的 PWM 輸出. 可以通過analogWriteResolution() 函數(shù)改變PWM輸出精度。
-
SPI: SPI接口 (在其他arduino上稱作ICSP接口) 可以通過SPI庫(kù)是SPI接口用于通信。SPI 引腳已經(jīng)引出到了6針接口位置, 可以和 Uno、Leonardo、Mega2560兼容. 這個(gè)SPI針僅用于和其他SPI設(shè)備通信,不能用于 SAM3X 的程序燒寫。Due的SPI可以通過Due專用的擴(kuò)展庫(kù)來使用其高級(jí)特性。
-
CAN: CANRX 和 CANTX硬件支持CAN,但Arduino目前的IDE并不提供該API
-
TWI 1: 20 (SDA) 和 21 (SCL)
-
TWI 2: SDA1 和 SCL1.支持使用Wire庫(kù)來進(jìn)行TWI通信
-
模擬輸入: A0 到 A11 Arduino Due有12路模擬輸入端, 每一路都有12位精度(0-4095)。默認(rèn)情況下, 模擬輸入精度為10位, 和其他型號(hào)的 Arduino 控制器一樣。通過analogReadResolution()你可以改變ADC的采樣精度. Due的 analog inputs引腳測(cè)量范圍為 0 至 3.3V。如果測(cè)量高于3.3V電壓,可能會(huì)燒壞 SAM3X。analogReference() 函數(shù)在Due上是無效的.
-
AREF 引腳通過一個(gè)電阻橋接到 SAM3X 模擬參考腳. 如果要使用 AREF 腳, 你需要先從PCB上拆下BR1這個(gè)電阻。
-
DAC1 and DAC2通過analogWrite() 函數(shù)提供12位精度的模擬輸出 (4096個(gè)等級(jí)) . 可以通過Audio庫(kù)創(chuàng)建音頻輸出。
Arduino Due通過最新的Arduino IDE1.5下載,首先選中的“download”下載程序.。在SAM3X的Arduino上 上傳程序和AVR控制器有所不同,這是因?yàn)閒lash在上傳程序前,需要被擦寫。 SAM3X 的ROM中的程序會(huì)進(jìn)行上傳任務(wù),但運(yùn)行該程序的前提是SAM3X的flash空間是空的。兩個(gè)USB接口都可以給Due下載程序, 由于芯片擦除方式的影響,更推薦使用編程端口:
編程端口: 使用這個(gè)端口下載, 你需要在ArduinoIDE中選擇"Arduino Due (Programming Port)"。連接編程端口 (靠近DC座的那一個(gè)) 到你的電腦。編程端口使用16U2來作為USB轉(zhuǎn)serial連接到SAM3X 的第一UART(RX0 and TX0)。16U2上有兩個(gè)針連接到連接到SAM3X的復(fù)位和擦除腳。在1200波特率下,打開和關(guān)閉串口會(huì)觸發(fā)SAM3X的硬擦寫程序,在通信之前通過串口觸發(fā) SAM3X 的擦寫和復(fù)位引腳。推薦使用這個(gè)端口,上傳程序到Arduino。相對(duì)于使用原生USB端口軟擦寫芯片,使用編程端口硬擦寫更穩(wěn)定可靠。即使主芯片壞了,該端口仍舊會(huì)工作。
原生端口: 使用這個(gè)端口下載, 你需要在ArduinoIDE中選擇 "Arduino Due (Native USB Port)" 作為你的板子。連接原生USB端口 (靠近復(fù)位按鍵的那一個(gè)) 到你的電腦。在1200波特率下,打開和關(guān)閉串口會(huì)觸發(fā)SAM3X的軟擦寫程序:flash空間被擦寫、程序倒轉(zhuǎn)到bootloader區(qū)。如果主芯片損壞,軟擦寫程序 會(huì)不工作,這是因?yàn)樵摮绦蛲耆赟AM3X 上。開關(guān)原生USB端口baudrate 不會(huì)復(fù)位SAM3X。
不同于其他的Arduino控制器使用avrdude上傳程序, Due上傳程序依賴于 bossac。ATmega16U2固件源碼能在arduino庫(kù)中找到。你可以使用外部編程器,通過ISP接口燒寫固件 (覆蓋DFU bootloader)。更多信息請(qǐng)參考相關(guān)文檔。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35611 -
DFRobot
+關(guān)注
關(guān)注
4文章
1159瀏覽量
9716
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論