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

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導航、 搜索
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接口,一個復位按鍵和一個擦寫按鍵。不同于其他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 使用外部電源時的輸入電壓引腳(你可以通過這個引腳供電,或者當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預燒寫進了ROM里. SRAM有96 KB,由兩個連續(xù)空間64 KB和32 KB組成. 所有可用存儲空間 (Flash, RAM 和 ROM) 都可以直接尋址。你可以通過板子上的擦寫按鈕,擦除SAM3X 的 Flash 中的數(shù)據(jù). 這個操作將刪除當前加載的項目. 在通電狀態(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上,當引腳是高電平事,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
接低復位控制器。典型應(yīng)用是通過該腳來連接擴展板上的復位按鍵。

通信

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ù)。當數(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的復位和擦除腳。在1200波特率下,打開和關(guān)閉串口會觸發(fā)SAM3X的硬擦寫程序,在通信之前通過串口觸發(fā) SAM3X 的擦寫和復位引腳。推薦使用這個端口,上傳程序到arduino。相對于使用原生USB端口軟擦寫芯片,使用編程端口硬擦寫更穩(wěn)定可靠。即使主芯片壞了,該端口仍舊會工作。

原生端口

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

USB過流保護

Arduino Due上有一個自恢復保險絲,短路或者過流時,可以自動斷開,從而保護你的電腦USB。大部分電腦都帶有內(nèi)部過流保護,這個保險絲可以提供一層額外保護。 當電流大于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)學習資料

Arduino Due Eagle設(shè)計參考文件下載
Arduino Due 電路原理圖文件 PDF 版本
Getting started with the Arduino Due
Arduino Due 超級說明書 - 起步教程
Arduino 官網(wǎng)關(guān)于Arduino Due的介紹
奧松機器人技術(shù)論壇