接续上一篇博文: MediaTek Genio 130/130A 快速上手(五),我们已利用 SDK 实作了 UART 范例。
本篇将会带大家实作另一个范例:SPI LED control
- 以 Genio 130A HDK 做开发
- Pin 脚选用及 Pinmux 设定
- 实作 Application function、CLI command
- 测试结果
范例:SPI LED control
SPI 界面广泛的应用在周边装置的通讯及控制上,本篇博文利用 SPI 来控制 RGB LED 灯,实现 LED 点亮、色彩控制等功能。
** RGB LED 仅需要 SPI Clock 以及 MOSI 两 pin 即可。
GPIO pin selection
参考由 AcSip 群登科技提供的 HDK User Guide,我们选用 GPIO_6、GPIO_9 作为 SPI0 的 Clock 以及 MOSI
hal pinmux 设定方式与前篇博文相同,都是呼叫 fundion hal_pinmux_set_function() 来完成
SPI Application & LED command
MediaTek Genio 130/130A SDK 的 SPI 提供 Polling mode 与 DMA mode 两种模式,本篇将使用 Polling mode 实作。透过以下流程实作 Polling mode SPI 初始化以及资料收发的功能:
SPI Master 运作流程
SPI Master 初始化
SPI Master 资料收发
LED 控制部分,我们透过建立 CLI command 将 LED 控制命令串接到 SPI API function
Build image & flash
以下是本篇范例修改/新增的程式档(参考)
需要修改的档案
- GCC/feature.mk
- GCC/Makefile
- src/cli_cmd.c
- inc/spi_led.h
- src/spi_led.c
测试
我们将 Genio 130A HDK 重新启动,在 console 可以查找到 SPI LED CLI command 以及说明
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