首頁 > 評測 > 讓96Board更好用--96Boards Sensors Mezzanine 評測
讓96Board更好用--96Boards Sensors Mezzanine 評測
- [導讀]
- Mezzanine可以將Grove模塊和Arduino兼容的擴展板連接到96Boards底板上,板載一個ATMega328微控制器,可以使用Arduino IDE進行編程?偟膩碚f,Mezzanine讓96board的適用性得到了極大的提升,不在曲高和寡。
Linaro推出96Boards規(guī)范,迅速吸引了大量開源廠商的加入。在統(tǒng)一的規(guī)范之下,硬件設計和軟件移植變得更簡單,最重要的是變得“大一統(tǒng)”了。然而96Boards中有些與當前流行的硬件接口不一致的方式,主要包括:提供了獨立的低、高速外部接口;使用1.8V作為接口電壓;使用2mm的Pin間距。
為什么采用這樣的設計?官方的解釋如下:
• 為什么會有一個單獨的低速和高速連接器?這種設計允許使用低速信號的擴展產(chǎn)品(即,如果他們不需要高速功能,則不需要使用擴展板/模塊來使用高速連接器) 。至于高速連接器,因為諸如CSI,DSI和HSIC的現(xiàn)代高速總線需要阻抗匹配的連接器。
• 使用1.8V作為標準擴展接口電壓。大多數(shù)移動/嵌入式SoC使用1.8V進行輸入輸出, 我們考慮實施一種允許支持多個I / O電壓的方案,但這樣會帶來復雜性和價格的飆升。我們還考慮在3.3V或5V上進行標準化,但實現(xiàn)了這一功能的話,我們會在很多情況下在基板上將電平轉(zhuǎn)換為3.3V或5V,然后在擴展板上再次降至1.8V 的情況。
• 使用2mm插頭用于低速擴展模塊。雖然在制造商社區(qū)中不那么受歡迎,因為不是2.54mm,這是有意為之,表明這與其他3.3V / 5V社區(qū)主板不兼容。通過DIY和電子產(chǎn)品經(jīng)銷商可輕松獲得2mm連接器硬件,同時在這些擴展板上獲取所需要的3.3V/5V電壓。
96Boards Sensors Mezzanine(后文簡稱Mezzanine)板就是用來填補這些”坑“的!
Mezzanine使傳感器和設備可以簡單方便地連接到任何96Boards兼容的基板。有了它,可以將Grove模塊和Arduino兼容的擴展板連接到96Boards底板上,該板提供了在96Boards平臺上開始試驗和原型設計所需的一切。
擴展板提供18個Grove模塊的插座,一個兼容Arduino的擴展接口和兩個SPI接頭。它還包括一個ATMega328微控制器,可以使用Arduino IDE進行編程,并且可以保持大多數(shù)Arduino UNO程序兼容。
各接口的含義如下
1. Low Speed Expansion connector
2. USB UART console connector
3. Reset and Power buttons
4. 5V I2C Grove connectors
5. 5V GPIO Grove connector
6. 3.3V I2C Grove connectors
7. 3.3V GPIO Grove connectors
8. ATMEGA D3-D7 Grove connectors
9. ATMEGA A0-A2 Grove connectors
10. ATMEGA I2C Grove connector
11. ATMEGA Arduino compatible socket
12. ATMEGA Reset and Power LEDs
該擴展板提供了3.3/5V兼容接口,如果需要使用1.8V的工作電壓,可以從原生的接口引出。
擴展板上包含ATMeg328微控制器,完全可以把它當成一塊Arduino開發(fā)板來使用,不過由于缺少Arduini UNO的一些外圍電路,直接通過UART來上傳代碼可能會有問題,最佳的辦法是使用專用的編程器來上傳編譯后的代碼,本文使用USBTiny來給進行編程。
上圖中標注編號為11的就是專用的SPI下載器,將USBTiny與其連接,可以實現(xiàn)代碼上傳功能
傳統(tǒng)的Arduino編程是通過串口來進行的,然而這里根本就沒有使用串口,因為我們是使用編程器來進行編程的。
設置時注意,開發(fā)板類型仍然是選擇Arduino UNO,編程器類型要選擇具體的編程器,如這里應該選擇USBTinyISP。
先來點個燈,打開Arduino自帶的例程Blink,在下載的時候按下圖操作
對于Arduino來說,一般直接點擊Upload按鈕,但是使用編程器的話,需要按住Shift鍵,再點擊Upload按鈕,此時會通過編程器來上傳程序。
雖然在使用時沒有差別,但是Serial Monitor不能用了,因為根本就沒有Serial。
該擴展板主要還是用來給96Boards來提供擴展連接功能,更準備的說,是為96Boards提供低速擴展接口連接功能。當然,如果要體驗其方便的96Boards擴展功能,我們需要一塊真正的96Board來進行試驗,這次我們使用的是來自VAMRS的ROCK960
該板提供的低速擴展接口與96Boards定義的接口完全一致,另外該板也支持libmraa/upm庫,用來體驗外設非常方便。
這是ROCK960與96Boards規(guī)范提供的GPIO接口對應圖,與擴展板的接口是完全一致的。
將擴展板與ROCK960連接,可以看到大小尺寸都非常吻合,這就是標準化帶來的好處。
接下來我們將libmraa的代碼下載到ROCK960上,來體驗其方便的外設擴展功能。
執(zhí)行命令
git clone https://github.com/intel-iot-devkit/mraa
編譯libmraa并安裝,就可以使用libmraa來控制外設。libmraa提供了幾個小程序用來檢測硬件,運行結(jié)果如下
這里列出的是GPIO及I2C接口列表,libmraa提供了控制這些接口通信的API。不過libmraa提供的接口更接近原生操作,如果要使用具體的設備,則可以使用upm庫來進行操作。
下面使用Grove RGB LCD作為測試設備,這是一款1602顯示屏,支持RGB類型的背光,LCD通過I2C接口來通信。連接如下,
注意LCD的工作電壓是5V的,所以連接的時候要連接到I2C0,如果不使用擴展板的話,則需要用戶自己搭建一個電平轉(zhuǎn)換電路來實現(xiàn)連接。
接下來的事情就簡單的,寫個簡單的代碼來測試LCD的工作,如下
from upm import pyupm_jhd1313m1 as lcd
mylcd = lcd.Jhd1313m1(0, 0x3e, 0x62)
mylcd.clear()
mylcd.setColor(0, 0, 255)
mylcd.setCursor(0, 0)
mylcd.write('Hello, world')
運行這一段代碼,得到的結(jié)果如下
是不是非常方便,擴展板解決了電平轉(zhuǎn)換(1.8V)、接口(2mm間距)問題,結(jié)合libmraa庫,連接和使用外設變得前所未有的簡單!
這樣看來,96Boards Sensors Mezzanine 確實是使用和開發(fā)96Boards的必備硬件!再加上擴展板本身搭載的ATMega328,還可以把它當成一個Arduino來使用。
按照官方的文檔,是可以直接通過96Boards的UART來對擴展板上的Arduino進行編程的,只是在測試過程中未能成功,據(jù)官方的說法,需要重新刷寫Arduino固件,重新刷寫固件后也沒有成功。另據(jù)DragonBoard 410C用戶反映,需要移除擴展板上的R5電阻,不過似乎移除后結(jié)論依舊!不過直接在ROCK960上使用Arduino IDE結(jié)合USBTiny來對Arduino進行編程倒是沒有問題!
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗,暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺通用技術(shù)要求》國家標準編制 2024-08-29
- NRF52810藍牙數(shù)字耳機找人定制
預算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預算:¥1100000015小時前
- 12V汽車啟動電源項目BMS設計
預算:¥50000023小時前
- 數(shù)據(jù)可視化軟件 開發(fā)
預算:¥5000023小時前
- PLC項目調(diào)試修改
預算:¥100001天前
- 起動電機控制器開發(fā)
預算:¥1100001天前