本帖最后由 Litthins 于 2021-10-7 22:22 编辑
#技术资源#
最近拿到搭载ST新款Ultra-Low-Power微控制器STM32U585AI的探索套件B-U585I-IOT02A;猜想感兴趣的朋友应该不少,于是计划和整理了本文。如果您对STM32U5感兴趣,本文可助您快速了解U5系列;对于更好奇探索套件的朋友,本文将揭开B-U585I-IOT02A的神秘面纱。
STM32U5,极低功耗旗舰 提起低功耗,部分朋友可能会想起经典的STM32L系列,L系列是ST微控制器的低功耗产品,从L0至L5,内核升级、主频提升,结合19年推出的STM32L5,不禁让人产生这样的疑问:新出现的U系列,它和L系列到底是什么关系?抱着这样的疑惑,本人查阅相关资料时发现了下面这个图。
低功耗历史盘点: U系列和L系列都属于低功耗系列。L1系列发布于2009年,主打低功耗;L0系列发布于2014年,强调性价比;L4和L4+分别发布于2015、2017年,采用M4内核,追求更高的性能;L5采用M33内核,主频110MHz,强调安全性。 U5主要特性: U5采用M33内核,40nm工艺在功耗表现上较L5更优,动态功耗低至19uA/MHz。U5在低功耗系列中主频最高,达到160MHz,主打超低功耗和安全性。相对于L5系列443分的CoreMark评分,U5系列达到651分,性能提升约47%。内核低功耗性能可以参考ULPMark-CP指标,深度睡眠模式下相对于L5系列的370分,U5拿到535分,低功耗表现更为优异。除TrustZone外,U5还提供Secure Peripherals和Secure DMA等安全特性;支持14位高速ADC和数学加速器(包括FMAC和CORDIC)。封装有48-pin QFN、90-pin WLCSP、48/64/100/144-pin LQFP和132/169-pin UFBGA等8种形式可供选择。目前有1M Flash /786K RAM和2M Flash /786K RAM方案可选,后期Flash容量覆盖范围还会向两端延申。U585系列较U575系列增加了硬件加密特性。
搭载STM32U585AI,探索套件B-U585I-IOT02A介绍 本人收到的探索套件型号是B-U585I-IOT02A;各参数的定义:
B:针对物联网节点的探索套件;U585:MCU型号为STM32U585;I:Flash容量为2Mbytes; IOT:目标应用场合为物联网;02:该系列下第2个套件(第一个是B-L475E-IOT01A);A:支持ARDUINO接口; 实物拍照,可以看到板上资源非常丰富,先介绍下部分接口:
正面:1.蓝牙模块,STM32WB5MMG;2.USB Type-C;3.麦克风MIC1;4.蓝牙电源选择; 5.蓝牙调试接口;6.ST-LINK复位条线;7.麦克风MIC2;8.STM32U585AII6Q; 9.摄像头接口;10.环境光传感器;11.Wi-Fi模块,庆科EMW3080;12.STLINKV3E调试器接口; 13.TOF传感器;14.用户LED*2;15.用户按键;16.复位按键;17.电源指示灯。 板载传感器介绍:
传感器均挂在I2C总线上,layout比较紧凑照片上不方便标注,在这里单独列出:
3轴磁力计IIS2MDCTR;3D加速度计和3D陀螺仪ISM330DHCX; 数字气压计LPS22HH;湿度和温度传感器HTS221; 飞行时间和手势检测传感器VL53L5CXV0GC/1; 环境光传感器VEML6030;此外还有身份验证和安全芯片STSAFE-A110; 除板上丰富的传感器和无线通讯手段外,套件同时提供PMOD、STMOD、Arduino Uno三种接口,极大地提升了可拓展性。
底面布局比较简单:
1.板载STLINK-V3E;2.蓝牙模块调试接口; 3.蓝牙模块复位按键;4.纽扣电池座(需要自己动手焊接); 根据官方资料,搭配STM32Cube生态的STM32U5可以方便地使用Microsoft Azure套件,包括ThreadX实时操作系统、FileX文件系统、NetX TCP/IP协议栈和USBX USB协议栈;感兴趣的朋友不妨一试。
STM32U585AI CoreMark跑分测试 探索套件中,STM32U5使用USART1(PA9和PA10)与STLINK连接;
此外还需使能ICACHE以获取最佳性能,该操作在CubeMX中很方便实现。不同IDE重定向printf的方法稍有不同:
以SART1(PA9和PA10)为例,在STM32CubeIDE下:
__io_putchar (int ch)
{
HAL_UART_Transmit (&huart1, (uint8_t*) &ch, 1, 0x0F);
return ch;
}
在KEIL下:
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit (&huart1, (uint8_t*) &ch, 1, 0x0F);
return ch;
}
使用STM32CubeIDE测试,得分偏低,只有463分,以为移植出了差错,反复检查未见异常。见图。听说非IAR平台移植CoreMark,分数会低约20%,但463分相对于651分,差距太大让人无法忽视。遂上CoreMark官网查阅了STM32U5的跑分记录,发现编译器是Arm Clang compiler v6.14;于是切换到KEIL上重新移植一遍,使用了-O3优化和Link-Time Optimization选项,得到558分,这个分数在KIEL下应该是正常情况。
最后上传CoreMark在STM32CubeIDE和KEIL下的移植代码,供感兴趣的朋友参考。
|