接續上一篇博文: MediaTek Genio 130/130A 快速上手(四),我們已大致熟悉 SDK 以及範例的操作。在產品開發上會利用 Genio 130/130A 提供的介面或功能進行開發,這也會使用到諸如 UART、SPI、I2C、GPIO 等IO介面。
本篇博文將會帶大家實作範例:UART communication
- 以 Genio 130A HDK 做開發
- Pin 腳選用及 Pinmux 設定
- 實作 Application function、CLI command
- 測試結果
範例:UART communication
UART 作為常見的通訊界面,可以簡單的建立與周邊裝置的通訊。在Genio 130/130A 除了 debug console 外有提供 2 組 UART,今天我們會使用其中一組作為與周邊裝置通訊的介面。
GPIO pin selection
參考由 AcSip 群登科技提供的 HDK User Guide,我們選用 GPIO_42、GPIO_44 作為 UART 1 的 RX 以及 TX
而 GPIO_42、GPIO_44 的 pinmux 設定也可以從文件中得到,我們需要將其 GPIO function mode 設定為 0x11 : UART1_RX、UART1_TX
設置方式可透過 MediaTek Genio 130/130A SDK 提供的 HAL GPIO API 做設定
UART application
在 MediaTek Genio 130/130A SDK 的 UART 提供 Polling mode 與 DMA mode 兩種模式,本篇將使用 DMA mode 實作,效率上較好。可透過以下流程實作 DAM mode UART 初始化以及資料收發的功能:
** 在 SDK 中有提供詳細的範例程式碼可供參考
實作 CLI command 方便我們以 console command 方式啟用 UART 功能,以下是參考範例
Build image & flash
編譯範例程式,並將 image 燒錄至 Genio 130A HDK
燒錄 image 到 Genio 130A HDK 上的步驟可參考此篇博文:MediaTek Genio 130/130A 快速上手(二)
測試
在測試之前,我們可以將外部 UART device 接到 Genio 130A HDK 如下的位置
** 或是將 UART1_RX、UART1_TX 接起來也可以
接著我們將 Genio 130A HDK 重新啟動,在 console 可以查找到 UART CLI command 以及說明
測試結果如下
相關資訊連結:
- MetiaTek Genio 130/130A : https://www.mediatek.com/iot/products/genio-130
- MTK Genio130/130A Non-NDA SDK(請參考下圖位置) : https://www.wpgdadatong.com/product-channel/Mediatek
參考來源