芯科的官方资料很丰富,并且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?这样明显是由风险的。所以此问题暂且记录。