• 芯科蓝牙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?这样明显是由风险的。所以此问题暂且记录。

  • 相关阅读:
    最小生成树 | 市政道路拓宽预算的优化 (Minimum Spanning Tree)
    PB系统函数介绍:共享对象函数
    代码随想录算法训练营第四十八天 | LeetCode 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II
    51单总线控制SV-5W语音播报模块
    10.17课上(七段显示器,递归异或与电路)
    Leetcode33. Search in Rotated Sorted Array | Binary Search
    揭开 Amazon Bedrock 的神秘面纱 | 基础篇
    ctf-pikachu-file_download
    解决虚拟机centos8无法连接外网,ping: www.baidu.com: 未知的名称或服务
    【python初级】No module named ‘fcntl‘
  • 原文地址:https://blog.csdn.net/hxkrrzq/article/details/132761878