stm32wb55rg (2) 阅读资料手册

阅读资料是嵌入式开发的必备技能,能够从资料中找到自己想要的技术信息,才是最为核心的技术能力。

nucleowb55rg板子的MCU为stm32wb55rg,这块板子的资料有很多,但有些内容可以边用边读,有些内容有必要预先掌握下。

下面几个技术点是非常有必要开发前掌握的。

开发板外观

认知始于感性。首先是看下板子的外观

从板子外观上可以看出来,这块板子支持无线,大多数GPIO被插针引导了出来,板载ST-link。背面应当是可以焊接纽扣电池供电的。

板子的有两个MCU

  • 一个是stm32wb55,这个连接了天线,应当是待开发的MCU了,作为关注重点,该芯片被放在了金属片里面,通过文字可以得出其芯片类型。
  • 另一个是STM32F103CBT6,用于板载st-link功能,这样我们就可以不用其他设备来下载程序了。

板子上还有1个reset swich,和3个user switch ,3个LED

多数MCU都是基于JTAG下载程序的,下载器除了st-link还有很多,比如jlink, ulink, cmsis-dapper等等。

电路原理图

电路原理图反应了控制器和各个电子元件之间的相互联系。

nucleowb55rg的电路原理图有多页,通过对比板子的丝印和原理图,可以知道板子上3个通用按键和3个LED与MCU的pin脚关联,高低电平触发方式,还知道GPIO对外的接插件信息。从中我们可以知道板子有两个外设晶振,为32MHZ和32K768HZ。

芯片封装

  • 一般每种芯片都会有多种package形式,这里的芯片封装为VFQPPN68,64个pin,每个pin的功能可以通过datasheet查到。有PA,PB,PC,PD4组GPIO口,每组的pin数量可以从图中看到,每个pin支持的功能也可以从datasheet的 pin定义表中得到,包括每个pin的可复用功能等。

  • 芯片为双核32位,有M4和M0两个内核,M0有特定功能,用于BLE的处理和收发。

  • 芯片有1MB的Flash和256K的SRAM,这个容量可以加载常用的OS和中间件。



芯片资源

数据手册首页概述了芯片的所有资源,包括内核型号,供电,时钟,外设/定时器数量,低功耗和温度适用等等。系统框图也提供了完整的high-level view.

Memory mapping

stm32wb55属于32-bit的arm MCU, 所以最大寻址空间为 2^{32} = 4GB,也就是寻址空间 从0x0的起始地址到0xFFFFFFFF,但实际上不会超过这个地址。

从memory mapping中可以知道mcu的kernel所有外设的所处的地址范围,各自的寄存器也都位于这个地址段中。并可以知道MCU的ram和flash的存储空间地址及大小。

时钟树

时钟是MCU的心脏,必须了解时钟源的设定和参数设置,通过时钟树可以了解不同时钟源的作用路径,前面讲过该板子上有两个外接时钟,分别是32M和32k768。

时钟树上的矩形框表示分频/倍频器,最左侧的竖线表示对外时钟相关的pin。竖放的梯形框为可复选框。

从时钟树上看出来,系统时钟sysclock有4个来源可供选择。分别是PLLRCLK, HSI16,HSE,MSI

看门狗WDG的时钟只能来源于LSI

从系统时钟SYSCLK出来的时钟可以经过分频得到HCLK1,HCLK2,HCLK4然后分别向不同的APB1,APB2等提供时钟。从memory maping 中,又可以快速知道APB1,APB2分别挂载了哪些外设,如果需要使用这些外设,就需要将对应的APB的时钟使能,并设置好相应的分频系数。

从时钟树的右下角,可以知道SMPS, USART1,LPTIMx 这几个外设的时钟可用来源。

I2Cx的时钟来源只能从PCLKn,SYSCLK,HSI16 中来选择。

还有MCO是芯片对外提供时钟,该时钟的可以有多个来源,也可以清楚看出来。

总结

  • 了解了板子的外观和原理图
  • 了解了芯片的pin 定义,片上资源和外设
  • 了解了芯片的memory mapping,每个外设所处的总线段
  • 了解了时钟树,外设的时钟来源
    那么利用前面的工程模板,应当可以相对比较简单的开发出一些简单的功能了。后面会基于这些内容进行项目开发,从简单项目到一个复杂项目,最终收获自己的产品。

搞定收工

相关推荐
happygrilclh1 小时前
STM32,串口单字节中断接受,每次上电后,会收到一个0x00的解决办法。
单片机·嵌入式硬件
智闲电子设计2 小时前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech3 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ4 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡5 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城6 小时前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡6 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生7 小时前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程
离凌寒7 小时前
一、对stm32mp157配置freertos后,任务挂掉无法启动问题总结
stm32·单片机·嵌入式硬件
消失的旧时光-19439 小时前
7-fix补充篇:机器人为什么需要多级控制仲裁?Cloud、Linux 与 MCU 分别管什么
linux·单片机·机器人·仲裁机制·安全保护机制