前言! L, r+ @. G# q, q1 W& J 去年,STM32推出了STM32无线MCU系列,一开始我本以为是集成了蓝牙和WIFI的常规操作,要和ESP32下场开撕了,结果仔细看了简介之后,发现WB支持蓝牙不支持WIFI,但在蓝牙功能方面做的不错,可以支持蓝牙LE、Zigbee、Thread。而且WB55还是双核的,双核的MCU用的确实还不多,想试试水。 板子已经通过初步开发的检测,和我前些个设计的板子一样,全部开源,大家可以直接打样。(射频部分的Π型滤波、射频走线等需要根据板厂的层叠结构、阻抗控制、板材自行计算和调整。) 4 t9 H8 Z R7 g' A0 S4 o ; Z$ K& T @* o. \- H2 _3 V9 b 简介$ ~4 s" M) q8 u$ U \$ l: w& f1 k 参数介绍 MCU方面: T/ Q! i6 H9 x$ x MCU型号:STM32WB55RGV6 主频:% e2 z; Q9 {+ y/ B5 q0 l6 ] M4内核:64MHZ / 80 DMIPS( r& Z( V! i% Q. S M0+内核:32MHZ% Q7 ]$ p G: s& j4 s; ?, K) H! q Flash / RAM:1M / 256K 主要外设:2 S" m i5 g5 C' A# P 2个串口 2个SPI8 Q+ `9 m* m% Y& U9 X, z8 j9 E 2个IIC' M' ^1 p5 W* [ 1个USB 支持8*40 LCD 7 R2 j) z" d& d8 V3 Q$ K3 f% ]( R 开发板方面 板载功能: 板载射频天线 / 外接天线可选。 板载64Mb Flash,通过QSPI总线连接。. ~2 V4 T* e0 R+ f5 z3 o 板载DAP下载器,并且一路UART连接到DAP,可以直接与电脑通讯,UART有LED指示。 引出MCU的USB接口。! J7 E* _0 v' o: Y 引出除了QSPI、晶振、SWD、USB之外的所有IO,可以直接接在面包板上。 板载双色LED和一个用户KEY。) R3 g9 u3 W9 u2 W9 G+ B0 l& q - s. s& k8 O6 m% N 这块板子本来是和G4的开发板一起做的,后来我焊接时看错了型号,本来3V3的输出的稳压芯片,用了5V的输出。导致上电之后DAP下载器和WB55直接挂了= =。无奈又买了两颗WB55。整板调试的时候,发现调试串口接反了(虽然预留了0Ω电阻,可以飞线,但我拒绝瑕疵)所以又打了一版,耽误了些时间。 q5 \' W+ c0 T: `/ n0 r WB55开发初体验0 `* x$ Q) z z4 x* | M9 Z 点灯程序6 q7 E9 `" F0 y+ A7 I 我为了测试板子,用CUBEMX做了个点灯程序,开发流程和普通F系列MCU一样。配置时钟,再配置引脚,写一下IO的电平跳变就可以了。 蓝牙应用探索- H2 R! @$ T5 ^* W7 ~( C" n 我之前没有接触过蓝牙的内核配置,哪怕是ESP32,也只是用现有的固件通过指令控制。我本以为可以在CUBEMX里面像普通外设一样开启蓝牙,能做一个蓝发发生器什么的。我发现我太天真了,因为我发现一个问题,我之前有配置过H7的双核MCU的,在CUBEMX里面基本每个外设都可以选择控制的内核。但是在WB55里面,除了蓝牙之外的其他外设,只能有M4控制。 看了官方的文档和一些博主的文章。大致情况是,M0+的内核作为普通开发者不能开发固件。只能通过ST官方给出的几个固件方案来开发。 需要下载自己需要的固件,通过STM32CubeProgrammer程序由串口、USB、ST-Link等方式将固件烧录到M0+内核中。只能通过M4内核用API来控制M0+,还有涉及到内核与内核通讯的状态机。: h$ i1 X$ g g5 V( E 为了方便研究,官方的关于RF的文档我基本都已经放在了【General document/射频部分资料】文件夹中。有一部分已经被我翻译了(英语菜鸡)! R! F! C) _# z: c3 O' o5 Y7 ^ 目前所知的是这款MCU的蓝牙方面的开发对技术要求还是比较高的,已知的是需要有蓝牙协议栈的知识基础、实时操作系统开发经验。以下是官方文档的原话(译文) 4 `' i% Y$ W6 \7 k q( I 为了充分受益于本文的信息,并开发一个应用,用户必须熟悉STM32微控制器、BLE技术、802.15.4 OpenThread协议、Zigbee®协议和802.15.4 MAC层,并且必须了解系统服务,如低功耗管理和任务排序。 引用与《用STM32WB系列微控制器构建无线应用》-简介 " J5 f: N0 m: ]: h, ` 3 }* _3 ~: t; w, ?7 M) R: h 所以想要开发一个实际可行的应用,要么买官方的开发板,有专用的软件连接(我试过用这个软件,但可能是因为我用的是DAP下载器,所以找不到我的板子)。要么苦练内功~目前我也是在学习蓝牙协议栈中。 * R. D; J- c9 h1 m+ v 总体评价7 o% y- s8 P/ C2 e4 f 目前来说这款MCU对于普通的爱好者其实不太友好,但作为ST唯二的无线MCU系列(另一个WL只要是LORA应用)不排除现在推出时间太短的关系。 性价比方面,现在这个特殊的时期,光是主控芯片某宝STM32WB55RGV6的价格已经是80+了,而ESP32-WROVER这款双核模块,240MHZ的主频加上20不到的价格基本上可以说是碾压了。又一次ESP32真香。对于原本对蓝牙和实时系统方面不太了解的爱好者或者是从业人员,这款MCU并不是入门蓝牙或嵌入式的好的选择 但不能说WB55现在无用吧,尤其是拥有Zigbee、Thread连接的功能。而且对我个人而言,还是比较喜欢STM32的软件生态的,毕竟STM32CUBEMX实在太好用了。目前来看,官方开放的资料还是比较多的,适合目标是在蓝牙、物联网、无线连接领域深耕的开发者入门、学习。" I$ ]" E# h- v2 p* L 我所学习的是嵌入式硬件工程师的领域,也对蓝牙开发有兴趣,所以做了这张板子,希望可以学习些底层的蓝牙知识。如果有相同目标的开发者,可以关注我,对于这款开发板的软件开发进度我也会不定时更新。, \, @. C b+ ]; n- b' Z 开源地址6 S8 A5 }) n9 u1 b! P 可以去白嫖了~下载的时候求求点一下星星,抱拳了!9 H& ?* G; ]3 G* B/ K1 L9 M* x github :https://github.com/lijinlong21549/STM32WB55RGV6; e3 I t7 E! u' ~; X. @1 I0 J e , w, P. C& g. Z3 S3 g$ ] P* v |
使用STM32WB系列微控制器构建无线应用
STM32WB基于Custom Template实现客户定制BLE私有协议
STM32 生态系统|基于STM32WB的低功耗蓝牙应用(一)
【NUCLEO-WB09KE评测】BLE创建服务和写特征控制LED
【NUCLEO-WB09KE评测】+使用STM32CubeMX新建蓝牙工程
【NUCLEO-WB09KE评测】创建BLE工程和开启调试信息
【NUCLEO-WB09KE评测】BLE例程HeartRate及工具探索
【NUCLEO-WB09KE评测】使用I2C点亮一个OLED
【NUCLEO-WB09KE评测】STM32WB09KE的内部BootLoader使用
【NUCLEO-WB09KE评测】USART的printf和GPIO的使用