天天看點

《Microduino實戰》——2.2 相容Arduino系列産品

本節書摘來自華章出版社《microduino實戰》一 書中的第2章,第2.1節,作者:姚琪 楊立斌,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

相容arduino的系列産品可以分為microduino avr核心系列子產品、擴充子產品以及擴充闆,其接口标準都采用upin-27規範标準,如圖2-2所示。擴充子產品包括以太網接口、usb接口的有線通信子產品,支援rf、藍牙、nfc、zigbee、wifi和gprs/gsm無線通信子產品,支援三軸陀螺儀、加速度傳感器、gps的傳感器子產品,支援oled、tft的顯示子產品,以及電機驅動子產品等。

《Microduino實戰》——2.2 相容Arduino系列産品

microduino avr核心系列子產品主要包括兩大部分:一是微控制器子產品,其晶片采用的是atmel avr 8位微控制器,相容arduino;另一個是usb下載下傳調試子產品,其晶片采用的是ft232rl晶片,同樣是arduino所支援的。接下來詳細介紹一下這些核心子產品的具體參數。

microduino-core

以 atmel atmega328p、atmega168pa 系列為核心的8位單片機開發核心闆microduino-core,是一個開源的控制器子產品,相容arduino uno,如圖2-3所示。

根據不同型号的微控制器晶片,microduino-core目前有4個型号,如表2-1所示。

《Microduino實戰》——2.2 相容Arduino系列産品

microduino-core供使用者使用的i/o口有27個,除了5v、3.3v、gnd和rst基本功能引腳外,其他引腳都有着特殊的功能,有的引腳會複用多種功能。

(1)數字i/o (22個)

在子產品上辨別為 d0~d13,a0~a7,其中a6和a7隻能作為輸入,不能輸出。

(2)模拟 i/o (8個)

在子產品上辨別為 a0~a7。每一個都提供了10位分辨率(即0~1024),預設情況下,模拟電壓測量範圍為gnd至vcc電壓值。

(3)pwm輸出(6個)

在子產品上辨別為d3、d5、d6、d9、d10和d11。

(4)序列槽通信(1路)

在子產品上辨別為 rx0(d0)、tx1(d1),即rx0為序列槽接收端,而tx1為序列槽發送端。microduino-core與usbttl子產品是通過d0和d1端口通信的,但如果這裡兩個端口同時被其他子產品占用,比如藍牙子產品,會導緻與usbttl通信不正常,可能無法下載下傳程式。

(5)spi通信(1路)

在子產品上辨別為 d13(sck)、d12(miso)、d11(mosi)、d10(ss)。

(6)i2c通信(1路)

在子產品上辨別為 sda(a4)、scl(a5)。

(7)外部中斷輸入(2路)

在子產品上辨別為 d2(中斷0)、d3(中斷1)。

(8)支援isp下載下傳功能

如同arduino一樣,microduino可使用isp下載下傳線,靈活烤入bootloader。所用引腳在子產品上辨別為d13(sck)、d12(miso)、d11(mosi)。

(9)外部參考電壓(aref)輸入(1路)

在子產品上辨別為ref。

以microduino-core為控制核心,配以其他的電子元器件、功能子產品和傳感器,就能夠實作很多豐富而有趣的設計。簡單的設計,如遙控開關、電子鬧鈴;複雜的設計,如遙控小車、飛行器等,這些都展現出了核心控制子產品的控制能力。

microduino-core+

microduino-core+是microduino-core的增強版,提升了微控制器存儲容量,還增加了

i/o接口的數量,如圖2-4所示。具體參數對比如表2-2所示。引腳分布仍舊采用upin-27标準規範,增加的i/o接口專門引出了10個插孔供使用者使用。

《Microduino實戰》——2.2 相容Arduino系列産品

目前,microduino-core+也分為4個型号,如表 2-3所示。

《Microduino實戰》——2.2 相容Arduino系列産品

microduino-core+供使用者使用的i/o口有37個,除了5v、3.3v、gnd和rst基本功能引腳外,其他引腳都有着特定的功能,有的引腳會複用多種功能。

(1)數字 i/o(32個)

在子產品上辨別為 d0~d13,a0~a7,以及比core多出的10個插孔(d14~d23)。

(2)模拟i/o (8個)

(3)pwm輸出(8個)

在子產品上辨別為d7、d8、d9、d10、d12、d13、d22、d23。

(4)序列槽支援(2路)

在子產品上辨別為 serial[d0(rx),d1(tx)]和serial1[d2(rx),d3(tx)]。與usbttl子產品連接配接會占用d0、d1,如果端口d0和d1被其他子產品占用,會導緻與usbttl通信不正常,使得程式無法下載下傳。

在子產品上辨別為 d13(sck)、d12(miso)、d11(mosi)、d10(ss)。

在子產品上辨別為 sda(d20),scl(d21)。

(7)外部中斷輸入(3路)

在子產品上辨別為 d2(中斷0)、d3(中斷1)、d6(中斷2)。

(9)支援aref端子

由于在性能和資源上有所提升,microduino-core+能夠實作的功能比microduino-core多一些,也能夠支援更多的子產品裝置與之互聯。

microduino-usbttl

microduino-usbttl 子產品是usb轉序列槽子產品,用于上位機向microduino-core/core+下載下傳程式以及序列槽通信,如圖2-5所示。它采用基于 ftdi 公司的 ft232rl 晶片(arduino軟體自帶驅動)。

注意 microduino-usbttl子產品通過序列槽與其他microduino子產品進行通信,序列槽引腳是d0(tx)、d1(rx),如果其他microduino子產品也同樣使用該序列槽引腳,那麼在下載下傳程式和進行序列槽通信的時候要特别注意,很有可能因為序列槽沖突,使得d0和d1引腳上的序列槽通信失敗,緻使無法進行程式下載下傳和序列槽調試。是以,要盡量避免使用同一個序列槽進行通信,如果實在無法避免,下載下傳程式時,先将其他使用該序列槽的子產品拆下來,下載下傳完成後再裝上去。

microduino-coreusb

microduino-coreusb相當于将microduino-core和microduino-usbttl兩個子產品合在了一起,即內建了微控制器和usb通信的功能,如圖2-6所示。核心晶片采用atmega32u4系列的8位微控制器,與arduino leonardo開發闆相容。

《Microduino實戰》——2.2 相容Arduino系列産品

如果說microduino核心子產品是大腦,那麼microduino擴充子產品便是其手腳、眼睛、耳朵等器官。按照功能劃分,可以将擴充子產品大緻分為:有線通信、無線通信、電池管理、傳感器、聲音/存儲/時鐘、顯示裝置和電機驅動。這裡僅作簡單介紹,以友善讀者了解現有的microduino子產品,在diy過程中找到自己想要的子產品,更多資料見

參考[1]。

《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品

無線通信

《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品

前面将microduino核心子產品比喻成大腦,那麼microduino擴充闆就可以看作是骨架,專門用來插接microduino-core/core+和擴充子產品,友善子產品的連接配接和擴充。這裡也做簡單介紹,供讀者參考。

《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品
《Microduino實戰》——2.2 相容Arduino系列産品

繼續閱讀