新唐NuMaker Tomato ARM9重裝上陣
ARM產(chǎn)品現(xiàn)在最火熱的是什么?當(dāng)然是Arm-Cortex A和M系列了,Arm-Cortex之前的ARM9和ARM11現(xiàn)在已漸趨式微,許多人已將之比做明日黃花!特別是近日盛傳的在驍龍?zhí)幚砥魃吓躓indows 10的事情,更是將基于ARM架構(gòu)的處理器推上新一輪的高度,RISC與CISC之爭(zhēng)已有愈演愈烈的態(tài)勢(shì)!
這個(gè)時(shí)候再來(lái)說(shuō)ARM9,是不是有點(diǎn)尷尬。新唐NuMaker Tomato表示有話要說(shuō)。
NuMaker Tomato是新唐科技新近推出的開(kāi)發(fā)板,核心搭配新唐32位ARM926EJ-S NUC976DK62Y處理器,使用Linux作為操作系統(tǒng),適合各種物聯(lián)網(wǎng)應(yīng)用,也可作為物聯(lián)網(wǎng)網(wǎng)關(guān)來(lái)使用。
讓我們從開(kāi)箱開(kāi)始。
NuMaker Tomato產(chǎn)品包裝盒如圖,同大多數(shù)開(kāi)發(fā)板一樣,包裝盒上印制了產(chǎn)品的型號(hào)及廠商LOGO,NUVOTON的中文論壇叫牛臥堂,關(guān)于NUVOTON的名稱由來(lái),官方如是解釋:
新唐科技(Nuvoton Technology Corporation)的英文名:Nuvoton 是「Nuvo」與「Ton」兩個(gè)字的組合!窷uvo」在法文發(fā)音中與新(Nouveau)發(fā)音相近;「Ton」在英文發(fā)音中與唐朝的唐(Tang)發(fā)音相近,而唐朝為中國(guó)史上最興盛的朝代之一,唐朝在國(guó)際文化交流、經(jīng)濟(jì)貿(mào)易、科技創(chuàng)新上皆有輝煌的成就,使它成為世界的中心。新唐科技將秉持卓越發(fā)展之創(chuàng)新精神、緊密結(jié)合之客戶關(guān)系,以及匯集凝聚全球人才,致力于實(shí)踐新唐愿景 — Joy of innovation,同時(shí)也象征了新唐科技欲在IC產(chǎn)業(yè)開(kāi)創(chuàng)全新大唐盛世的精神。
打開(kāi)包裝盒,里面是使用了防震泡沫嚴(yán)嚴(yán)實(shí)實(shí)包裹的開(kāi)發(fā)板,有效防止運(yùn)輸過(guò)程中各種磕碰對(duì)產(chǎn)品帶來(lái)的意外損壞,比較體貼客戶。
取出來(lái)的TOMATO,開(kāi)發(fā)板上的中央是CPU,其它外設(shè)如ETH、USB、ARDUINO UNO兼容接口、耳機(jī)接口、SD卡、按鍵等均勻分布在開(kāi)發(fā)板的四周,整體結(jié)構(gòu)布局合理,雖然集成了諸多的接口,但是并不顯臃腫。
基于ARM開(kāi)發(fā)板推薦:
- FRDM-KV31 MCU開(kāi)發(fā)平臺(tái) 一款基于Cortex-M4+處理器用于永磁無(wú)刷直流電機(jī)控制專為各種BLDC、PMSM和ACIM電機(jī)控制以及數(shù)字電源轉(zhuǎn)換應(yīng)用而設(shè)計(jì)的新一代微控制器。
- XMC47 開(kāi)發(fā)套件 一款基于 ARM Cortex-M4 處理器內(nèi)核的 XMC4000 微控制器系列適用于工業(yè)連接、工業(yè)控制、功率轉(zhuǎn)換、檢測(cè)等方向。
- WIZnet W7500評(píng)估板 一款基于Cortex-M0內(nèi)核適用于各種嵌入式應(yīng)用平臺(tái),尤其是物聯(lián)網(wǎng)的單芯片解決方案。
基板使用的是紅色調(diào),似乎這是NUVOTON比較喜歡的色彩,如最新的NuMaker UNO也使用了相同的風(fēng)格,另外為了美觀,文字絲印使用白色標(biāo)注,結(jié)合黃色的排針,綠色的按鍵,整體感覺(jué)舒適,科技也不再只是冰冷。
下面再上幾張?zhí)貙?xiě),以饗各位。
從左至右依次是耳機(jī)、MIC及SD卡
從左至右依次是ETH、USB HOST、UART/PWR
ARDUINO UNO R3兼容接口、按鍵及其它引出的GPIO排針接口
開(kāi)發(fā)板的名字叫NuMaker Tomato,曾幾何時(shí),以水果命名產(chǎn)品似乎也成了一種時(shí)尚!我聽(tīng)人稱蘋(píng)果手機(jī)叫水果機(jī),樹(shù)莓派也是水果,然后有香蕉派、還有桔子派,現(xiàn)在新唐直接取名叫TOMATO,我預(yù)計(jì)啊,以后可能會(huì)有POTATO、ONION之類的出來(lái),且讓我們拭目以待!
NuMaker Tomato核心搭配新唐32位ARM926EJ-S NUC976DK62Y 處理器,運(yùn)行頻率可達(dá)300 MHz,內(nèi)建64MB DDR2 RAM,搭配新唐 NAU8822 Audio Codec,特別適合用于音訊處理;提供完整豐富的接口,包含10/100Mbps以太網(wǎng)絡(luò)接口、Micro SD 卡槽、麥克風(fēng)輸入、3.5mm耳機(jī)接頭、支持兩組USB 2.0高速Host,以及Arduino兼容的接腳等。Tomato 非常適合創(chuàng)客創(chuàng)作各種物聯(lián)網(wǎng)應(yīng)用。開(kāi)發(fā)板布局及各主要部件標(biāo)注如下
聯(lián)網(wǎng)部分,無(wú)論是透過(guò)有線網(wǎng)絡(luò)或透過(guò)USB dongle連接無(wú)線網(wǎng)絡(luò)(Wi-Fi),以及使用內(nèi)建SPI/I2C等標(biāo)準(zhǔn)接口連接各類無(wú)線傳輸模塊,Tomato都能夠做到輕松聯(lián)網(wǎng),也因此特別適合物聯(lián)網(wǎng)相關(guān)之應(yīng)用,例如:物聯(lián)網(wǎng)的Gateway、router/小型server、智能家居、安防系統(tǒng)與云端音樂(lè)盒等。
軟件方面,Tomato采用Linux 操作系統(tǒng),具大量開(kāi)放源代碼可供用戶下載使用。系統(tǒng)上電時(shí),Tomato預(yù)先加載uBoot,可將Linux Kernel加載于DDR內(nèi)執(zhí)行,亦支持Python解釋器,使用者不須通過(guò)編譯程序即可輕松撰寫(xiě)程序。
NUC976DK62Y微處理器基于ARM926EJ-S,最高頻率可達(dá)300MHz,是新唐NUC900系列CPU中的高性能代表產(chǎn)品
NUC900系列采用ARM®的ARM926EJ-S核心,內(nèi)建8KB I-Cache/D-Cache并且提供豐富的外設(shè)接口,例如:Ethernet MAC、LCD Controller、2D Graphics Acceleration Controller、以及High-Speed USB 2.0 Controller等功能,以符合客戶高效能應(yīng)用的需求。該系列MCU主要針對(duì)人機(jī)接口、電梯顯示控制器、跑步機(jī)控制接口、指紋考勤機(jī)、網(wǎng)絡(luò)攝影機(jī)等方面的應(yīng)用。
基于ARM開(kāi)發(fā)板推薦:
- FRDM-KV31 MCU開(kāi)發(fā)平臺(tái) 一款基于Cortex-M4+處理器用于永磁無(wú)刷直流電機(jī)控制專為各種BLDC、PMSM和ACIM電機(jī)控制以及數(shù)字電源轉(zhuǎn)換應(yīng)用而設(shè)計(jì)的新一代微控制器。
- XMC47 開(kāi)發(fā)套件 一款基于 ARM Cortex-M4 處理器內(nèi)核的 XMC4000 微控制器系列適用于工業(yè)連接、工業(yè)控制、功率轉(zhuǎn)換、檢測(cè)等方向。
- WIZnet W7500評(píng)估板 一款基于Cortex-M0內(nèi)核適用于各種嵌入式應(yīng)用平臺(tái),尤其是物聯(lián)網(wǎng)的單芯片解決方案。
NuMaker Tomato沒(méi)有內(nèi)置的FLASH存儲(chǔ)器,要體驗(yàn)開(kāi)發(fā)板的功能,需要將官方提供的Linux系統(tǒng)寫(xiě)入一張Micro SD卡上,插入到開(kāi)發(fā)板的SD卡槽中,uBoot會(huì)讀取SD卡中的系統(tǒng)映像,加載到內(nèi)存中實(shí)現(xiàn)啟動(dòng)。
準(zhǔn)備一張空白Micro SD存儲(chǔ)卡,格式化為FAT32格式,官方提供的Linux系統(tǒng)是一個(gè)ZIP格式的壓縮包,解包后直接將內(nèi)容復(fù)制到SD卡上就制作好了一張系統(tǒng)啟動(dòng)SD卡。SD卡上的內(nèi)容如下
里面包含了啟動(dòng)映像及啟動(dòng)腳本,其中starter.sh里面包含了系統(tǒng)啟動(dòng)過(guò)程中的一些設(shè)置,如WIFI的啟動(dòng),PYTHON環(huán)境的準(zhǔn)備等,詳細(xì)情況可以參考源文件。
將制作好的SD卡插入SD卡槽中,按如下方式連接好開(kāi)發(fā)板,USB的另一端連接到PC端,一方面可以給開(kāi)發(fā)板供電,另外也可以通過(guò)Serial來(lái)訪問(wèn)開(kāi)發(fā)板。
NuMaker Tomato沒(méi)有提供顯示接口,所以只能通過(guò)SSH或Serial的方式來(lái)管理及運(yùn)行程序。首次上電,網(wǎng)絡(luò)并沒(méi)有配置好,所以只能通過(guò)Serial來(lái)進(jìn)行設(shè)置,確保板載調(diào)試器的CDC驅(qū)動(dòng)安裝正常,在WINDOWS的設(shè)備管理器里能找到相關(guān)的串口設(shè)備名稱,在我的機(jī)器上為COM7,然后使用PUTTY并做如下配置
給開(kāi)發(fā)板上電,終端窗口會(huì)出現(xiàn)設(shè)備啟動(dòng)時(shí)的信息,如下
基于ARM開(kāi)發(fā)板推薦:
- FRDM-KV31 MCU開(kāi)發(fā)平臺(tái) 一款基于Cortex-M4+處理器用于永磁無(wú)刷直流電機(jī)控制專為各種BLDC、PMSM和ACIM電機(jī)控制以及數(shù)字電源轉(zhuǎn)換應(yīng)用而設(shè)計(jì)的新一代微控制器。
- XMC47 開(kāi)發(fā)套件 一款基于 ARM Cortex-M4 處理器內(nèi)核的 XMC4000 微控制器系列適用于工業(yè)連接、工業(yè)控制、功率轉(zhuǎn)換、檢測(cè)等方向。
- WIZnet W7500評(píng)估板 一款基于Cortex-M0內(nèi)核適用于各種嵌入式應(yīng)用平臺(tái),尤其是物聯(lián)網(wǎng)的單芯片解決方案。
NuMaker Tomato的LINUX系統(tǒng)是一個(gè)精簡(jiǎn)版的系統(tǒng),實(shí)際上就是一個(gè)busybox,busybox被譽(yù)為是嵌入式LINUX系統(tǒng)中的瑞士軍刀,體積相當(dāng)小巧,但是保留了LINUX系統(tǒng)的大部分功能,從上面的啟動(dòng)畫(huà)面可以看到busybox的版本是1.22.1。
接下來(lái)要配置網(wǎng)絡(luò),將開(kāi)發(fā)板連接到路由器,使用DHCP方式獲取IP地址
Busybox提供了DHCP獲取程序udhcpc,可以借由DHCP方式從DHCP服務(wù)器自動(dòng)獲取IP地址,上圖就是通過(guò)DHCP的方式自動(dòng)獲取到的IP,不過(guò)官方的配置沒(méi)有將這個(gè)命令加入到自啟動(dòng)文件中,可以自行將這一命令添加到starter.sh腳本中,實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)獲取IP地址。
在starter.sh中添加了udhcpc命令后,重新啟動(dòng)系統(tǒng),會(huì)在開(kāi)機(jī)畫(huà)面中看到相應(yīng)的DHCP獲取信息,如下圖
Busybox中許多組件都沒(méi)有提供,比如開(kāi)發(fā)者常用的gcc套件就不包含在內(nèi),官方為NuMaker Tomato提供了必要的Python移植,可以使用Python來(lái)完成諸多的開(kāi)發(fā)及體驗(yàn)工作,另外隨之提供的還有開(kāi)發(fā)板的外設(shè)庫(kù),與NuMaker Tomato相關(guān)的Python庫(kù)都位于SD卡的nvtPythonLibrary目錄下,包含了adc, gpio, pwm及spi等外設(shè)庫(kù),可以直接調(diào)用這些庫(kù)來(lái)實(shí)現(xiàn)特定的功能,免去了使用GCC來(lái)進(jìn)行交叉編譯的麻煩。
下面是一個(gè)LED及按鍵演示的python程序,
#!/usr/bin/env python2
import sys
import warnings
import time
import gpio as GPIO
# set LED PIN number
LED2_PIN = 10
LED3_PIN = 39
SW3_PIN = 9
# use Tomato v1 GPIO pins
GPIO.setmode(GPIO.TOMATOV1_BOARD)
# configure LED pin to output
GPIO.setup(LED2_PIN, GPIO.OUT)
GPIO.setup(LED3_PIN, GPIO.OUT)
GPIO.setup(SW3_PIN, GPIO.IN)
while (1):
# LED2 ON
GPIO.output(LED2_PIN, GPIO.LOW)
# LED3 OFF
GPIO.output(LED3_PIN, GPIO.HIGH)
while GPIO.input(SW3_PIN)!=0:
pass
print "SW3 key Low"
# LED2 OFF
GPIO.output(LED3_PIN, GPIO.LOW)
# LED3 ON
GPIO.output(LED2_PIN, GPIO.HIGH)
while GPIO.input(SW3_PIN)!=0:
pass
# exit
GPIO.cleanup(LED2_PIN)
GPIO.cleanup(LED3_PIN)
使用python運(yùn)行這段代碼,只要按下開(kāi)發(fā)板上的用戶按鍵,LED3就會(huì)點(diǎn)亮,同時(shí)控制臺(tái)上出現(xiàn)“SW3 key Low”提示信息,表明用戶按鍵已按下。
不過(guò)busybox中SSH Server暫未集成,如果需要使用SSH方式來(lái)登錄到開(kāi)發(fā)板進(jìn)行管理的話,需要重新編譯一個(gè)叫dropbear的組件,busybox官方提供的Tiny Utilities中提供了該組件的源碼,該組件體積大約100KB,也沒(méi)有依賴組件需要安裝,唯一的缺陷是需要重新編譯以適合在目標(biāo)板上運(yùn)行,這個(gè)過(guò)程是需要使用交叉編譯的,有興趣的朋友不妨自己編譯一個(gè)。
另一個(gè)值得一提的是官方的啟動(dòng)映像中還包括了對(duì)mplayer的移植,可以直接用來(lái)播放音樂(lè)。Mplayer是一個(gè)功能非常強(qiáng)大的媒體播放軟件,支持豐富的媒體格式,控制功能也非常強(qiáng)大,準(zhǔn)備一首MP3歌曲拷貝到SD卡的根目錄,使用mplayer播放效果如下
音頻解碼使用ffmpeg實(shí)現(xiàn),AO功能使用OSS驅(qū)動(dòng)。使用耳機(jī)可以聽(tīng)到播放的音樂(lè),播放過(guò)程流暢,沒(méi)有卡滯情況發(fā)生,只是mplayer的播放控制似乎失靈了,比如音量控制不能調(diào)整,其它情況都還比較正常。
作為一款開(kāi)源產(chǎn)品,NuMaker Tomato也提供了硬件設(shè)計(jì)的原理圖,用戶在使用硬件時(shí)可能需要參考外設(shè)與硬件的連接方式以及具體用到的PIN,另外用戶如果需要將NUC976DK62Y微處理器應(yīng)用到自己的設(shè)計(jì)中,可以直接參考官方原理圖來(lái)進(jìn)行設(shè)計(jì),省去了重新閱讀數(shù)據(jù)手冊(cè)的麻煩。
總結(jié)來(lái)說(shuō),NuMaker Tomato算是一款優(yōu)秀的產(chǎn)品。雖則在各大水果家族中,TOMATO的硬件配置不算出彩,考慮到官方對(duì)NuMaker Tomato的定位目標(biāo)來(lái)說(shuō),性能算是足夠:畢竟對(duì)于一款主打音頻播放及物聯(lián)網(wǎng)網(wǎng)關(guān)的產(chǎn)品來(lái)說(shuō),300MHz的主頻還是可以勝任的。開(kāi)發(fā)板集成的外設(shè)比較豐富,網(wǎng)絡(luò)及USB接口,加上耳機(jī)及MIC等接口,也算是ARM9的一次逆襲,曾經(jīng)的王者再度重裝上陣。略為不足之處是基于busybox的LINUX系統(tǒng),畢竟在busybox下,linux的完整功能不能得到體現(xiàn)。如果需要體驗(yàn)更高端的應(yīng)用,對(duì)用戶或者設(shè)計(jì)人員來(lái)說(shuō),提出了更高的挑戰(zhàn)。比如SSH功能的集成,交叉編譯都需要花費(fèi)更多的精力及時(shí)間。實(shí)際上現(xiàn)在單純基于busybox的系統(tǒng)相對(duì)來(lái)說(shuō)比較少了,Yocto似乎是另一個(gè)更好的選擇!
參考資源:
基于ARM開(kāi)發(fā)板推薦:
- FRDM-KV31 MCU開(kāi)發(fā)平臺(tái) 一款基于Cortex-M4+處理器用于永磁無(wú)刷直流電機(jī)控制專為各種BLDC、PMSM和ACIM電機(jī)控制以及數(shù)字電源轉(zhuǎn)換應(yīng)用而設(shè)計(jì)的新一代微控制器。
- XMC47 開(kāi)發(fā)套件 一款基于 ARM Cortex-M4 處理器內(nèi)核的 XMC4000 微控制器系列適用于工業(yè)連接、工業(yè)控制、功率轉(zhuǎn)換、檢測(cè)等方向。
- WIZnet W7500評(píng)估板 一款基于Cortex-M0內(nèi)核適用于各種嵌入式應(yīng)用平臺(tái),尤其是物聯(lián)網(wǎng)的單芯片解決方案。
編輯:admin 最后修改時(shí)間:2021-07-15