接续上一篇博文: 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