| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870 |
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
- <head>
- <meta charset="utf-8" />
- <meta name="generator" content="pandoc" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
- <title>Release Notes for STM32WLxx HAL Drivers Package</title>
- <style>
- code{white-space: pre-wrap;}
- span.smallcaps{font-variant: small-caps;}
- div.columns{display: flex; gap: min(4vw, 1.5em);}
- div.column{flex: auto; overflow-x: auto;}
- div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
- /* The extra [class] is a hack that increases specificity enough to
- override a similar rule in reveal.js */
- ul.task-list[class]{list-style: none;}
- ul.task-list li input[type="checkbox"] {
- font-size: inherit;
- width: 0.8em;
- margin: 0 0.8em 0.2em -1.6em;
- vertical-align: middle;
- }
- .display.math{display: block; text-align: center; margin: 0.5rem auto;}
- </style>
- <link rel="stylesheet" href="_htmresc/mini-st_2020.css" />
- <link rel="icon" type="image/x-icon" href="_htmresc/favicon.png" />
- </head>
- <body>
- <div class="row">
- <div class="col-sm-12 col-lg-4">
- <center>
- <h1 id="release-notes-for">Release Notes for</h1>
- <h1 id="stm32wlxx-hal-drivers"><mark>STM32WLxx HAL Drivers</mark></h1>
- <p>Copyright © 2020 STMicroelectronics</p>
- <a href="https://www.st.com" class="logo"><img
- src="_htmresc/st_logo_2020.png" alt="ST logo" /></a>
- </center>
- <h1 id="purpose">Purpose</h1>
- <p>The STM32Cube HAL and LL, an STM32 abstraction layer embedded
- software, ensure maximized portability across STM32 portfolio.</p>
- <p>The Portable APIs layer provides a generic, multi instanced and
- simple set of APIs to interact with the upper layer (application,
- libraries and stacks). It is composed of native and extended APIs set.
- It is directly built around a generic architecture and allows the
- build-upon layers, like the middleware layer, to implement its functions
- without knowing in-depth the used STM32 device. This improves the
- library code reusability and guarantees an easy portability on other
- devices and STM32 families.</p>
- <p>The Low Layer (LL) drivers are part of the STM32Cube firmware HAL
- that provide basic set of optimized and one shot services. The Low layer
- drivers, contrary to the HAL ones are not Fully Portable across the
- STM32 families; the availability of some functions depend on the
- physical availability of the relative features on the product. The Low
- Layer (LL) drivers are designed to offer the following features:</p>
- <ul>
- <li>New set of inline function for direct and atomic register
- access</li>
- <li>One-shot operations that can be used by the HAL drivers or from
- application level.</li>
- <li>Fully Independent from HAL and can be used in standalone usage
- (without HAL drivers)</li>
- <li>Full features coverage of the all the supported peripherals.</li>
- </ul>
- </div>
- <section id="update-history" class="col-sm-12 col-lg-8">
- <h1>Update History</h1>
- <div class="collapse">
- <input type="checkbox" id="collapse-section5" checked aria-hidden="true">
- <label for="collapse-section5" aria-hidden="true"><strong>V1.3.1 /
- 20-December-2024</strong></label>
- <div>
- <h2 id="main-changes">Main Changes</h2>
- <ul>
- <li>Patch release of <strong>HAL and Low Layer</strong> drivers to
- include latest corrections</li>
- <li>Update the following IPs Drivers: ADC, CORTEX, CRYP, DAC, GENERIC,
- GPIO, I2C, SMBUS, SPIU, SUBGHZ, TIM, UART, UTILS</li>
- </ul>
- <h2 id="contents">Contents</h2>
- <h3 id="hal-drivers-updates"><strong>HAL Drivers</strong> updates</h3>
- <ul>
- <li><strong>HAL ADC</strong> driver
- <ul>
- <li>Fix MISRA-C 2012 Rule 15.7 issue</li>
- <li>Improve de-init sequence by reset clock configuration on last step
- (otherwise, under specific clock source selection, some parameters can
- be not reset)</li>
- <li>Add CFGR1_CHSELRMOD bit to be reset by LL_ADC_DeInit() function</li>
- </ul></li>
- <li><strong>HAL CORTEX</strong> driver
- <ul>
- <li>Update HAL_MPU_ConfigRegion() to allow the configuration of the MPU
- registers independently of the value of Enable/Disable field and add new
- APIs HAL_MPU_EnableRegion() / HAL_MPU_DisableRegion()</li>
- </ul></li>
- <li><strong>HAL CRYP</strong> driver
- <ul>
- <li>Update AES GCM in interrupt mode to avoid Computation Completed IRQ
- fires before the DINR pointer increment</li>
- <li>Update Crypt/Decrypt IT processes to avoid Computation Completed IRQ
- fires before the DINR pointer increment</li>
- </ul></li>
- <li><strong>HAL DAC</strong> driver
- <ul>
- <li>Fix HAL DAC calibration procedure (function
- HAL_DACEx_SelfCalibrate() ) to manage case of calibration factor equal
- to range maximum value (previously, in this case calibration factor was
- reset, leading to voltage accuracy not optimal)</li>
- <li>Update DAC buffer calibration according to Reference Manual</li>
- </ul></li>
- <li><strong>HAL Generic</strong> driver
- <ul>
- <li>Update of HAL_GetTickFreq() brief</li>
- </ul></li>
- <li><strong>HAL I2C</strong> driver
- <ul>
- <li>Remove HAL DMA dependency thanks to the HAL_DMA_MODULE_ENABLED
- define</li>
- <li>Solve Slave No stretch not functional by using HAL Slave
- interface</li>
- <li>Update I2C_WaitOnFlagUntilTimeout() API to handle error case</li>
- <li>Update HAL_I2C_Slave_Transmit() to check if the received NACK is the
- good one</li>
- <li>Update HAL_I2C_Init() API to clear ADD10 bit in 7 bit addressing
- mode</li>
- <li>Update I2C_GENERATE_START() macro to generate stop automatically in
- 10 bit addressing mode</li>
- <li>Remove the unusable code in function HAL_I2C_IsDeviceReady</li>
- <li>Enhance HAL code quality for MISRA-C Rule-8.13 by adding const
- qualifiers</li>
- <li>Update I2C_WaitOnRXNEFlagUntilTimeout to check I2C_FLAG_AF
- independently from I2C_FLAG_RXNE</li>
- <li>Update HAL I2C driver to prefetch data before starting the
- transmission: implementation of errata sheet workaround I2C2-190208 :
- Transmission stalled after first byte</li>
- <li>Update I2C_Slave_ISR_IT, I2C_Slave_ISR_DMA and I2C_ITSlaveCplt to
- prevent the call of HAL_I2C_ListenCpltCallback twice</li>
- <li>Update HAL_I2C_Mem_Write_IT API to initialize XferSize at 0</li>
- <li>Enhance HAL I2C to be thread safe</li>
- </ul></li>
- <li><strong>HAL SMBUS</strong> driver
- <ul>
- <li>Update SMBUS_ITErrorHandler to flush TXDR just in case of error</li>
- <li>Enhance HAL code quality for MISRA-C Rule-8.13 by adding const
- qualifiers</li>
- <li>Update HAL SMBUS driver to prefetch data before starting the
- transmission: implementation of errata sheet workaround I2C2-190208 :
- Transmission stalled after first byte</li>
- </ul></li>
- <li><strong>HAL SPI</strong> driver
- <ul>
- <li>Update HAL_SPI_TransmitReceive API to set the bit CRCNEXT in case of
- one byte transaction</li>
- <li>Update IT API to enable interrupts after process unlock</li>
- <li>Fix driver to don’t update state in case of error
- (HAL_SPI_STATE_READY will be set only in case of HAL_TIMEOUT)</li>
- </ul></li>
- <li><strong>HAL SUBGHZ</strong> driver
- <ul>
- <li>Change macro from ‘CM0PLUS’ to ‘CORE_CM0PLUS’ as in preprocessor
- directives</li>
- </ul></li>
- <li><strong>HAL TIM</strong> driver
- <ul>
- <li>Update interrupt flag is cleared when the update event is generated
- by software</li>
- <li>Remove multiple volatile reads or writes in interrupt handler for
- better performance</li>
- </ul></li>
- <li><strong>HAL UART</strong> driver
- <ul>
- <li>Avoid RTOF flag to be cleared by a transmit process in polling
- mode</li>
- <li>Fix incorrect gState check in
- HAL_UART_RegisterRxEventCallback/HAL_UART_UnRegisterRxEventCallback to
- allow user Rx Event Callback registration when a transmit is
- ongoing</li>
- <li>Update initialisation sequence for TXINV, RXINV and TXRXSWAP
- settings</li>
- </ul></li>
- <li><strong>HAL UTILS</strong> driver
- <ul>
- <li>Fix UFQFPN48 package definition<br />
- </li>
- </ul></li>
- </ul>
- <h3 id="ll-drivers-updates"><strong>LL Drivers</strong> updates</h3>
- <ul>
- <li><strong>LL GPIO</strong> driver
- <ul>
- <li>Remove a redundant call to LL_GPIO_SetPinMode() within the
- LL_GPIO_Init() API</li>
- </ul></li>
- <li><strong>LL I2C</strong> driver
- <ul>
- <li>Update LL_I2C_HandleTranfer function to prevent undefined behavior
- of volatile usage before updating the CR2 register</li>
- <li>Enhance HAL code quality for MISRA-C Rule-8.13 by adding const
- qualifiers<br />
- </li>
- </ul></li>
- </ul>
- <h2 id="known-limitations">Known Limitations</h2>
- <p>None</p>
- <h2 id="development-toolchains-and-compilers">Development Toolchains and
- Compilers</h2>
- <ul>
- <li>IAR Embedded Workbench for ARM (EWARM) toolchain V9.20.1 + <a
- href="./../../Utilities/PC_Software/EWARMv8_STM32WLxx_V4.9_Signed.zip">Patch
- EWARM</a></li>
- <li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.36 +
- <a
- href="./../../Utilities/PC_Software/Keil.STM32WLxx_DFP.1.1.1.zip">Keil
- DFP V1.1.1 Pack</a></li>
- <li>STM32CubeIDE 1.11.0 (GNU Tools for STM32 10.3-2021.10)</li>
- </ul>
- <h2 id="supported-devices-and-boards">Supported Devices and boards</h2>
- <p>Supported Devices:</p>
- <ul>
- <li>STM32WL55xx</li>
- <li>STM32WL54xx</li>
- <li>STM32WLE5xx</li>
- <li>STM32WLE4xx</li>
- <li>STM32WL5Mxx</li>
- </ul>
- <h2 id="backward-compatibility">Backward Compatibility</h2>
- <p>Not applicable</p>
- <h2 id="dependencies">Dependencies</h2>
- <p>None</p>
- <p><br />
- </p>
- </div>
- </div>
- <div class="collapse">
- <input type="checkbox" id="collapse-section4" aria-hidden="true">
- <label for="collapse-section4" aria-hidden="true"><strong>V1.3.0 /
- 09-November-2022</strong></label>
- <div>
- <h2 id="main-changes-1">Main Changes</h2>
- <ul>
- <li>Maintenance release of <strong>HAL and Low Layer</strong> drivers to
- include latest corrections</li>
- <li>Remove HAL_LOCK/HAL_UNLOCK calls in HAL_xxxx_RegisterCallback &
- HAL_xxxx_UnregisterCallback for IPs (DAC, IRDA, LPTIM, SMARTCARD, TIM,
- UART, USART)</li>
- <li>Enhance code quality (MISRA-C rules 8.13, 11.9) for some drivers:
- ADC, COMP, DMA, IRDA, LPTIM, SMARTCARD, TIM, UART, USART</li>
- </ul>
- <h2 id="contents-1">Contents</h2>
- <h3 id="hal-drivers-updates-1"><strong>HAL Drivers</strong> updates</h3>
- <ul>
- <li><strong>HAL ADC</strong> driver
- <ul>
- <li>Disable AutoPowerOff when performing calibration</li>
- <li>Rename ADC_TRx registers to AWDxTR to be in accordance with the
- Reference Manual</li>
- </ul></li>
- <li><strong>HAL CORTEX</strong> driver
- <ul>
- <li>Remove #define LL_MPU_TEX_LEVEL4 (no Level 2 cache for STM32 SoC
- with Armv7-M cortex)</li>
- </ul></li>
- <li><strong>HAL CRC</strong> driver
- <ul>
- <li>Add filter in HAL_CRCEx_Polynomial_Set() function to exclude even
- polynomials</li>
- </ul></li>
- <li><strong>HAL CRYP</strong> driver
- <ul>
- <li>Add interleaved mode</li>
- </ul></li>
- <li><strong>HAL DAC</strong> driver
- <ul>
- <li>Fix HAL_GetTick() timeout vulnerability</li>
- <li>Return HAL_ERROR if configuration is not available on device</li>
- </ul></li>
- <li><strong>HAL EXTI</strong> driver
- <ul>
- <li>Fix computation of pExtiConfig->GPIOSel in
- HAL_EXTI_GetConfigLine()</li>
- </ul></li>
- <li><strong>HAL Generic</strong> driver
- <ul>
- <li>Add HAL_RADIO APIs to handle Radio services (only for
- STM32WL5M)</li>
- </ul></li>
- <li><strong>HAL I2C</strong> driver
- <ul>
- <li>Fix Timeout issue using HAL MEM interface through FreeRTOS</li>
- <li>Fix I2C_IsErrorOccurred returning error if timeout is detected</li>
- <li>Fix ADDRF flag cleared too early when the restart is received but
- the direction has changed</li>
- </ul></li>
- <li><strong>HAL IRDA</strong> driver
- <ul>
- <li>Fix wrong cast when computing the USARTDIV value in
- IRDA_SetConfig()</li>
- </ul></li>
- <li><strong>HAL LPTIM</strong> driver
- <ul>
- <li>Enhance LPTIM state management</li>
- <li>Fix IS_LPTIM_AUTORELOAD & IS_LPTIM_PERIOD macros to check that
- AutoReload value must be strictly greater than 0</li>
- </ul></li>
- <li><strong>HAL RCC</strong> driver
- <ul>
- <li>Optimize HAL_RCC_OscConfig function when checking if oscillator is
- ready</li>
- <li>Optimize HAL_RCC_GetOscConfig function</li>
- <li>Remove GPIO configuration in HAL_RCCEx_EnableLSCO &
- HAL_RCCEx_DisableLSCO functions</li>
- </ul></li>
- <li><strong>HAL RTC</strong> driver
- <ul>
- <li>Improve HAL_RTC_Init function to avoid initialization if already
- done</li>
- </ul></li>
- <li><strong>HAL SMARTCARD</strong> driver
- <ul>
- <li>Fix wrong cast when computing the USARTDIV value in
- SMARTCARD_SetConfig() function</li>
- </ul></li>
- <li><strong>HAL SUBGHZ</strong> driver
- <ul>
- <li>Clear the interrupt CR register just after having read it</li>
- <li>Support new feature LoraFHSS (Lora Frequency Hopping Spread
- Spectrum)</li>
- <li>Add new state HAL_SUBGHZ_STATE_RESET_RF_READY to avoid to
- reinitialize RF on existing from Standby mode</li>
- </ul></li>
- <li><strong>HAL TIM</strong> driver
- <ul>
- <li>Improve driver robustness against wrong period values</li>
- <li>Improve driver robustness against wrong DMA related parameters</li>
- <li>Add new __HAL_TIM_SELECT_CCDMAREQUEST() macro to select CCx DMA
- source</li>
- </ul></li>
- <li><strong>HAL UART</strong> driver
- <ul>
- <li>Fix wrong cast when computing the USARTDIV value in UART_SetConfig()
- function</li>
- <li>Add HAL_UARTEx_GetRxEventType function to retrieve the type of event
- that has led the RxEventCallback execution</li>
- <li>Remove HAL_LOCK/HAL_UNLOCK calls in HAL UART Tx and Rx APIs to fix a
- concurrent access issue</li>
- <li>Disable the Receiver Timeout Interrupt when data reception is
- completed</li>
- </ul></li>
- </ul>
- <p><br />
- </p>
- <h3 id="ll-drivers-updates-1"><strong>LL Drivers</strong> updates</h3>
- <ul>
- <li><strong>LL LPTIM</strong> driver
- <ul>
- <li>Enhance code quality by renaming all functions
- LL_LPTIM_ClearFLAG_Xxxxx with LL_LPTIM_ClearFlag_Xxxxx</li>
- </ul></li>
- <li><strong>LL System</strong> driver
- <ul>
- <li>Fix LL_SYSCFG_GetEXTISource function which returned wrong result on
- M4 core</li>
- </ul></li>
- <li><strong>LL USART</strong> driver
- <ul>
- <li>Fix compilation warnings generated with ARMV6 compiler</li>
- </ul></li>
- <li><strong>LL Utils</strong> driver
- <ul>
- <li>Fix a wrong parameter of __LL_RCC_CALC_MSI_FREQ given erroneous PLL
- frequency</li>
- </ul></li>
- </ul>
- <p><br />
- </p>
- <h2 id="known-limitations-1">Known Limitations</h2>
- <p>None</p>
- <h2 id="development-toolchains-and-compilers-1">Development Toolchains
- and Compilers</h2>
- <ul>
- <li>IAR Embedded Workbench for ARM (EWARM) toolchain V9.20.1 + <a
- href="./../../Utilities/PC_Software/EWARMv8_STM32WLxx_V4.9_Signed.zip">Patch
- EWARM</a></li>
- <li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.36 +
- <a
- href="./../../Utilities/PC_Software/Keil.STM32WLxx_DFP.1.1.1.zip">Keil
- DFP V1.1.1 Pack</a></li>
- <li>STM32CubeIDE 1.11.0 (GNU Tools for STM32 10.3-2021.10)</li>
- </ul>
- <h2 id="supported-devices-and-boards-1">Supported Devices and
- boards</h2>
- <p>Supported Devices:</p>
- <ul>
- <li>STM32WL55xx</li>
- <li>STM32WL54xx</li>
- <li>STM32WLE5xx</li>
- <li>STM32WLE4xx</li>
- <li>STM32WL5Mxx</li>
- </ul>
- <h2 id="backward-compatibility-1">Backward Compatibility</h2>
- <p>Not applicable</p>
- <h2 id="dependencies-1">Dependencies</h2>
- <p>None</p>
- <p><br />
- </p>
- </div>
- </div>
- <div class="collapse">
- <input type="checkbox" id="collapse-section3" aria-hidden="true">
- <label for="collapse-section3" aria-hidden="true"><strong>V1.2.0 /
- 4-February-2022</strong></label>
- <div>
- <h2 id="main-changes-2">Main Changes</h2>
- <ul>
- <li>Maintenance release of <strong>HAL and Low Layer</strong> drivers to
- include latest corrections</li>
- <li>All source files: update disclaimer to add reference to the new
- license agreement</li>
- <li>Correct English spelling errors and typos</li>
- </ul>
- <h2 id="contents-2">Contents</h2>
- <h3 id="hal-drivers-updates-2"><strong>HAL Drivers</strong> updates</h3>
- <ul>
- <li><strong>HAL ADC</strong> driver
- <ul>
- <li>Enhance ADC calibration to reduce noise effect</li>
- <li>Fix write access to registers ADC_CFGR1 and ADC_CFGR2 in
- HAL_ADC_Init() and HAL_ADC_AnalogWDGConfig() functions</li>
- </ul></li>
- <li><strong>HAL GPIO</strong> driver
- <ul>
- <li>Reorder EXTI config in HAL_GPIO_Init/HAL_GPIO_DeInit to avoid
- unexpected level detection</li>
- <li>Add new HAL_GPIO_WriteMultipleStatePin() API for multiple pin access
- in same cycle</li>
- </ul></li>
- <li><strong>HAL I2C</strong> driver
- <ul>
- <li>Fix written reserved bit 28 in I2C_CR2 register</li>
- <li>Improve I2C_WaitOnFlagUntilTimeout() description to match code</li>
- <li>Update to handle errors in polling mode</li>
- <li>Rename I2C_IsAcknowledgeFailed() to I2C_IsErrorOccurred() and
- correctly manage when error occurs</li>
- <li>Fix some communication issue due to low system frequency execution
- (HSI)</li>
- </ul></li>
- <li><strong>HAL IRDA</strong> driver
- <ul>
- <li>Improve header description of IRDA_WaitOnFlagUntilTimeout()
- function</li>
- <li>Add a check on the IRDA parity before enabling the parity error
- interrupt</li>
- </ul></li>
- <li><strong>HAL LPTIM</strong> driver
- <ul>
- <li>Add check on PRIMASK register to prevent from enabling unwanted
- global interrupts within LPTIM_Disable() and LL_LPTIM_Disable()</li>
- </ul></li>
- <li><strong>HAL RCC</strong> driver
- <ul>
- <li>Enhance RCC_MCOx in order to support both MCO number and AF
- mapping</li>
- </ul></li>
- <li><strong>HAL SMARTCARD</strong> driver
- <ul>
- <li>Improve header description of SMARTCARD_WaitOnFlagUntilTimeout()
- function</li>
- </ul></li>
- <li><strong>HAL SMBUS</strong> driver
- <ul>
- <li>Add new APIs to support wake up capability:
- <ul>
- <li>HAL_SMBUSEx_EnableWakeUp()</li>
- <li>HAL_SMBUSEx_DisableWakeUp()</li>
- </ul></li>
- <li>Update to fix issue of mismatched data received by master in case of
- data size to be transmitted by the slave is greater than the data size
- to be received by the master</li>
- <li>Add flush on TX register</li>
- </ul></li>
- <li><strong>HAL TIM</strong> driver
- <ul>
- <li>Fix incorrect behavior of the timer if input signal changes before
- the end of timer configuration</li>
- </ul></li>
- <li><strong>HAL UART</strong> driver
- <ul>
- <li>Improve header description of UART_WaitOnFlagUntilTimeout()
- function</li>
- <li>Add a check on the UART parity before enabling the parity error
- interruption</li>
- </ul></li>
- <li><strong>HAL USART</strong> driver
- <ul>
- <li>Improve header description of USART_WaitOnFlagUntilTimeout()
- function</li>
- <li>Add a check on the USART parity before enabling the parity error
- interruption</li>
- </ul></li>
- </ul>
- <p><br />
- </p>
- <h3 id="ll-drivers-updates-2"><strong>LL Drivers</strong> updates</h3>
- <ul>
- <li><strong>LL ADC</strong> driver
- <ul>
- <li>Fix MISRA warning register shift overflow</li>
- </ul></li>
- <li><strong>LL CORTEX</strong> driver
- <ul>
- <li>Rename LL_CPUID_GetConstant() to LL_CPUID_GetArchitecture()</li>
- </ul></li>
- <li><strong>LL CRC</strong> driver
- <ul>
- <li>Rectified <span class="citation" data-cites="brief">@brief</span> of
- LL_CRC_GetOutputDataReverseMode() API</li>
- </ul></li>
- <li><strong>LL LPUART</strong> driver
- <ul>
- <li>Remove all reference of TXFECF bit unavailable for LPUART</li>
- </ul></li>
- <li><strong>LL RCC</strong> driver
- <ul>
- <li>Add missing API: LL_RCC_PLL_IsEnabledDomain_ADC,
- LL_RCC_PLL_IsEnabledDomain_RNG, LL_RCC_PLL_IsEnabledDomain_I2S,
- LL_RCC_PLL_IsEnabledDomain_SYS</li>
- <li>Add check of PLL enable bit when a peripheral using PPL P or PLL
- Q</li>
- </ul></li>
- <li><strong>LL RNG</strong> driver
- <ul>
- <li>Fix RNG_HTCFG constant for NIST compliance</li>
- </ul></li>
- <li><strong>Utils </strong> driver
- <ul>
- <li>Fix LL_PLL_ConfigSystemClock_HSE to take into account the setting of
- RCC_CR_HSEPRE when computing pllrfreq<br />
- </li>
- </ul></li>
- </ul>
- <h2 id="known-limitations-2">Known Limitations</h2>
- <p>None</p>
- <h2 id="development-toolchains-and-compilers-2">Development Toolchains
- and Compilers</h2>
- <ul>
- <li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.30.1</li>
- <li>RealView Microcontroller Development Kit (MDK-ARM) toolchain
- V5.31</li>
- <li>STM32CubeIDE 1.9.0 (native GNU ARM 10.3-2021-10 or optional GNU ARM
- 9-2020-q2-update)</li>
- </ul>
- <h2 id="supported-devices-and-boards-2">Supported Devices and
- boards</h2>
- <p>Supported Devices:</p>
- <ul>
- <li>STM32WL55xx</li>
- <li>STM32WL54xx</li>
- <li>STM32WLE5xx</li>
- <li>STM32WLE4xx</li>
- </ul>
- <h2 id="backward-compatibility-2">Backward Compatibility</h2>
- <p>Not applicable</p>
- <h2 id="dependencies-2">Dependencies</h2>
- <p>None</p>
- <p><br />
- </p>
- </div>
- </div>
- <div class="collapse">
- <input type="checkbox" id="collapse-section2" aria-hidden="true">
- <label for="collapse-section2" aria-hidden="true"><strong>V1.1.0 /
- 16-June-2021</strong></label>
- <div>
- <h2 id="main-changes-3">Main Changes</h2>
- <ul>
- <li>Maintenance release of <strong>HAL and Low Layer</strong> drivers to
- include latest corrections</li>
- <li>Update of HAL SMBUS driver to introduce fast mode and fast mode plus
- <ul>
- <li>Add extension files stm32wlxx_hal_smbus_ex.h/.c for new APIs:
- <ul>
- <li><em>HAL_SMBUSEx_EnableFastModePlus()</em></li>
- <li><em>HAL_SMBUSEx_DisableFastModePlus()</em></li>
- </ul></li>
- </ul></li>
- </ul>
- <h2 id="contents-3">Contents</h2>
- <h3 id="hal-drivers-updates-3"><strong>HAL Drivers</strong> updates</h3>
- <ul>
- <li><strong>HAL ADC</strong> driver
- <ul>
- <li>Update CFGR2 oversampling bitfields conditionally to oversampling
- enable</li>
- <li>Update timeout mechanism to avoid false timeout detection in case of
- preemption</li>
- <li>Update wait_loop_index computation so delay in us is always
- multiplicated by at least value “1”</li>
- </ul></li>
- <li><strong>HAL COMP</strong> driver
- <ul>
- <li>Update wait_loop_index computation so delay in us is always
- multiplicated by at least value “1”</li>
- </ul></li>
- <li><strong>HAL CORTEX</strong> driver
- <ul>
- <li>Disable the smallest MPU region sizes (32B, 64B, 128B) in the M0+
- context</li>
- </ul></li>
- <li><strong>HAL CRYP</strong> driver
- <ul>
- <li>Update HAL_CRYP_SetConfig() and HAL_CRYP_GetConfig() APIs to set/get
- the continent of KeyIVConfigSkip correctly</li>
- <li>Resolve interrupt mode related GCM decryption issue causing wrong
- computation of decryption size</li>
- <li>Update HAL_CRYP_InCpltCallback() API to fix an incorrect condition
- call at resumption time</li>
- <li>Update CRYP_AESCCM_Process_IT() to fix incorrect CCM header length
- management when data are fed to the peripheral under interrupt</li>
- </ul></li>
- <li><strong>HAL EXTI</strong> driver
- <ul>
- <li>Update HAL_EXTI_GetConfigLine() to set default configuration value
- of Trigger and GPIOSel before checking each corresponding register</li>
- </ul></li>
- <li><strong>HAL GPIO</strong> driver
- <ul>
- <li>Update HAL_GPIO_Init() API to avoid the configuration of PUPDR
- register when Analog mode is selected</li>
- </ul></li>
- <li><strong>HAL HSEM</strong> driver
- <ul>
- <li>Update SemID comment related to the number of semaphores</li>
- </ul></li>
- <li><strong>HAL I2C</strong> driver
- <ul>
- <li>Updated I2C_IsAcknowledgeFailed() to avoid keeping I2C in busy state
- if NACK is received after transmitting register address</li>
- </ul></li>
- <li><strong>HAL IRDA</strong> driver
- <ul>
- <li>Fixed typos in the IRDA State definition description</li>
- </ul></li>
- <li><strong>HAL IWDG</strong> driver
- <ul>
- <li>Updated HAL_IWDG_Init() API in order to fix HAL_GetTick() timeout
- vulnerability issue</li>
- </ul></li>
- <li><strong>HAL LPTIM</strong> driver
- <ul>
- <li>Update HAL_LPTIM_Init() API implementation to configure digital
- filter for external clock when LPTIM is clocked by an internal clock
- source</li>
- </ul></li>
- <li><strong>HAL PWR</strong> driver
- <ul>
- <li>Correct HAL_PWREx_DisableInternalWakeUpLine() to update CM0+
- register</li>
- </ul></li>
- <li><strong>HAL RCC</strong> driver
- <ul>
- <li>Update definition of IS_RCC_OSCILLATORTYPE() macro</li>
- <li>Update IS_RCC_PERIPHCLOCK() macro definition depending on targeted
- derivative</li>
- <li>Add new API HAL_RCC_GetResetSource() to get all reset sources and
- clear flags for next reset</li>
- </ul></li>
- <li><strong>HAL RNG</strong> driver
- <ul>
- <li>Update timeout mechanism to avoid false timeout detection in case of
- preemption</li>
- </ul></li>
- <li><strong>HAL RTC</strong> driver
- <ul>
- <li>Update HAL_RTC_DeactivateAlarm() to fix issue where Alarm Autoclear
- remained activated after deactivating alarm</li>
- <li>Update HAL_RTCEx_SetTimeStamp_IT() to avoid the call of TimeStamp
- callback during the setting of the TimeStamp</li>
- <li>Update assertions in HAL_RTC_SetAlarm() and HAL_RTC_SetAlarm_IT() to
- allow user to unset some Alarm parameters when AlarmMask is set</li>
- <li>Update HAL_RTC_DeactivateAlarm() to clear Alarm Flag</li>
- <li>Update HAL_RTCEx_DeactivateTimeStamp() to clear TimeStamp flag</li>
- <li>Update HAL_RTCEx_DeactivateInternalTimeStamp() to clear Internal
- TimeStamp flag
- <ul>
- <li>The flag is cleared only if TSOVF & TSE are set to 0</li>
- </ul></li>
- <li>Update HAL_RTCEx_DeactivateWakeUpTimer() to clear WakeUpTimer
- flag</li>
- <li>Update HAL_RTCEx_DeactivateSSRU() to clear SSR Underflow flag</li>
- <li>Update HAL_RTC_WaitForSynchro() to fix issue to clear RSF flag</li>
- </ul></li>
- <li><strong>HAL SMARTCARD</strong> driver
- <ul>
- <li>Fixed typos in the SMARTCARD State definition description</li>
- </ul></li>
- <li><strong>HAL SMBUS</strong> driver
- <ul>
- <li>Add support for Fast Mode Plus to be SMBUS Rev3 compliant:
- <ul>
- <li>Add HAL_SMBUSEx_EnableFastModePlus() and
- HAL_SMBUSEx_DisableFastModePlus() APIs to manage Fm+</li>
- </ul></li>
- </ul></li>
- <li><strong>HAL SPI</strong> driver
- <ul>
- <li>Update in SPI_WaitFifoStateUntilTimeout() to fix code optimization
- issue</li>
- <li>Update to fix MISRA-C 2012 Rule-13.2 issue</li>
- </ul></li>
- <li><strong>HAL SUBGHZ</strong> driver
- <ul>
- <li>Update HAL_Delay() by a polling loop to avoid blocking situation in
- case of Systick is mapped on Tick</li>
- <li>Update HAL_SUBGHZ_DeInit() to check RF Busy bit and deassert the
- reset signal on RF side</li>
- </ul></li>
- <li><strong>HAL TIM</strong> driver
- <ul>
- <li>Update HAL_TIMEx_OnePulseN_Start and HAL_TIMEx_OnePulseN_Stop
- (pooling and IT mode) to take into consideration all OutputChannel
- parameters</li>
- <li>Correct CodeSpell typos in HAL TIM drivers</li>
- <li>Update timeout mechanism to avoid false timeout detection in case of
- preemption</li>
- <li>Update input capture measurement in DMA mode to avoid zero return
- values at high frequencies</li>
- </ul></li>
- <li><strong>HAL UART</strong> driver
- <ul>
- <li>Remove an invalid FIFO mode configuration from UART_SetConfig() as
- it is not is not member of UART_InitTypeDef Structure</li>
- <li>Update HAL_UART_IRQHandler() API to handle receiver timeout
- interrupt
- <ul>
- <li>Update UART receive processes (IT and DMA) to handle the UART
- receive’s timeout interrupt</li>
- </ul></li>
- <li>Update arrays definition to be declared as static const</li>
- <li>Fix erroneous UART’s handle state in case of error returned after
- DMA reception start within UART_Start_Receive_DMA()</li>
- <li>Update UART ReceptionType management in case of ReceptionToIdle API
- are called from RxEvent callback</li>
- <li>Handling of UART concurrent register access in case of race
- condition between Tx and Rx transfers (HAL UART and LL LPUART)</li>
- </ul></li>
- </ul>
- <p><br />
- </p>
- <h3 id="ll-drivers-updates-3"><strong>LL Drivers</strong> updates</h3>
- <ul>
- <li><strong>LL RCC</strong> driver
- <ul>
- <li>Private functions made static</li>
- </ul></li>
- <li><strong>LL RTC</strong> driver
- <ul>
- <li>Fix wrong reference of RTC instance in LL_RTC_TIME_Init() and
- LL_RTC_DATE_Init() functions</li>
- </ul></li>
- <li><strong>LL SPI</strong> driver
- <ul>
- <li>Updated to set the FRXTH bit for 8bit data in LL_SPI_Init() API</li>
- <li>Update LL_SPI_TransmitData8() to avoid casting the result to 8
- bits</li>
- </ul></li>
- <li><strong>LL TIM</strong> driver
- <ul>
- <li>Updated LL_TIM_GetCounterMode() API to return the correct counter
- mode</li>
- <li>Update reversed description of TIM_LL_EC_ONEPULSEMODE One Pulse
- Mode</li>
- </ul></li>
- <li><strong>LL LPUART</strong> driver
- <ul>
- <li>Handling of UART concurrent register access in case of race
- condition between Tx and Rx transfers (HAL UART and LL LPUART)</li>
- </ul></li>
- <li><strong>LL USART</strong> driver
- <ul>
- <li>Handling of UART concurrent register access in case of race
- condition between Tx and Rx transfers (HAL UART and LL LPUART)</li>
- <li>LL_USART_ClockInit now supports clock phase and clock polarity
- configuration for SPI_Slave mode</li>
- <li>Remove useless check on maximum BRR value by removing
- IS_LL_USART_BRR_MAX() macro</li>
- </ul></li>
- </ul>
- <p><br />
- </p>
- <h2 id="known-limitations-3">Known Limitations</h2>
- <p>None</p>
- <h2 id="development-toolchains-and-compilers-3">Development Toolchains
- and Compilers</h2>
- <ul>
- <li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.30.1</li>
- <li>RealView Microcontroller Development Kit (MDK-ARM) toolchain
- V5.31</li>
- <li>STM32CubeIDE 1.7.0</li>
- </ul>
- <h2 id="supported-devices-and-boards-3">Supported Devices and
- boards</h2>
- <p>Supported Devices:</p>
- <ul>
- <li>STM32WL55xx</li>
- <li>STM32WL54xx</li>
- <li>STM32WLE5xx</li>
- <li>STM32WLE4xx</li>
- </ul>
- <h2 id="backward-compatibility-3">Backward Compatibility</h2>
- <p>Not applicable</p>
- <h2 id="dependencies-3">Dependencies</h2>
- <p>None</p>
- <p><br />
- </p>
- </div>
- </div>
- <div class="collapse">
- <input type="checkbox" id="collapse-section1" aria-hidden="true">
- <label for="collapse-section1" aria-hidden="true"><strong>V1.0.0 /
- 28-October-2020</strong></label>
- <div>
- <h2 id="main-changes-4">Main Changes</h2>
- <p><strong>First Official Release</strong></p>
- <h2 id="contents-4">Contents</h2>
- <p>First official release of LL / HAL Drivers for STM32WLxx series.</p>
- <h2 id="known-limitations-4">Known Limitations</h2>
- <p>None</p>
- <h2 id="development-toolchains-and-compilers-4">Development Toolchains
- and Compilers</h2>
- <ul>
- <li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.30.1</li>
- <li>RealView Microcontroller Development Kit (MDK-ARM) toolchain
- V5.28</li>
- <li>STM32CubeIDE 1.5.0</li>
- </ul>
- <h2 id="supported-devices-and-boards-4">Supported Devices and
- boards</h2>
- <p>Supported Devices:</p>
- <ul>
- <li>STM32WL55xx</li>
- <li>STM32WL54xx</li>
- <li>STM32WLE5xx</li>
- <li>STM32WLE4xx</li>
- </ul>
- <h2 id="backward-compatibility-4">Backward Compatibility</h2>
- <p>Not applicable</p>
- <h2 id="dependencies-4">Dependencies</h2>
- <p>None</p>
- <p><br />
- </p>
- </div>
- </div>
- </section>
- </div>
- <footer class="sticky">
- <div class="columns">
- <div class="column" style="width:95%;">
- <p>For complete documentation on STM32WLxx, visit: <a
- href="http://www.st.com/stm32wl">www.st.com/stm32wl</a></p>
- <p><em>This release note uses up to date web standards and, for this
- reason, should not be opened with Internet Explorer but preferably with
- popular browsers such as Google Chrome, Mozilla Firefox, Opera or
- Microsoft Edge.</em></p>
- </div><div class="column" style="width:5%;">
- <p><abbr title="Based on template cx626901 version 2.0">Info</abbr></p>
- </div>
- </div>
- </footer>
- </body>
- </html>
|