一款基于nRF52833的蓝牙开发板的技术方案选型

1、摘要

     最近浏览Micro:bit Educational Foundation | micro:bit,发现他们推出了一个被称之为BBC micro:bit的项目,该项目针对儿童计算机编程教育而开发,可以采用积木方式、Python、JavaSript进行编程,可以看出这是一个非常有意思的项目,经过对此项目的进一步了解后,发现它是采用Daplink(一个ARM公司推出的软件、硬件都开源的调试器项目) + nRF52833(知名蓝牙芯片方案公司Nordic的一颗蓝牙芯片)进行设计,出于对其积木方式编程的兴趣,本人打算Diy一个类似的项目,所以打算设计一个跟micro:bit功能相似的板卡。

一款基于nRF52833的蓝牙开发板的技术方案选型

       如图1-1是micro:bit的板卡图片。

2、技术方案选型

2.1 micro:bit技术方案回顾

      经过浏览micro:bit官网的资料,找到了micro:bit V2参考设计框图如下:

一款基于nRF52833的蓝牙开发板的技术方案选型

            如图2-1所示,micro:bit主要有二颗主要的芯片组成:

                1.、Freescale KL27

                2、Nordic Semiconductor nRF52833

       Freescale KL27被称之为接口芯片,它主要用来运行Daplink固件,可以让电脑端的多种IDE(集成软件环境)对目标芯片进行源码调试、代码下载,有关Daplink的资料请自行上网查询。

       nRF52833是单芯片蓝牙SOC,用来运行各种蓝牙协议栈,实现各种基于蓝牙的无线通信需求。

        使用Daplink进行ARM芯片开发的优点:

  1. 通过使用ARM公司的CMSIS-DAP协议可以实现源码级的软件调试功能;
  2. Daplink虚拟了一个CDC串口,可以将目标板通过串口输出的log信息发送到电脑端;
  3. Daplink在电脑端虚拟出了一个U盘,可以直接将IDE编译出的目标程序的16进制格式的文件拖拽到U盘来下载程序到目标板;
  4. Daplink实现了一个WebUSB驱动,通过浏览器就可以将文件拖拽到U盘,因此可以将云端的编译器输出的16进制目标文件直接下载到目标板中,这个功能对于针对中小学的软件编程教学平台特别有用,可以省去在本地部署开发环境,有效地降低教学成本

2.2 自定义蓝牙开发板的方案选型

2.2.1 Daplink接口芯片的选型

        通过访问以下网站,查找相关的资料:

          https://daplink.io/

          https://github.com/armmbed/mbed-HDK          https://github.com/ARMmbed/mbed-HDK-Eagle-Projects

          https://github.com/armmbed/DAPLink

       从上述的3个网站中,可以找到Daplink的参考硬件参考设计资料、软件源代码。

       经过消化从这几个网站的关于Daplink的介绍、硬件参考设计和软件包的下载编译测试,我决定采用STM32F103CBT6作为蓝牙开发板中的Daplink接口芯片,选择这颗芯片的理由如下:

  1. 手头有从某宝购买过的基于STM32F103CBT6芯片的Daplink,可以方便我做源码的编译测试;
  2. 目前出现的芯片荒,导致Freescale KL27系列芯片很难买;
  3. 本人多年使用STM32系列的芯片做产品开发,不想去熟悉一款新的芯片的开发环境,这个做过研发的人都懂;

2.2.2 蓝牙芯片nRF52833的选型

        查阅nRF52833官方资料,该芯片有多种的封装形式:

一款基于nRF52833的蓝牙开发板的技术方案选型

         图2-2-1所示为aQFN封装。

一款基于nRF52833的蓝牙开发板的技术方案选型

        图2-2-2所示为QFN40封装。

一款基于nRF52833的蓝牙开发板的技术方案选型

        图2-2-3所示为WLCSP封装。

       从上述的封装可以看出,QFN40封装的输出引脚最少,那么一些需要使用到引脚的一些功能将会受到限制,但因为目前我是要做一款全功能的开发板,那么最好引出所有的芯片引脚,所以QFN40封装的nrF52833芯片暂时就不考虑了。

       从几个芯片的封装来看,抛开QFN40封装后,剩下的二款芯片的封装形式,在业余条件下,采用手工焊接的方式处理都会有一定的难度,焊接的良率无法保证,如果外发采用SMT加工,又受到加工量少、芯片采购困难、开机费贵等因素的影响,所以也让人很纠结。

       经过综合考虑,觉得可以采购一款基于nRF52833的蓝牙模块来降低直接采用芯片进行设计的难度,通过再次查询某宝官网,终于找到了一款基于蓝牙nRF52833的模块,基本信息如下:

一款基于nRF52833的蓝牙开发板的技术方案选型

       更多的资料,可以访问:https://www.ebyte.com/查询询。

       至此,为了降低开发前期的设计难度,决定采用EBYTE的E73-2G4M08S1E来进行设计。

3、总结

       综上所述,本蓝牙开发板决定采用如下的资源进行设计:

  1. Daplink的接口芯片:STM32F103CBT6;
  2. 蓝牙部分:E73-2G4M08S1E模组;
  3. 固件:GitHub - ARMmbed/DAPLink
  4. Daplink硬件参考设计:https://github.com/ARMmbed/mbed-HDK-Eagle-Projects

       详细开发过程,见后续的开发文档。

上一篇:Python入门示例系列18 条件控制


下一篇:Verilog练习:HDLBits笔记8