前言) Q" S6 S: ?/ L6 J& p3 E' W 去年,STM32推出了STM32无线MCU系列,一开始我本以为是集成了蓝牙和WIFI的常规操作,要和ESP32下场开撕了,结果仔细看了简介之后,发现WB支持蓝牙不支持WIFI,但在蓝牙功能方面做的不错,可以支持蓝牙LE、Zigbee、Thread。而且WB55还是双核的,双核的MCU用的确实还不多,想试试水。 板子已经通过初步开发的检测,和我前些个设计的板子一样,全部开源,大家可以直接打样。(射频部分的Π型滤波、射频走线等需要根据板厂的层叠结构、阻抗控制、板材自行计算和调整。). x6 _6 }+ P* O4 B ; o% }6 j4 k, Y' l( } z" c9 X9 \" p3 R' z# g, F 简介 # h5 L/ T0 v" ~( Z W/ o 参数介绍 MCU方面 MCU型号:STM32WB55RGV6 主频:4 |9 `. `7 p3 H- P2 _3 u M4内核:64MHZ / 80 DMIPS M0+内核:32MHZ Flash / RAM:1M / 256K2 `, _ z# G0 q, i6 j 主要外设: f0 r+ l; _9 ] 2个串口 Y& j/ M0 M; ^7 ]" M( \ 2个SPI& T1 t) x% \- g0 a! z# K9 y 2个IIC 1个USB+ ]6 m2 r6 O ?- N D- u# W 支持8*40 LCD - Z: {: N+ c6 i) T3 Y! z 开发板方面 板载功能: 板载射频天线 / 外接天线可选。 板载64Mb Flash,通过QSPI总线连接。7 P& O1 @' P1 } v# E 板载DAP下载器,并且一路UART连接到DAP,可以直接与电脑通讯,UART有LED指示。 引出MCU的USB接口。* w% W) l. m/ w+ X. \/ f 引出除了QSPI、晶振、SWD、USB之外的所有IO,可以直接接在面包板上。# `& w$ O9 {) B1 O8 |8 [ 板载双色LED和一个用户KEY。 6 f1 t5 k5 c7 [0 V6 o! X 9 O" C# z7 o8 }# T 这块板子本来是和G4的开发板一起做的,后来我焊接时看错了型号,本来3V3的输出的稳压芯片,用了5V的输出。导致上电之后DAP下载器和WB55直接挂了= =。无奈又买了两颗WB55。整板调试的时候,发现调试串口接反了(虽然预留了0Ω电阻,可以飞线,但我拒绝瑕疵)所以又打了一版,耽误了些时间。 ) W$ w# g1 j" m4 ?+ Z1 {- L/ s WB55开发初体验& P7 K) e6 A/ ~1 d! t! E, O 点灯程序 我为了测试板子,用CUBEMX做了个点灯程序,开发流程和普通F系列MCU一样。配置时钟,再配置引脚,写一下IO的电平跳变就可以了。 . p/ ^ B- P) `2 O 5 i8 ^; _8 T) N$ @) p, C5 p 蓝牙应用探索 我之前没有接触过蓝牙的内核配置,哪怕是ESP32,也只是用现有的固件通过指令控制。我本以为可以在CUBEMX里面像普通外设一样开启蓝牙,能做一个蓝发发生器什么的。我发现我太天真了,因为我发现一个问题,我之前有配置过H7的双核MCU的,在CUBEMX里面基本每个外设都可以选择控制的内核。但是在WB55里面,除了蓝牙之外的其他外设,只能有M4控制。 看了官方的文档和一些博主的文章。大致情况是,M0+的内核作为普通开发者不能开发固件。只能通过ST官方给出的几个固件方案来开发。 需要下载自己需要的固件,通过STM32CubeProgrammer程序由串口、USB、ST-Link等方式将固件烧录到M0+内核中。只能通过M4内核用API来控制M0+,还有涉及到内核与内核通讯的状态机。 为了方便研究,官方的关于RF的文档我基本都已经放在了【General document/射频部分资料】文件夹中。有一部分已经被我翻译了(英语菜鸡)9 q4 m3 i+ h _* n5 @ 目前所知的是这款MCU的蓝牙方面的开发对技术要求还是比较高的,已知的是需要有蓝牙协议栈的知识基础、实时操作系统开发经验。以下是官方文档的原话(译文) ' y( D) N8 `% d) [ 为了充分受益于本文的信息,并开发一个应用,用户必须熟悉STM32微控制器、BLE技术、802.15.4 OpenThread协议、Zigbee®协议和802.15.4 MAC层,并且必须了解系统服务,如低功耗管理和任务排序。$ C: I2 C- S& n0 j & t; y7 j4 I2 k 引用与《用STM32WB系列微控制器构建无线应用》-简介; d8 o; k' m7 \: S' Z 所以想要开发一个实际可行的应用,要么买官方的开发板,有专用的软件连接(我试过用这个软件,但可能是因为我用的是DAP下载器,所以找不到我的板子)。要么苦练内功~目前我也是在学习蓝牙协议栈中。5 h. o, K, ~* V8 ` 6 A7 }3 O0 I- z+ R, l4 ^+ P 总体评价* f* {8 C T9 M4 H& V# s: T 目前来说这款MCU对于普通的爱好者其实不太友好,但作为ST唯二的无线MCU系列(另一个WL只要是LORA应用)不排除现在推出时间太短的关系。 性价比方面,现在这个特殊的时期,光是主控芯片某宝STM32WB55RGV6的价格已经是80+了,而ESP32-WROVER这款双核模块,240MHZ的主频加上20不到的价格基本上可以说是碾压了。又一次ESP32真香。对于原本对蓝牙和实时系统方面不太了解的爱好者或者是从业人员,这款MCU并不是入门蓝牙或嵌入式的好的选择5 N) Z+ V3 h9 Y' f1 Q6 n 但不能说WB55现在无用吧,尤其是拥有Zigbee、Thread连接的功能。而且对我个人而言,还是比较喜欢STM32的软件生态的,毕竟STM32CUBEMX实在太好用了。目前来看,官方开放的资料还是比较多的,适合目标是在蓝牙、物联网、无线连接领域深耕的开发者入门、学习。/ p& I6 T% M% [2 p% X 我所学习的是嵌入式硬件工程师的领域,也对蓝牙开发有兴趣,所以做了这张板子,希望可以学习些底层的蓝牙知识。如果有相同目标的开发者,可以关注我,对于这款开发板的软件开发进度我也会不定时更新。 开源地址 可以去白嫖了~下载的时候求求点一下星星,抱拳了! github :https://github.com/lijinlong21549/STM32WB55RGV6 |
使用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的使用