|

【技術解碼】Micro:bit硬體設計探索

   

作者:陸向陽

老實說,Micro:bit系統板的硬體相對簡單,Micro:bit的主要技術含量多數在軟體層面,這點與ESP8266晶片的系統板相類似,兩者均因為硬體的相對簡單化、平價化,許多人入手硬體後,開始為它們貢獻各種高度包裝、簡化的軟體開發法,因而走紅。

Micro:bit硬體元件組成(圖片來源

雖然如此,但許多人還是可能好奇Micro:bit的硬體層面,為了滿足這樣的好奇,筆者也就嘗試這樣的探索,並把探索心得在此文中分享。

主控晶片

Micro:bit的主控晶片是挪威Nordic Semiconductor公司的nRF51822,其實是顆低功耗藍牙(Bluetooth Low Energy, BLE)的無線通訊收發器晶片,在一般的系統設計上這顆晶片多是扮演從屬(slave)的角色,將無線收發訊息傳遞給系統上的主控晶片(host),但在Micro:bit上它就是個主控晶片,有點「蜀中無大將,廖化當先鋒」的感覺。

nRF51822晶片只有16KB的RAM、128KB的ROM,官方的資料顯示,此晶片的主要想定應用是藍牙滑鼠/鍵盤/觸控板、遊戲或家電遙控器、智慧手環、Beacon等。nRF51822在Micro:bit上至少要執行三件事,一是藍牙的通訊協定堆疊,二是作業系統程式(根基於ARM主導的mbed OS),三是使用者(user/developer)開發並載入的應用程式。

nRF51822晶片本身也有GPIO、PWM、I2C、ADC等功能,其中Micro:bit上的加速度感測器、磁阻感測器即是透過I2C介面與nRF51822晶片連接。

從屬晶片

Micro:bit有一個真正扮演從屬角色的晶片,是美國Freescale(已由荷蘭NXP購併)的Kinetis KL26微控制器晶片,這顆晶片受nRF51822所控管,而它提供整個Micro:bit系統板兩個主要作用,一是運作電壓調節,另一是USB介面傳輸的仲介。

Micro:bit是透過Micro USB連接器取得運作電力,但電壓為5V,主控晶片nRF51822最高只能承受3.6V,無福消受5V,所以是由KL26充當電壓調節器,透過KL26轉成3.3V,再供系統板上各部位取用電力,最大可供應120mA電流,這一供電線路上也有裝設瞬態電壓抑制器(Transient Voltage Suppressor, TVS)以好避免靜電放電(ElectroStatic Discharge, ESD)可能造成的破壞與影響。

嚴格來說,Micro:bit有三處取得電力的來源,Micro USB是一處,也可透過電池連接器(battery connector)或端緣接腳連接器(edge connector,Micro:bit上的特有詞,因為Micro:bit系統板在電路板的邊緣設置一排接腳,這個邊緣就稱之為edge)來取得,且透過二極體對供電來源進行切換,避免某一處供電來源對其他供電來源進行供電,避免錯誤。

另一功用是傳輸仲介,Micro:bit接上電腦後,在電腦上開發好的程式要傳到Micro:bit上,是先透過Micro USB連接器連到KL26,而後KL26再將程式傳給nRF51822,反之亦然。

在Micro:bit的官方網頁上,主控晶片也稱為應用程式處理器,因為使用者/開發者開發出的應用程式是由主控晶片所執行(多數系統均如此設計),而從屬的KL26也因其作用而被稱為介面處理器,此處所言的介面正是指USB/Micro USB介面。

有趣的是,通常系統板上是以運算力最強的晶片充當主控晶片,因為該晶片最有效能餘裕掌控與協調系統全局,但在Micro:bit上卻不是,KL26無論在核心、核心頻率、記憶體資源等各方面都高過nRF51822,但卻只用來供電與USB介面仲介,KL26的GPIO與相關週邊電路均沒派上用場。

另外,KL26支援USB 2.0與OTG(On-The-Go),而且支援USB Mass Storage Device的類別(class),所以接上電腦後可以在「我的電腦」裡看到一個新加入的USB隨身碟,其實就是指Micro:bit系統板。

三個按鈕

Micro:bit上有三個按鈕,兩個可讓使用者/開發者自行定義(A鈕、B鈕),還有一個是重新開機的重置(Reset, RST)鈕,這點比樹莓派(Raspberry Pi, RPi)有誠意,樹莓派設計者受訪時曾表示,為了節省空間、成本,沒給樹莓派設計重新開機按鈕,想重新開機必須「自己拔除電源後再重新接上電源」,一律是冷開機(重新供電)而非暖開機(持續供電只要求軟體層面重新開機)。

5×5 LED

Micro:bit硬體規格簡單,無法連接高解析度、繽紛色彩的顯示器,只有5×5矩陣發光二極體(Light-Emitting diode, LED)充當顯示器。不過Micro:bit在實際電路上並不是用5×5的方式來驅動顯示,而是用9×3(9行x3列),其中第二列的第八行、第九行沒有使用。

5×5顯示是由nRF51822以軟體執行方式,不斷對接腳進行多工操作來實現的,而5×5所用及的接腳,其實也可以在邊緣連接器上找到,若期望動用這些接腳,本來的5×5顯示功能就必須關閉才行。

更厲害的是,Micro:bit系統板上並沒有設置專屬的亮度感測器,而是由5×5驅動的軟體來達到近接光感測的效果,這一神奇作法可參考此處的說明:https://lancaster-university.github.io/microbit-docs/extras/light-sensing/

類似的,Micro:bit也沒有設置專屬的溫度感測器,也是用特殊手法實現,網址如下:https://www.microbit.co.uk/functions/temperature

慣性感測器

慣性感測器泛指加速度感測器、陀螺儀、磁阻感測器(也稱地磁感測器或數位指南針),Micro:bit沒有陀螺儀,所以角加速度的感測比較缺乏,但另兩項仍是有的,加速度感測器使用NXP的3軸MMA8653,磁阻感測器則是NXP的3軸MAG3110。

磁阻感測器一般用來偵測南北極方位,這也是今日「各位手機打開地圖App後,左轉右轉手機,地圖也就跟著左轉右轉方位」的道理所在,不過磁阻感測器也常受環境影響,碰到附近有大電力的馬達、高壓電塔等就會偏差,所以需要時時校正,但也因為這個敏感的特性,Micro:bit強調它有金屬感測能力,金屬東西靠近Micro:bit時可以得知。

Micro:bit的邊緣接腳圖。(圖片來源:Microbit.org)

其他

其他就相當細碎了,前述的TVS其實是Nexperia(NXP在2017年2月分立出的公司)的PRTR5V0U2F/K,另也用上Infineon的BAT60A蕭特基二極體(即前述避免供電來源錯誤的設置),連接電池供電的連接器,是使用JST(Japan Solderless Terminals)公司的S2B-PH-SM4-TB等。

(責任編輯:葉于甄)

陸向陽

Author: 陸向陽

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

Share This Post On

4 Comments

  1. “通常系統板上是以運算力最強的晶片充當主控晶片,因為該晶片最有效能餘裕掌控與協調系統全局,但在Micro:bit上卻不是”
    請問根據您的個人見解,為什麼MicroBit採用nRF51822為核心晶片?

    Post a Reply
    • Lu您好:

      這方面可能要看看英國Micro:bit基金會自身有無官方說法,或者在各類型訪問報導時是否有談及。

      但若未有這類資訊,個人推測Micro:bit追求全部供貨來自於歐洲,且盡可能所有晶片相關零件是單一晶片供應商,因此Micro:bit多數晶片(含感測器)均來自荷蘭NXP,Micro:bit設計時NXP已經購併美國Freescale,因此美國Freescale的晶片(含感測器)亦屬NXP。

      不過Micro:bit設計目標可能一起頭就期望有藍牙無線通訊,此方面的主要業者為美國TI或挪威的Nordic,以歐洲為主的著眼自然選擇Nordic,至於尚有一個KL26Z MCU純當電壓調節與USB介面,估計是NXP最合適且廉價的晶片即為KL26Z,搭配其他晶片(含感測器)一同供貨給Micro:bit基金會,盡可能滿足一次購足(one-stop shopping)需求,但Micro:bit基金會並不會去重視KL26Z內部的運算力與硬體資源,那已是次要考量,說不定未來Micro:bit基金會也可能更新KL26Z的韌體,使其背負或分擔較多功能工作。

      附帶一提,v1.3版Micro:bit的慣性感測器為NXP/Freescale MAG3110,但v1.5版改成STMicro LSM303AGR,依然是歐洲業者供貨。

      Post a Reply
  2. 很棒的文章
    請問5吋5的LED要如何關閉

    Post a Reply

Submit a Comment

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