EFR32xG24 Explorer Kit 开发套件的主芯片是EFR32MG24 无线 SoC,支持Zigbee,BLE,专有2.4G等多种协议。
datasheet和EFR32xG24 Explorer Kit User's Guide两个文档连个文档很优秀,可以快速了解主芯片和开发板的组成和相关功能。
开发板上硬件资源和连接口:
- EFR32MG24 Wireless Gecko SoC with 78 MHz operating frequency, 1536 kB kB flash, and 256 kB RAM
- 2.4 GHz matching network and ceramic antenna for wireless transmission
- 两个LED和两个按钮
- USB Type-C电缆连接的板载SEGGER J-Link调试器可进行程序烧录和调试;一个usb虚拟串口提供了一个到目标应用的串口连接;
- 套件包含的mikroBUS™ socket and Qwiic® connector,允许使用者用已有的板子添加功能到套件
- 套件支持Simplicity Studio ,并提供给BSP给应用程序开发人员一个快速的开端
板载的J-Link调试器通过SWD接口连接EFR32MG24芯片,VCOM虚拟串口连接到芯片的USART1
开发环境
官方的Simplicity Studio® 开发环境,集成了代码编辑,编译和调试,并可快速查看设备相关的资料文档链接,软件SDK下载,可视化的硬件引脚和功能配置等,功能相对完备,搭配开发板,可以快速开始开发。
安装Simplicity Studio后,用USB Type-C线连接开发板,软件会自动识别出开发板,显示开发部和芯片信息;
在Install页面可以下载安装开发板和芯片相关的资源包和SDK,可以自动安装也可以收到选择所需的部分;
安装SDK后,设备信息页面会显示开发板和芯片相关信息和资料,SDK资料等;
workspace和SDK下载到的位置
点击创建工程,创建向导会提示选择目标设备,SDK和编译工具类。然后选择基于例程创建或创建空白的工程;
我选择的是bt_soc_blinky例程,此例程可以通过蓝牙控制板子上的LED亮灭,并可以通过蓝牙上报板子上按钮的状态;
创建工程后,.slcp工程概览页面中,会展示例程的介绍,芯片信息,以及常用工具的链接,比如可视化的引脚配置工具,蓝牙GATT属性配置等工具。
Build Object
10年老旧电脑,编译用时1分7秒
Debug调试
进入debug页面,但无法正常运行,断点无效。
分析发现调试器和芯片连接是正确的,但程序启动异常,网上搜索后发现是此例程依赖boot程序。
创建对于的boot程序工程,编译后调试,boot程序可以正常进行单步调试等操作。
再次烧录bt_soc_blinky例程并调试,例程也可以正常调试运行了。
测试蓝牙控制
用手机上的蓝牙app尝试搜索连接设备的蓝牙,默认蓝牙名称为Blinky Example
官方提供了一个蓝牙测试demo APP: EFRConnect
https://github.com/SiliconLabs/SimplicityConnect-android/tree/master/build
使用说明
https://docs.silabs.com/mobile-apps/latest/mobile-apps-demos-overview/
安装官方的测试APP demo,通过Blinky这个功能页面,可以搜索并连上设备,点击灯泡可以控制板子上LED的亮灭,板子上按钮按下,APP上的按钮状态也会跟着变化。
APP界面
点击APP上的灯泡后,可以控制开发板上的LED灯亮灭,实测效果如下
APP demo应该是根据蓝牙名称来搜索过滤设备的,所以测试时候不要修改设备的蓝牙名称,否则会搜不出来。
调试串口使用
通过板载的USB接口连上电脑会出现一个虚拟串口,此虚拟串口可连接到芯片的调试串口,查看调试信息,波特率115200。
初次连接上后,无任何打印信息,且打开此虚拟串口后无法连上芯片的蓝牙了。
经过调试发现是原因是:代码中串口硬件配置使能了流控,而我电脑上打开串口时没有使能流控,造成串口输出异常。
重新测试,电脑上串口工具打开串口时也打开流控,串口有输出了,蓝牙连接也正常了。
也可以通过可视化的串口配置页面来禁用流控后,修改配置后重新编译烧录即可
至此,开发环境和开发板相关资料已齐备,例程编译烧录运行流程也跑通了,后续可以开始研究代码和芯片详细功能,开始愉快玩耍了。