(SKU:RB-01C043)Arduino Due ARM級控制器

來自ALSROBOT WiKi
2015年9月12日 (六) 09:49Arduino77討論 | 貢獻的版本

跳轉(zhuǎn)至: 導(dǎo)航、 搜索
RB-01C043.jpg

目錄

產(chǎn)品概述

Arduino Due 是一塊基于 Atmel SAM3X8E CPU的微控制器板.該款控制器為美國電子巨頭Sparkfun Electronic原裝進口產(chǎn)品。它是第一塊基于 32位ARM核心的arduino. 它有54個數(shù)字IO口 (其中12個可用于PWM輸出),12個模擬輸入口,4路UART硬件串口, 84 MHz的時鐘頻率, 一個USB OTG接口, 兩路DAC(模數(shù)轉(zhuǎn)換),兩路TWI,一個電源插座,一個SPI接口,一個JTAG接口,一個復(fù)位按鍵和一個擦寫按鍵。不同于其他arduino,arduino due的工作電壓為3.3V。IO口可承載電壓也為3.3V。如果你使用更大的電壓,比如5V到一個IO口,可能會燒了芯片。電路板上已經(jīng)包含控制運行所需的各種部件,你僅需要通過USB連接到電腦 或者 通過AC-DC適配器、電池連接到電源插座就可以讓控制器開始運行。arduino due兼容工作在3.3V且引腳排列符合1.0 arduino標準的arduino擴展板。

規(guī)格參數(shù)

  1. 微控制器 AT91SAM3X8E
  2. 工作電壓 Voltage 3.3V
  3. 輸入電壓(推薦) 7-12V
  4. 輸入電壓(限制) 6-20V
  5. 數(shù)字I/O引腳 54 (其中12路PWM輸出)
  6. 模擬輸入通道 Pins 12
  7. 模擬輸出通道 Pins 2 (DAC)
  8. IO口總輸出電流 130 mA
  9. 3.3V端口輸出能力 800 mA
  10. 5V端口輸出能力 800 mA
  11. Flash 512 KB (所有空間都可以儲存用戶程序)
  12. SRAM 96 KB (兩個部分: 64KB and 32KB)
  13. 時鐘速率 84 MHz

使用方法

處理器

ARM核心的優(yōu)勢
使用32位ARM核心的Due相較于以往的使用8位AVR核心的其他arduino更強大。明顯的差別有:
32位核心在一個時鐘能處理32位的數(shù)據(jù);
84Mhz的CPU時鐘頻率;
96 KBytes的SRAM;
512 KBytes的Flash;
一個DMA控制器, 他能減輕 CPU做大量運算時的壓力。

電源

Arduino Due可以通過Micro USB接口或外接電源供電,電源可以自動被選擇。
外部(非USB)電源可以用AC-DC適配器(wall-wart)或電池。 適配器可以插在一個2.1毫米規(guī)格中心是正極的電源插座上,以此連接到控制器電源??刂破髂苤С?到20V電壓輸入。如果輸入電壓低于7V, 5V引腳可能得到的電壓會低于5V,控制器運行可能會不穩(wěn)定。如果使用輸入電壓超過12V, 可能會造成控制器過熱,甚至損壞損壞。推薦輸入電壓范圍為7到12V。電源相關(guān)引腳如下:
VIN. Arduino 使用外部電源時的輸入電壓引腳(你可以通過這個引腳供電,或者當(dāng)DC座供電時,通過這個引腳使用DC電源)
5V. 通過板載穩(wěn)壓芯片輸出的5V的電壓引腳。你可以從DC電源口、USB、VIN三處給控制器供電。也可以繞過穩(wěn)壓IC,直接從5V、3V3引腳供電,但不建議這樣使用。
3.3V. 通過板載穩(wěn)壓芯片輸出的3.3V的電壓引腳。 最大電流800 mA。該電壓也是 SAM3X 的工作電壓.
GND. 接地引腳。
IOREF. 該引腳提供arduino微控制器的工作參考電壓. 一個適合的arduino擴展板能夠讀取 IOREF 引腳電壓選擇合適的電源, 或者提供3.3V或5V的電平轉(zhuǎn)換。

存儲空間

SAM3X有512 KB (兩塊256 KB)用于存儲用戶程序的Flash空間。ATMEL已經(jīng)在生產(chǎn)芯片時,將bootloader預(yù)燒寫進了ROM里. SRAM有96 KB,由兩個連續(xù)空間64 KB和32 KB組成. 所有可用存儲空間 (Flash, RAM 和 ROM) 都可以直接尋址。你可以通過板子上的擦寫按鈕,擦除SAM3X 的 Flash 中的數(shù)據(jù). 這個操作將刪除當(dāng)前加載的項目. 在通電狀態(tài)下,按住擦寫按鈕幾秒鐘,即可擦寫。

輸入和輸出

1.Digital I/O: 0至53號引腳
使用pinMode(), digitalWrite(), anddigitalRead() 函數(shù),每一個IO都可以作為輸入輸出端口。他們工作在3.3V。每一個IO都可以輸出 3 mA 或者 15 mA電流,或者輸入6 mA 或者 9 mA電流。他們也都有100K 歐 的內(nèi)部上拉電阻 (默認狀態(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)
串口發(fā)送接受端口(工作在3.3V電平). 其中0,1連接到了 ATmega16U2 的對應(yīng)串口上,用于USB轉(zhuǎn)UART通信.
2.PWM: 引腳 2 to 13
使用analogWrite()函數(shù)提供8位的 PWM 輸出. 可以通過analogWriteResolution() 函數(shù)改變PWM輸出精度。
3.SPI: SPI接口 (在其他arduino上稱作ICSP接口)
可以通過SPI庫是SPI接口用于通信。SPI 引腳已經(jīng)引出到了6針接口位置, 可以和 Uno、Leonardo、Mega2560兼容. 這個SPI針僅用于和其他SPI設(shè)備通信,不能用于 SAM3X 的程序燒寫。Due的SPI可以通過Due專用的擴展庫來使用其高級特性。
4.CAN: CANRX 和 CANTX
硬件支持CAN,但arduino目前并不提供該API
5."L" LED: 13
有一個內(nèi)置的LED在數(shù)字腳13上,當(dāng)引腳是高電平事,LED亮,引腳為低電平時,LED不亮。因為13腳帶有PWM輸出功能,因此可以進行亮度調(diào)節(jié)。
TWI 1: 20 (SDA) 和 21 (SCL)
TWI 2: SDA1 和 SCL1.
支持使用Wire庫來進行TWI通信
6.模擬輸入: A0 到 A11
Arduino Due有12路模擬輸入端, 每一路都有12位精度(0-4095)。默認情況下, 模擬輸入精度為10位, 和其他型號的 Arduino 控制器一樣。通過
analogReadResolution()你可以改變ADC的采樣精度. Due的 analog inputs引腳測量范圍為 0 至 3.3V。如果測量高于3.3V電壓,可能會燒壞 SAM3X。
analogReference() 函數(shù)在Due上是無效的.
7.AREF 引腳通過一個電阻橋接到 SAM3X 模擬參考腳. 如果要使用 AREF 腳, 你需要先從PCB上拆下BR1這個電阻。
8.DAC1 and DAC2
通過analogWrite() 函數(shù)提供12位精度的模擬輸出 (4096個等級) . 可以通過Audio庫創(chuàng)建音頻輸出。

其他引腳

1.AREF
模擬輸入?yún)⒖茧妷?。通過analogReference()使用。
2.Reset
接低復(fù)位控制器。典型應(yīng)用是通過該腳來連接擴展板上的復(fù)位按鍵。

通信

Arduino Due 可以通過多種方式與電腦、其他arduino 或者其他控制器通信, 也可以和其他不同的設(shè)備通信,像手機、平板、相機等等。SAM3X提供一組硬件UART和3組TTL (3.3V) 電平的UARTs 來進行串行通信。
程序下載接口連接著 ATmega16U2, 他虛擬了一個COM口在(Windows需要一個 .inf文件來識別該設(shè)備, 而OSX 和 Linux 可以自動識別). SAM3X 的硬件UART也連接著ATmega16U2。 串口 RX0和TX0通過ATmega16U2 提供了用于下載程序的串口轉(zhuǎn)USB通信。ArduinoIDE包含了一個串口監(jiān)視器, 可以通過串口監(jiān)視發(fā)送或接收簡單的數(shù)據(jù)。當(dāng)數(shù)據(jù)通過16U2傳輸時 或者 USB連接電腦時(并不是0,1上的串口通信),板子上的RX和TX兩個LED會閃爍。
原生的USB口虛擬串行CDC通信,這樣可以提供一個串口,與串口監(jiān)視器 或者 你電腦上其他應(yīng)用相連。這個USB口也可以用來模擬一個 USB鼠標或者鍵盤。要使用這個功能,請查看鼠標鍵盤庫支持頁面 。這個原生USB口也可以作為USB 主機去連接其他外設(shè),如鼠標, 鍵盤、智能手機. 要使用這個功能, 請查看USBHost支持頁面。 SAM3X 也支持TWI和SPI通信.。ArduinoIDE中可以通過Wire庫輕而易舉的使用TWI總線;使用SPI庫可以進行SPI通信,細節(jié)方面請查看SPI支持頁面。

編程

Arduino Due通過ArduinoIDE中的“download”下載程序.。在SAM3X的arduino上 上傳程序和AVR控制器有所不同,這是因為flash在上傳程序前,需要被擦寫。 SAM3X 的ROM中的程序會進行上傳任務(wù),但運行該程序的前提是SAM3X的flash空間是空的。雖然兩個USB接口都可以給Due下載程序, 但是由于芯片擦除方式的影響,更推薦使用編程端口

編程端口

使用這個端口下載, 你需要在arduinoIDE中選擇"Arduino Due (Programming Port)"作為你的板子。連接編程端口 (靠近DC座的那一個) 到你的電腦。編程端口使用16U2來作為USB轉(zhuǎn)serial連接到SAM3X 的第一UART(RX0 and TX0)。16U2上有兩個針連接到連接到SAM3X的復(fù)位和擦除腳。在1200波特率下,打開和關(guān)閉串口會觸發(fā)SAM3X的硬擦寫程序,在通信之前通過串口觸發(fā) SAM3X 的擦寫和復(fù)位引腳。推薦使用這個端口,上傳程序到arduino。相對于使用原生USB端口軟擦寫芯片,使用編程端口硬擦寫更穩(wěn)定可靠。即使主芯片壞了,該端口仍舊會工作。

原生端口

使用這個端口下載, 你需要在arduinoIDE中選擇 "Arduino Due (Native USB Port)" 作為你的板子。連接原生USB端口 (靠近復(fù)位按鍵的那一個) 到你的電腦。在1200波特蘭下,打開和關(guān)閉串口會觸發(fā)SAM3X的軟擦寫程序:flash空間被擦寫、程序倒轉(zhuǎn)到bootloader區(qū)。如果主芯片損壞,軟擦寫程序 會不工作,這是因為該程序完全在SAM3X 上。開關(guān)原生USB端口baudrate 不會復(fù)位SAM3X。
不同于其他的Arduino控制器使用avrdude上傳程序, Due上傳程序依賴于 bossac。
ATmega16U2固件源碼能在arduino庫中找到。你可以使用外部編程器,通過ISP接口燒寫固件 (覆蓋DFU bootloader)。

USB過流保護

Arduino Due上有一個自恢復(fù)保險絲,短路或者過流時,可以自動斷開,從而保護你的電腦USB。大部分電腦都帶有內(nèi)部過流保護,這個保險絲可以提供一層額外保護。 當(dāng)電流大于500MA時,這個保險絲會自動斷開,直到?jīng)]有過載或者短路現(xiàn)象。

產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品購買地址

購買地址:Arduino Due ARM級控制器

周邊產(chǎn)品推薦

Arduino MEGA Sensor Shield V2.0 專用傳感器擴展板

相關(guān)問題解答

Arduino DUE 和Arduino WiFi Shield的配合使用

相關(guān)學(xué)習(xí)資料

Arduino Due 超級說明書 - 起步教程
奧松機器人技術(shù)論壇