|

尋求更強悍的Arduino(下):Arduino Due

   

 
作者:陸向陽

以Atmel AVR Mega系列微控器為基礎的Arduino,多少受限於8位元架構,無法擁有更高的運算力與儲存空間,連帶使應用開發無法更高階化發展,而必須尋求其他硬體系統,如此便離開Arduino生態圈,不僅是Arduino生態圈的損失,原有學習、開發等投資也會打折扣。

事實上AVR架構也有32位元版,但沒有16位元版,因為16位元的微控制器,無論是哪個業者都面臨價格不夠低、效能不夠好的尷尬處境,多數業者用8位元發展成本取向應用,用32位元發展效能取向應用。

雖然AVR有32位元版,但環顧市場,32位元微控制器,在2008年後逐漸轉成ARM Cortex-M系列的天下,許多業者專屬的32位元架構微控制器,均面臨市場存續空間的考驗。

因此,Arduino陣營提出另一個升級作法,不使用32位元AVR架構,而是用ARM Cortex-M系列架構,來發展更高階的Arduino系統,此作法於2012年10月22日成形,即所謂的Arduino Due系統板。

Arduino Due簡介

Arduino Due系統板改用Atmel公司的ATSAM3X8E晶片,核心為Cortex-M3,整個晶片提供更高的效能與更大的儲存空間。一般而言,Arduino系統上的AVR晶片,多以8或16MHz時脈在運作,但ATSAM3X8E為84MHz,又是32位元架構,自然比過往版本快上許多。

右為Arduino Uno,左為Arduino Due,效能大不同。

儲存方面,一般Arduino是16KB或32KB的程式碼儲存空間,部分到256KB,但Due可以到512KB;RAM方面一般是0.5KB~8KB,但Due是96KB;I/O接腳也比較多,達到54-pin,比過往典型14-pin還多。不過,Due缺乏內建的EEPROM,這點比較麻煩,有此需求的話,必須採外接電路設計了。

另一個麻煩是,ATSAM3X8E晶片的I/O接腳只能承受3.3V電壓,無法如過往般承受5V電壓,這點必須注意,強行接入5V電壓會使接腳、甚至晶片損毀。

簡單來說,Due就是給原來的Arduino開發者一個提升硬體效能、資源的捷徑,而不用改換其他系統,但想開發Due用的程式,必須改用Arduino IDE 1.5.x版的開發工具才行,不能再用傳統的Arduino IDE 1.0.x了。

也因為Due效能、資源更好,自然也比較貴了,一般的Arduino Uno Rev3只要20歐元就可以買到,Due需要到36歐元,以上都還不含歐洲加值稅。若在台灣買,以Arduino官網揭露的5家台灣經銷商,不是每家都有賣,也不是每家都賣一樣價錢,有賣的店約標價1,689、1,700、1,890元台幣不等。

除了Due,還能選什麼?

想使用Cortex-M系列的Arduino,目前只有Due可選嗎?短期內答案為「是」,但筆者不排除未來非官方的業者也會推出,另外Arduino官方自己也在2014年5月推出另一款以Cortex-M系列為基礎的Arduino系統板,稱為Arduino Zero,是以Cortex-M0+為基礎的,但目前似乎仍在Beta外部測試階段,好像還沒開賣,Zero的效能、硬體資源比Due少,估計也會比Due便宜,但仍是會比傳統8位元AVR晶片的系統強悍。

與Arduino Due同為32位架構的Arduino Zero

如果還是不滿意Due提供的效能,那麼還有兩種選擇,一是換用Intel的伽利略(Galileo)系統板,同時開發工具也要換成Arduino IDE for Intel Galileo,不再是使用Arduino IDE 1.5.x,且晶片架構變成x86,價格拉高到58.9歐元。

或者改用PIC.duino Net、Energia等系統板,但開發工具就更不相容了,只有接腳相容Arduino,表示可持續沿用過往的Arduino Shield功能介面卡而已,或者可以改用其他的IDE工具,但只保證函式庫相容,程式改寫程度大,但即便這樣子,還是比整個改用樹莓派(Raspberry Pi)好,因為樹莓派的硬體仍有獨賣性,開放性低於Arduino,且接腳與Arduino不相容。

小結

已經使用Arduino的人,若期望更高階的開發,還是建議用Due,若嫌Due太貴則稍微等一下Zero,真的都不合,再改用Galileo,還是不合再用只有接腳、函式庫相容的系統板,這些統統不成了,就得換系統,如此才能確保過往的軟體學習、開發等投資,獲得盡可能的價值延續、延伸等保障。

前往上篇:尋求更強悍的Arduino(上):Arduino Yún

陸向陽
陸向陽

Author: 陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。

Share This Post On

2 Comments

  1. 您好~我是arduino的初學者,目前使用arduino mega2560
    但是因為中斷函數的I/O針腳不足,而想換arduino due
    但是不知道該怎麼處理I/O電壓的問題?
    mega2560工作電壓5V而due是3.3v
    我有幾個旋轉曾量型編碼器使用電壓是5v~30v
    若是使用arduino due不知道該怎麼處理電壓問題?
    若編碼器電源使用5v 而A.B.Z相訊號給Arduino也是5v嗎? 怕燒壞了due
    另外還有幾個步進馬達驅動器最低的輸入電壓也是5V..換用due只有3.3v
    差了那麼多不知道該怎麼解決?
    懇請前輩指教~謝謝

    Post a Reply
    • Sam 您好:

      比較高階的晶片通常不再使用5V而是使用3.3V、2.5V甚至1.8V運作,連帶其I/O通常也會跟著降低電壓,所以持續用5V是有可能燒壞晶片的,建議仔細查一下晶片的Datasheet,看看是否其I/O輸入的容忍電壓範圍是否足夠容忍5V?但估計不太樂觀。網址在此:https://www.microchip.com/wwwproducts/en/ATsam3x8e

      建議輸入時用一般線性降壓即可,壓差不大,變成廢熱消散,就給它廢熱消散,若是輸出則建議用Charge Pump直接倍數升壓,這方面屬於電源電路的設計,可以去閱讀一下相關資料。

      Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *