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