BLE Soc
BLE 开发工具
Nordic nRF52840 sniffer
NORDIC 官方提供的蓝牙抓包方法,优点就是便宜!整套硬件成本不超过 100RMB,比公司 30W 的 ellisys 专业蓝牙分析仪要便宜得多了。缺点就是在嘈杂的蓝牙环境下,抓包比较困难,但是在家里蓝牙设备不多的情况下还是可以用用的。适合初学者入门学习蓝牙协议栈的数据流!
推荐购买亿佰特EByte的nRF52840 sniffer,比较稳定
如果买的nRF62840没有固件。NORDIC 官网有英文教程文档会介绍如何将你的开发板刷成蓝牙抓包器
Wireshark 软件
软件配置步骤简述:
-
python3.7及以上的环境
-
wireshark环境配置
nrf_sniffer_for_bluetooth_le_4.1.0/extcap 目录运行命令: python -m pip install -r requirements.txt
将 nrf_sniffer_for_bluetooth_le_4.1.0/extcap 目录里的内容原封不动的拷贝到 Wireshark 安装目录里的 extcap 下。
将 Profile_nRF_Sniffer_Bluetooth_LE 拷贝到wireshark/profiles文件夹下
-
nRF52840驱动CP2102
nRF connect 软件
参考资料
1 Nordic
nRF5 SDK
nrf5 sdk可以直接到nordic官网下载,该SDK是开箱即用的,但是我们仍然需要一些东西。
nrf5 sdk如何选择、使用,可以参考中国区原厂FAE的博客:
Nordic nRF5 SDK开发环境搭建(nRF51/nRF52芯片平台)
-
KEIL
打开工程,会缺少Device family pack,并且提示我们应该安装的版本,直接通过keil的manage run-time environment跳转到Device family pack下载链接,并且下载对应版本并且手动安装pack即可。
-
IAR
使用IAR开发时,只需要安装SDK内附带的nRF_MDK_8_40_3_IAR_BSDLicense就行了,另外需要注意的是,SDK是适配IAR7的,IAR8下编译会有些报错,需要做点修改,查看sdk documentation
Note for IAR 8 users:
When using IAR 8, you must apply the following workaround in the MDK:
Apply a patch to modules/nrfx/mdk/compiler_abstraction.h at line 140 (fix the '__ALIGN()' macro definition): use the argument 'n' in the macro expansion instead of 'x'.
-
sxxx_nrf52_x.x.x_softdevice
nRF5 SDK是Nordic nRF51/52系列产品软件开发环境,Softdevice是Nordic蓝牙协议栈的名称,为了方便用户的使用,每一个版本的SDK都包含了该版本支持的所有softdevice,请到SDK根目录\components\softdevice目录查看具体支持的softdevice类别和版本。
你应该会遇到这样的情况——代码明明编译通过了,下载也没报错,但设备就是不广播、连不上手机,甚至调试器都连不上芯片?那很可能问题出在 —— 你没搞懂SoftDevice和应用程序是怎么“和平共处”的。
Nordic的nRF52系列之所以强大,是因为它把复杂的蓝牙协议栈封装成了一个叫 SoftDevice 的黑盒子。这个“黑盒子”不是你随便能动的东西,但它又必须和你的应用协同工作。
nRF Connect SDK(NCS)
中国区原厂FAE的博客:开发你的第一个nRF Connect SDK(NCS)/Zephyr应用程序
-
nRF Connect SDK入手
1 下载JLink
2 下载nRFUtil,并且添加到环境变量
3 VScode安装 nRF Connect VS Code Extension Pack
4 在nRF Connect界面安装 toolchain 和 SDK
2 Telink
TelinkSDK是官方的,相比AiThinker这种模组代理商,代码更权威更完善。比如单连接SDK Demo,多连接SDK Demo都配有官方说明文档。能学得更深入。
AiThinker作为模组商,由于客户没有二次开发能力,会用MCU+模组的方法使用BLE。模组商一般会给客户提供AT指令的Demo,可以AT指令的代码顺藤摸瓜熟悉功能。—— Ai-Thinker-Open Telink_825X_SDK
IDE(TLSR825X)
Telink IDE和Telink Studio是有区别的,TelinkIDE针对TLSR8(例如TLSR8258),而TelinkStudio针对TLSR9
TLSR8不像TLSR9支持调试,所以TLSR8只能用print打印来交互调试,故编写UART交互对于TLSR8开发是极为重要的。
BDT Burning and Debugging Tools for all Series
Telink SDK(TLSR825X)
Telink的文档更新速度并不快,例如多连接文档是对4.0.1.x的SDK说明,目前的4.0.2.x并不适用。所以github/gitee仓库应该选择早些的发行版(4.0.1.x)。