芯科蓝牙BG27开发笔记1-新建示例工程

此笔记的必要性

芯科的官方资料很丰富,并且ssv5中能方便索引到所需文档,不过大而全的问题就是找不到合适的切入点,更不会有本地化比较好的中文的系统的教程了。往往看到一个starting guide,会延伸其他starting guide,这么套下去,资料虽然呈现出来了,效率却很低,有很多东西是前期根本不需要理会的。更不要说会出现第一个示例工程就必须要上个bootloader,以及最新的BG27的开发板资料有所错漏的诸如此类的小坑了......

入门的计划事项

前面几个周,确实进度感人!浏览那些繁杂的资料,创建、阅读、测试示例工程,搞清楚这"考虑太多"的官方开发板,芯科蓝牙SDK的初步了解,几乎每一步都要比Nordic入门费劲。而这些本该是范式的东西。

不过思路变得清晰,搞定这些只是时间问题。

学习一个新的东西,我习惯首先去提出一些问题,随着学习推进,这些问题从笼统变的具体,从初级变的深入,诸如:

1. 我要用的东西是什么?怎么去学习它,获取资料的途径有哪些?

2. 我要用这个东西来干什么?怎么去实现?

3. 我要从哪里开始?

问题是渐进式的,一无所知怎能在一开始就一语破的?

问题不是一定要完美解决的,前期问题,更多的作用是分清方向找到合适的切入点,不能立刻解决的问题,大多要记下来,大多又会在后边的学习阶段迎刃而解。那种勇攀学习曲线峭壁的情况是少之又少。

高效浏览、综合分析是必要的,尤其是在有基础的情况下。对一门全新知识来说,那还是找本书,系统地去啃。

随着对资料的熟悉,对提出的初期问题的总结,脉络开始清晰。

第一个工程-蓝牙点灯

具体功能是:APP上控制灯的亮灭、板子上的按键通知上传到APP

在launcher选项卡下边,可以看到已经连接的官方开发板的型号,此时直接点击start进入下一步;

如果没有开发板就需要选择All products中的对应芯片。

注意该页面右下角的教程文档,实际上是必须要先看看的。

点击示例那一栏

可以关键词筛选已有的示例,不过此处使用soc blinky示例,点击创建

最好选择拷贝所有内容到工程中,虽然需要200M+的大小,但是这可以便于在VSCODE中查看所有代码:

自动创建完成,注意此时从launcher选项卡跳到了Simpley IDE,实际上,ssv5中的图形化配置要比nordic做的更好。这个工程是不能直接编译下载运行的,需要去掉bootloader的功能。在芯科这套工具中,软件功能都是模块化的,并且携带了前后的依赖关系,同时加载和删除软件模块都是图形UI操作。

根据readme说明,要卸载"the Bootloader Application Interface software component",要注意先删除依赖该模块的部件才能继续删除此模块!

点击卸载是失败的,需要删除后级依赖

成功卸载之后,工程目录下的相关文件和代码会被自动删除,此处,先不用关心。按照下图顺序,编译下载(点选项目项目之后,编译图标才会有效)。

后续,使用任一一款蓝牙调试助手,按照readme说明,即可实现以下两个功能:

  1. app控制开发板上的灯

  2. 按键信息被上传到手机APP

注意事项

使用的开发板:

按键对应到BG27的引脚并不是PB0和PB1,而是PC05和PC04,这一点在《UG551: EFR32xG27 2.4 GHz 8 dBm Radio Board User's Guide》中也是错的,需要自己查找该开发板的原理图,在如下位置:

重新进入新建工程页面,点击start之后的页面中,点击Document筛选所需的关联文档:

打开原理图,发现这个底板想要实现的功能很杂,我用的4001型号,内含功率测试电路。另外的,主控芯片是st+外置ram的方案,整合了正版jlink!(注意有些版本的jflash将因为版权问题无法使用)整体的复杂度比nordic的高很多。

查阅主板图:

查阅蓝牙板的原理图:

按键和灯是联动的,但是又不是所有时候都能联动!在PC04、05默认不配置的时候,按键下去,线上的电压是2.8V左右,无法开启MOS管。大致可以认为这个1M上拉电阻被BG27内部电阻并联后整体上拉电阻<100Ω。由此推论,岂不是GPIO的上电默认是VDD?这样明显是由风险的。所以此问题暂且记录。

相关推荐
ssf-yasuo几秒前
SPIRE: Semantic Prompt-Driven Image Restoration 论文阅读笔记
论文阅读·笔记·prompt
ajsbxi12 分钟前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
TeYiToKu33 分钟前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws36 分钟前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
cuisidong19972 小时前
5G学习笔记三之物理层、数据链路层、RRC层协议
笔记·学习·5g
乌恩大侠2 小时前
5G周边知识笔记
笔记·5g
咔叽布吉4 小时前
【论文阅读笔记】CamoFormer: Masked Separable Attention for Camouflaged Object Detection
论文阅读·笔记·目标检测
johnny2334 小时前
《大模型应用开发极简入门》笔记
笔记·chatgpt
亦枫Leonlew4 小时前
微积分复习笔记 Calculus Volume 1 - 4.7 Applied Optimization Problems
笔记·数学·微积分·1024程序员节
小肥象不是小飞象4 小时前
(六千字心得笔记)零基础C语言入门第八课——函数(上)
c语言·开发语言·笔记·1024程序员节