“G系列”作为STM32“F系列“的全面升级,令G0与G4产品线备受关注。国庆期间,电堂联合ST邀请来自全国的STM32蝶粉参与了G4板卡试用分享活动,以下是来自成都的资深粉友“Wolfgang”的NUCLEO-G431RB开发板分享文章。
分享文章分为5部分,全面解析NUCLEO-G431RB板卡的各项性能及应用。我们将以连载方式刊出,以期为蝶粉们带来G4性能深入全面的解读。
01. 硬件概览
02. 软件工具及环境搭建
03. Cormark 跑分测试与 Nucleo 其他系列的对比
04. 快速傅里叶变换
05. G4在电机控制中的应用
以下为正文
今天介绍的对象是ST公司的NUCLEO-G431RB开发板,有幸拿到它后,第一时间拍一张红底的证件照(见图一)。
▲图一,板卡证件照
一、主板概览
ST的板卡有3大类,市面上最常见的是NUCLEO板卡,更多地被用于验证板载芯片性能,除此之外,还有资源更丰富的Discovery Kit 和EVAL Kit。
NUCLEO-G431RB板子较之前的NUCLEO64系列的主板,有较大改动,从早期的MB1136、MB1319、MB1360,升级到目前最新的MB1367系列。发现了板子型号的迭代,这里顺便简要介绍一下ST设计的这几款NUCLEO64板子的区别。
1、MB1136 是最常见的NUCLEO64系列,用在它上边的芯片种类很多,跨度最大、时间最长,从早期的F030R8到F446RE、低功耗的L010RB到L152RE、L452RE、L476RG都使用它的布局。
2、MB1319 是MB1136的改版,出现在ST芯片低功耗和LORA盛行的2017年至2018年,这款主板主要为低功耗系列芯片提供电源控制实验验证环境,它板载一颗开关电源芯片SMPS是它区别于同时期其他主板的标志,这类主板通常以“-P”结尾。代表主板有NUCLEO-L412RB-P、NUCLEO-L433RC-P、NUCLEO-L452RE-P,另外从这款主板开始,ST在NUCLEO64系列采用了MicoUSB作为ST-LINK2-1的链接器件。
3、MB1360是2019年为G0(NUCLEO-G070RB、NUCLEO-G071RB)系列搭配出的一款主板,依旧采用2层设计,配合STM32F103作为ST-LINK2-1的环境,MicoUSB作为ST-LINK的供电调试接口,这一版主板最大的不同就是去掉了STS7PF30L这款受控于STLINK的电源管理芯片,用STMPS2141STR替代,供电方式也不是单一的USB外部供电模式,用LDK2M33R、LD1117S50TR、LDL1112PV33R共同组成供电方案,因此这款主板的电源供电选择可采CHG、E5V、VIN、STLK这4种组合,这种组合方式常见于Discovery系列的主板中。
4、简要介绍了前面几款主板,接下来就是本文特别介绍的板载STM32G431RB芯片MB1367主板。这里我用NUCLEO-G431RB与之前的NUCLEO-F302R8做一个对比,见图二。
▲图二,左侧是NUCLEO-G431RB,右侧是NUCLEO-F302R8
A、 STLINK主控芯片的区别
区别最大的就是STLINK主控芯片,用STM32F723替换了沿用3个NUCLEO64系列主板的STM32F103C8,周边的NUCLEO扩展接口发生了变化。从用于STLINK芯片,可以发现这款主板用料实实在在。
在之前ST出品的资源更为丰富Discovery系列主板中,有采用同型号MCU的开发板32F723EDISCOVERY,有兴趣的同学可以观摩一下。
▲图三,ST-LINK链接功能图
B、 电源树
▲图四,电源树图
这款主板采用了多电源组合供电模式,因此根据JP5跳线的不同选择,供电的路径是不一样的。
选择5V_STLIK供电时,供电路径分别经过 U4、JP5、U12和U14 然后到ST-LINK、MCU以及MIPI10接口。
选择5V_VIN供电时,通过主板上Auduino接口的VIN输入小于12V的电压、经过U11稳定到5V,然后经过U12和U14然提向ST-LINK、MCU以及MIPI10接口供电。
选择E5V供电时,5V电源通过主板上E5V(CN7)接口供电,然后经过JP5、U12向ST-LINK、MCU以及MIPI10接口供电。
选择5V_CHRG时,电源源头还是经过USB、JP5、U12向ST-LINK、MCU以及MIPI10接口供电。
C、 接口传承
主板的接口丰富,继续沿用NUCLEO系列中Aduino和ST Morpho连接扩展接口,兼容大部分X-NUCLEO扩展板的应用,仅需少量改动代码就能兼容不同的扩展应用组合。
▲图五,接口引脚略图
D、 板载晶振数量和类型
这款主板用料上实在的又一个证明就是为MCU搭配的晶振也是满配,全部采用小型号贴片封装的晶振:分别是24MHz的2016型晶振、 32.768KHz的3215型晶振、25MHz的2520型晶振。
E、 继承和创新
这款主板继续沿用了MB1360系列主板的设计概念:MicoUSB接口、多电源组合供电模式。最细致之处是为Boot方式专门设计了跳针,方便设计、调试程序时选择启动方式带来便利 。
F、 主板工艺开窗
由于使用了STM32F723IEK6的封装(UFBGA176)主板的制作工业有发生了变化,采用了4层板设计,厂商用心的在主板下方的透明窗体中清晰的标明了板的层数。这是我又一次在主板上看见层数开窗的设计,之前多在欧系电子厂商中看见这样的层数开窗设计,让使用者对主板的情况有清晰的认识。
二、MCU概览
▲图六,功能块图
从官方STM32G431RB功能块图可以看出,G431的主要设备功能:
1、 内核方面:
使用ARM® 32位Cortex® M4 CPU,频率高达170 MHz,带FPU,带MPU,带DSP指令,自适应实时加速器(ART加速器),允许从闪存执行0等待状态,处理能力达到213个DMIPS(Dhrystone Million Instructions executed Per Second:每秒百万次整数指令处理能力) ;
带ETM: 嵌入式跟踪宏单元(Embedded Trace Macrocell) 方便程序调试;
具有12通道DMAMUX;
片内存储空间:128KB Flash和22KB SRAM满足大多数程序的需要。
2、 MCU可复用连接接口包含:
串行基础通信:3个SPI、3个IIC、4个UxART;
USB接口:1个高速USB2.0接口,1个带PHY的USB-C PD3.0接口;
1个具备灵活数据速率的CAN接口(CAN-FD);
2个半双工串行音频接口;
3、 片内加速器:
具备ART加速,具备10KB 内核专用存储器(CCM-SRAM);
具备数学加速器:适合三角函数的坐标旋转数字计算方法(Cordic)、滤波数学加速器(FMAC);
4、 片内多种定时器:
具备1个32位定时器;
具备5个16位不同种类的定时器;
具备2个16位基础定时器;
具备2个16位高级电机控制定时器(8通道,满足最多8x脉宽调制通道);
具备1个低功耗定时器;
5、 逻辑电路单元: