拿到最新的 Filogic 開發板,晶片核心是聯發科的 MT7933,由群登科技(AcSip)封裝成模組,再製作成開發板,如下圖一所示。之前下載的 Filogic SDK 是 Linux 環境的版本,對初學者的操作上確實是相對困難,這次釋出 Arduino SDK 的版本,在設計開發方式會比較容易上手。本文將介紹如何燒錄板子的韌體,以及如何配置每根腳位 IO mux 的功能。
圖一:Filogic 130A 開發板 |
這套 Arduino SDK 必須上大聯大的網站 (大大通) 下載最新出爐的版本(1.0.0),下圖二所示。下載後,發現它是一個 zip 壓縮包,要怎麼與 Arduino IDE 一起套用呢?要先在電腦上安裝 Tomcat 軟體,然後把下載的 SDK 檔案放到 Tomcat 的目錄底下:\Tomcat 8.5\webapps\ROOT,此時執行 Tomcat 後,再開啟 Arudino IDE。接著,在 IDE 裡面設定 "開發板管理員網址" (其實網址就是本機 localhost:8080),Arduino IDE 就會自動下載 Filogic 相關的 SDK 了,細節請參考最底下的文章連結。
圖二:Filogic SDK 網站 |
上傳燒錄
接上 USB 後,試著從電腦上傳韌體到開發板上,首先我們開啟一個範例程式,在Arduino IDE 上面編譯並上傳。當編譯時,需先按住板子上的 SW1 (Reset) 鈕,然後觀察 IDE 的下方訊息欄,直到我們看到 “INFO: Goto open COMxx” 這段訊息時,再放開板子上的 SW1 鈕,IDE 工具便會進入燒錄韌體的階段,開始上傳。最後,上傳成功後,我們會看到 “Finished!” 的訊息。每次上傳成功後,我們必須再按一次板子上的 SW1 (Reset) 鈕,這樣板子才會重新啟動我們的程式碼。因為,它並不像 Arduino UNO 開發板會自動重新啟動。
IO Mux
市面常見 MCU 上的IO接腳功能是可以當作多重用途的,一根IO腳可能是 GPIO,也可能是analog input,也可以是某通訊介面的腳位。在 MT7933 晶片上的每根腳位也都具有多重功能,因此使用IO前必須對每一根腳位先設定其功能,我們習慣稱之為 IO mux (IO multiplexing)。在Filogic Arduino SDK 的初始化過程中,系統已經給每根腳位配置了預設功能,接下來我們觀察系統初始化後每根腳位的功能。
寫過 Arduino 程式的人都知道,用 pinMode 標準函數設定IO的功能,不過這兒不打算介紹上層的標準函數,而是談談 SDK 裡面的驅動程式。在 SDK 安裝包裡面,除了有 Arduino 的標準函數之外,仔細搜尋先前提到的目錄還可以發現 MT7933 晶片的驅動函數,像是 GPIO 相關的函數,被封裝為HAL層。底下的程式碼會列印出所有 GPIO 腳位的功能,以及IO的方向,這樣我們便能知道 IO 腳位的對應,再搭配電路圖一一對應,整個系統的架構就會清楚了。
圖三:列印出 GPIO 腳位的功能 |
Arduino SDK 系統啟動後,系統程式會將每根 GPIO 接腳依據功能進行初始化。因此,我們將系統啟動後的 GPIO 腳位功能列印出來後,再根據 hal_pinmux_define.h 檔案裡面的模式定義,把腳位的模式整理成表單,然後把電路圖上的標示和檔案的定義做對應,如下圖四所示。舉例來說,當我們在Arduino的setup函數裡面呼叫 pinMode(6, OUTPUT),則對應到電路圖的C_SDIO_CLK 腳被設定為 GPO的輸出。換句話說,當 GPIO6 被設定GPO之後,那 SDIO 的功能就不能使用了。如果我們沒有呼叫 pinMode 函數做腳位設定的話,所有的腳位模式就是系統所給定的預設值。
依據 pinmux 的預設值,我們就能了解到 Arduino IDE上面的 Serial 埠對應到 UART1,也就是GPIO_T_1和GPIO_T_3腳位。開發板上的 SW2 和 SW3 按鈕對應到電路圖的GPIO_T_6和GPIO_T_8腳位,分別當作 GPI_47 和 GPI_49 輸入使用。
圖四:GPIO腳位模式與電路圖之對應 |
文章標籤
全站熱搜
留言列表