 Hello, and welcome to this presentation of the STM32 Cube Firmware Package for the STM32 U5 series. The STM32 Cube Embedded Software for the STM32 U5 series is the richest firmware package released on web at product mass market launch. It is published on GitHub in addition to www.st.com for faster propagations of improvements and bug fixes. It is open for pull requests and issues to facilitate user contributions and direct feedback. It highlights all features of the STM32 U5 product with a particular focus on the low-power features through dedicated examples and the first in a kind provision of a helper utility driver for LP-BAM subsystem. Security features are represented by trust zone support, TFM stack integration, and dedicated SBS FU applications. This firmware package is the first to natively support Microsoft, Azure, RTOS, Middleware, USBX, FileX, LevelX, ThreadX, and NetX Duo, inducing the full cohabitation of USBX and USB PD. Amongst other in-house Middleware support such as Touch Sensing Library and Network Library, the STM32 Cube U5 Firmware Package also supports the open bootloader. IoT and connectivity are also part of this firmware package through wireless communication, which relies on external baseband and RF devices, MXChip for Wi-Fi, and ST32WB for BLE, supported by the BU585I IoT02A Discovery Board. For each board, a set of examples and Middleware applications are provided with pre-configured projects for EW ARM, MDK ARM, and STM32 Cube IDE tool chains. And improved documentation, thanks to the new HTML readme files present in the various firmware directories. See the figure on the right. The STM32 U5 series features the low power background autonomous mode subsystem, which allows peripherals to be functional and autonomous, regardless of the power modes, and without any software running. It can chain diverse operations through DMA linked list transfers. The LP BAM utility is a set of modular drivers located in the Utilities folder of the STM32 Cube U5 Firmware Package. It provides two levels of abstraction to the user, basic and advanced levels. The LP BAM utility is based on layers. The first level of abstraction is a hardware agnostic layer called the basic LP BAM layer. It gives users full granularity of scenario creation via transversal APIs. The second level of abstraction is a hardware agnostic layer called the advanced LP BAM layer. It provides a predefined scenario that can be customized and concatenated to build an end user application. The platform layer contains device specific constants to be used by the applicative side. The low level LP BAM layer is used by the basic and advanced LP BAM layers. It contains the device specific mechanisms for each supported peripheral. Nine applicative use cases developed on Nucleo U575ZIQ enable users to become familiar with this new class of drivers. Additional dedicated modules are available in the STM32 U575EV out-of-box demo, signal generator, and sensor acquisition. In addition to LP BAM, multiple examples implement the various low power features offered by the STM32 U5. ARM Trusted Firmware M or TFM is the reference implementation of the ARM Platform Security Architecture or PSA for TrustZone. Two different examples are provided in the STM32Cube U5 MCU package. The first is a complete implementation of TFM. A second application implementing only the secure boot and secure firmware update functionalities of TFM called STM32Cube U5 SB SFU is also available. The TFM reference implementation provides secure boot and secure firmware update services based on open source MCU boot and a set of secure services available at runtime for the user application. The table indicates the main features of the secure boot and secure firmware update application. Dynamic firmware update is supported with two slots and swap capability. In a mutable standalone local loader is in charge of downloading the possibly encrypted image. Two levels of isolation are implemented, secure versus non-secure and privileged versus non-privileged. Secure services are secure storage service, attestation, crypto service, TFM audit log, platform service. Seven dedicated TrustZone examples and applications are available for three IDEs, IAR, Keel and STM32Cube IDE. The STM32Cube U5 software suite is complemented with Microsoft Azure RTOS middleware that includes Azure RTOS Thread X Real-Time Operating System, Azure RTOS File XFAT File System Fault Tolerant, Azure RTOS NetX and NetX Duo TCPIP stacks, Azure RTOS USB X USB stack host and device and cohabitation with USB PD. The list of features supported by Azure RTOS middleware is provided in the table on the right. Azure is natively supported by STM32Cube U5. The additional key benefits that Azure RTOS brings to the well-known STM32Cube software suite are fast performance, complete consistent solution, industry certification. The USB Type-C connector enables traditional USB communication between the host and peripheral concurrently with the power delivery protocol. The STM32U5 embeds both a power delivery interface and a host device, USB 2.0 interface. The STM32Cube U5 is the first firmware package in which USB X and USB PD are fully integrated. USB X includes host and device stacks that come with many classes. The two following applications are provided in the firmware package. USB PD SyncU X device, HID CDC ACM, USB PD Type-C consumer and USB device using the Azure RTOS USB X stack on the STM32U585XX board. USB PD SRCU X host MSC provides an example of Azure RTOS USB X stack usage. It shows how to develop USB host mass storage capable of enumerating and communicating with a removable USB flash disk. Full validation and pre-certification tests facilitate the design of USB data and power delivery applications. An important requirement for most flash memory-based systems is the ability to update firmware once installed in the final product. This ability is referred to as in-application programming or IAP. Open Bootloader is an IAP that is provided in the STM32Cube firmware package and GitHub. This is an example that can be used by any customer that wants to build their own bootloader. Its main task is to download the application program to the internal user memory. Flash SRAM or OTP without the need for a debugger by using one of the available communication interfaces. Usart I2C SPI USB-DFU or FD-CAN. Regarding the USB boot interface, STM32U5 is the first MCU to support the integration of Azure USB X and ThreadX RTOS. Open Bootloader provides services to the host application such as STM32Cube programmer to download firmware to the device via an interface link and install this firmware into the required user memory. Open Bootloader relies on the STM32Cube firmware HAL and LL drivers for hardware system initialization such as the different clocks and the interface configurations. Open Bootloader is executed by the Cortex-M processor in the non-secure domain. The list of commands that are passed to the STM32 through the selected communication link is indicated on the right-hand side of the slide. In this implementation only, one instance of each protocol is used and for each of these protocols, one set of default pins is used. It is then up to the user to change the instance or pins if desired. This figure sums up the features of Open Bootloader. The objective of Open Bootloader is to provide an open source boot program with exactly the same features as the STM32 system bootloader and with exactly the same ecosystem. Open Bootloader is compliant with the STM32Cube firmware architecture based on the same drivers and middleware. Compatibility with the official ST Bootloader host, STM32Cube programmer is assured. By providing the source code, customers can adapt the boot program to their specific needs. Open Bootloader will progressively replace the IAP application in STM32Cube package. This slide describes the module that provides Wi-Fi connectivity to the STM32U5. The EMW30-80B device made by MXChip is an embedded wireless internet connectivity device. The module uses either the SPI or the UART interface to communicate with the MCU. The EMW30-80B module is directly soldered on the BU5-85IIOT02A board as highlighted in the top view of the board. It can also be present on a separate board. The EXTAT3080 shield to connect to any STM32 board via an Arduino connector. The MB1400 shield to connect to any STM32 board via an STMOD plus connector. The Wi-Fi module requires no operating system and has a completely integrated TCPIP stack that only requires AT commands to establish connectivity. The software architecture relies on the MX Wi-Fi driver that communicates with the EMW30-80B module. Test applications developed by MXChip and network library and applications developed by ST can be used on top of the driver. Seven middleware applications and one demo allow to get familiar with this Wi-Fi module. This slide describes the module that brings Bluetooth low energy connectivity to the STM32U5. The innovative architecture of STM32WB MCU's is based on two totally independent cores, optimized for real-time execution and enables flexible resource use as well as power management. This module is embedded in the BU5-85IIOT02A board. Communication with the STM32U5 is based on AT commands transferred over a UART link. The following application is available to demonstrate the capabilities of the BLE module. Heart rate sensor, point-to-point server. Once connected to the STBLE sensor application installed on a smartphone, the user can use LEDs and the button to verify the communication between the module and the smartphone. The instructions and commands that are transferred are displayed on the STM32U5 console. See the capture. The Wi-Fi web server demonstration is described in this slide. This demonstration firmware is part of the STM32CUBU5 MCU package. It shows how to use the MXChip module to perform HTTP requests using STM32CUBHAL. The MXChip module and a web browser, Google Chrome browser in this case, are used to create a web server. This web page supports PC and phone usage. The BU5-85IIOT02A board is the HTTP server in this demonstration. It contains the web page resources sent after each client request. The BU5-85IIOT02A board can decode, treat, and respond to client requests. Web page resource requests such as HTML pages, CSS files, and JS files. Sensor value requests, temperature, pressure, and humidity values. The user can start surfing a web page by copying the server IP address provided after the network interface process and pasting it in their browser. The web page will be loaded on the client's server. The web page contains four main menus. Home menu contains the product and the web page description. Temperature menu, pressure menu, humidity menu. Finally, the user can choose any menu and start or stop the different sensors' acquisitions. Standalone, HTML, Readme files are available in the directories containing examples and applications. They indicate the objectives of the program and expected results and useful notes so that users can easily understand the program and quickly develop their own projects. Thank you for attending this presentation.