cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 MCU errata sheets: Expected preliminary updates

KDJEM.1
ST Employee

Introduction

This article includes preliminary updates of STM32 MCU errata sheets reported since 1st January 2024It highlights the current description requiring update and the expected one if available.

The purpose of this article is to deliver any expected updates to our MCU errata sheets prior to actual documentation releases. We wish to be transparent with our updates and provide them as fast as possible, to assist you in your design process.
This article is updated on a monthly basis. Once these preliminary updates are manifested in the errata sheets, this article is refreshed with new information.
Moving forward, we are also working on providing errata sheet releases on a more frequent basis.

IMPORTANT NOTICE - READ CAREFULLY:

  • STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to this article at any time without notice.
  • Information in this article supersedes and replaces information previously supplied in any prior versions of this article.
  • The following table gives a quick reference to the preliminary documentation updates which may be changed or improved without notice.
  • This article will be reviewed on a monthly basis and applied updates will be removed from the table.
  • The hyperlinks under "Doc Reference - Revision" provides a direct link to the specific document page where the description is located.

Summary of documentation updates: "STM32 MCU errata sheets"

Function Series/Lines Doc Reference - Revision Description Date of added update
SPI

STM32F427xx

STM32F437xx

STM32F429xx

STM32F439xx

ES0206 Rev20

(Feb 2024)

Add section: 

Corrupted last bit of data and/or CRC, received in Master mode with delayed SCK feedback

Description
When performing a receive transaction in I2S or SPI Master mode, the last bit of the transacted frame is not captured when the signal provided by an internal feedback loop from the SCK pin exceeds a critical delay. The lastly transacted bit of the stored data then keeps the value from the pattern received previously. As a consequence, the last receive data bit may be wrong, and/or the CRCERR flag can be unduly asserted in the SPI mode if any data under checksum, and/or just the CRC pattern is wrongly captured. In SPI mode, data are synchronous with the APB clock. A delay of up to two APB clock periods can thus be tolerated for the internal feedback delay. The I2S mode is more sensitive than the SPI mode, especially in the case where an odd I2S prescaler factor is set and the APB clock is the system clock divided by two. In this case, the internal feedback delay is lower than 1.5 APB clock period. The main factors contributing to the delay increase are low VDD level, high temperature, high SCK pin capacitive load, and low SCK I/O output speed. The SPI communication speed has no impact.

Workaround
The following workarounds can be adopted, jointly or individually:
• Decrease the APB clock speed.
• Configure the I/O pad of the SCK pin to be faster.
The following table gives the maximum allowable APB frequency (that still prevents the issue from occurring) versus GPIOx_OSPEEDR output speed for the SCK pin, with a 30 pF capacitive load.

KDJEM1_1-1712142798747.png

 

Mar 2024


 

System

STM32L451xx

ES0387 Rev10

(Oct 2023)

Update section:

Corrupted content of the backup domain due to a missed power-on reset after this domain supply voltage drop

Description
The backup domain reset may be missed upon a power-on following a power-off, if its supply voltage drops during the power-off phase hitting a window, which is few mV wide before it starts to rise again. In this critical window, the flip-flops are no longer able to safely retain the information and the backup domain reset has not yet been triggered. This window is located in the range between 100 mV and 700 mV, with the exact position depending mainly on the device and on the temperature. This missed reset results in unpredictable values of the backup domain registers. This may cause a spurious behavior (such as driving the LSCO output pin on PA2 or influencing backup functions).

Workaround
Apply one of the following measures:
• In the application, let the VDD and VBAT supply voltages fall to a level below 100 mV for more than 200 ms before a new power‑on.
• If the above workaround cannot be applied, and the boot follows a power‑on reset, erase the backup domain by software.
When the application is using shutdown mode, user needs to discriminate between the power‑on reset or an exit from a shutdown mode.
For this purpose, at least one backup register must have been previously programmed with a BKP_REG_VAL value with 16 bits set and 16 bits cleared.
Robustness of this workaround can be significantly improved by using a CRC rather than registers. The registers are subject to backup domain reset.
The workaround consists of calculating the CRC of the backup registers: RCC_BDCR and RTC registers, excluding bits modified by HW.
The CRC result can be stored in the backup register instead of a fixed value. This value needs to be updated for each modification of values covered by CRC, such as by using CRC peripheral.
At the very beginning of the boot code, insert the following software sequence:
1. Check the BORRSTF flag of the RCC_CSR register. If set, the reset is caused by a power on, or is exiting from shutdown mode.
2. If BORRSTF flag is true, and the shutdown mode is used in the application, check that the backup register value is different from BKP_REG_VAL. When tamper detection is enabled, check that no tamper flag is set. If both conditions are met then the reset is caused by a power-on.
3. If the reset is caused by a power-on, apply the following sequence:
a. Enable the PWR clock in the RCC, by setting the PWREN bit.
b. Enable the backup domain access in the PWR, by setting the DBP bit.
c. Reset the backup domain, by:
i. Writing 0x0001 0000 in the RCC_BDCR register, which sets the BDRST bit and clears other register bits that might not be reset.
ii. reading the RCC_BDCR register, to make the reset time long enough
iii. writing 0x0000 0000 in the RCC_BDCR register, to clear the BDRST bit
d. Clear the BORRSTF flag by setting the RMVF bit of the RCC_CSR register.

Mar 2024

STM32L452xx

ES0388 Rev10

(Oct 2023)

STM32L462CE

STM32L462RE

STM32L462VE

ES0389 Rev10

(Oct 2023)

STM32L05xxx STM32L06xxx

ES0251 Rev5

(Dec 2021)

Add section: 

LSE crystal oscillator may be disturbed by transitions on PC13

Description
On LQFP and UFQFPN packages, the LSE crystal oscillator clock frequency can be incorrect when PC13 is toggling in input or output (for example when used for RTC_OUT1).
The external clock input (LSE bypass) is not impacted by this limitation.
The WLCSP and UFBGA packages are not impacted by this limitation.

Workaround
None.
Avoid toggling PC13 when LSE is used on LQFP and UFQFPN packages.

Jun 2024 

STM32L07xxx STM32L08xxx

ES0292 Rev7
(Mar 2022)

STM32L031xx
STM32L041xx

ES0322 Rev4 (Dec 2021)

STM32L011xx
STM32L021xx

ES0332 Rev5 (Feb 2022)
STM32L010xx ES0483 Rev2 (Dec 2021)
STM32H562xx
STM32H563xx
STM32H573xx
ES0565 Rev4 (Nov 2023)

Add section: 

LSE crystal oscillator may be disturbed by transitions on PC13

Description
On LQFP and VFQFPN packages, the LSE crystal oscillator clock frequency can be incorrect when PC13 is toggling in input or output (for example when used for RTC_OUT1).
The external clock input (LSE bypass) is not impacted by this limitation.
The WLCSP and UFBGA packages are not impacted by this limitation.

Workaround
None.
Avoid toggling PC13 when LSE is used on LQFP and VFQFPN packages.

Jun 2024

STM32L05xxx STM32L06xxx

ES0251 Rev5
(Dec 2021)

Add section: 

Wakeup sequence from Standby mode when using more than one wakeup source

Description
The various wakeup sources are logically OR-ed in front of the rising-edge detector which generates the wakeup
flag (WUF). The WUF flag needs to be cleared prior to the Standby mode entry, otherwise the MCU wakes up
immediately.
If one of the configured wakeup sources is kept high during the clearing of WUF flag (by setting the CWUF bit), it may mask further wakeup events on the input of the edge detector. As a consequence, the MCU could not be able to wake up from Standby mode.

Workaround
To avoid this problem, the following sequence should be applied before entering Standby mode:
1. Disable all used wakeup sources.
2. Clear all related wakeup flags.
3. Re-enable all used wakeup sources.
4. Enter Standby mode.
Be aware that, when applying this workaround, if one of the wakeup sources is still kept high, the MCU enters the
Standby mode, but then it wakes up immediately generating the power reset.

Jun 2024

STM32L07xxx STM32L08xxx

ES0292 Rev7
(Mar 2022)

STM32L031xx
STM32L041xx

ES0322 Rev4 (Dec 2021)

STM32L011xx
STM32L021xx

ES0332 Rev5 (Feb 2022)
STM32L010xx ES0483 Rev2 (Dec 2021)
STM32H562xx
STM32H563xx
STM32H573xx
ES0565 Rev4 (Nov 2023)

Add section: 

Ethernet active clock in sleep mode control is missing

Description

üEthernet RX clock enable in sleep mode (ETHRXLPEN bit in RCC_AHB1LPENR register) can be disabled if ETHTXEN bit in RCC_AHB1ENR register and ETHTXLPEN bit in RCC_AHB1LPENR register are not set. ETHRXLPEN=1 has no control on Ethernet RX clock enable in sleep mode.

Workaround

If RX clock is needed in sleep mode, keep ETHTXEN=1 in RCC_AHB1ENR register and ETHTXLPEN=1 in RCC_AHB1LPENR register.

Jun 2024

GPIO STM32L05xxx STM32L06xxx

ES0251 Rev5

(Dec 2021)

Add section:

GPIO locking mechanism failed if critical address is read. 

Description
GPIO locking sequence requires predefined steps of writing and reading operations over GPIOx_LCKR register. Reading from address (SRAM/Flash/peripherals) which 10 lsb bits corresponds to GPIOx_LCKR address (0x5000 XX1C) is interpreted by GPIO locking state machine as dummy read from GPIOx_LCKR register. GPIO locking sequence will fail if there is inserted this additional dummy read from GPIOx_LCKR register (reset of the locking sequence). The GPIO locking state machine is sensitive only to reading done by CPU (not by DMA).

Workaround
GPIO locking sequence code must not use variables stored at SRAM addresses which 10 lsb bits correspond to 0x01C (each 1kB is critical address). Avoid using variables on the stack (because critical address can be present on the stack area) in locking sequence code. Disable interrupts during the GPIO locking sequence because interrupt service routine can perform reading from critical address. Locking sequence routine must be placed in memory section outside critical addresses.
Recommended code for GPIO locking sequence is below. It uses only register access with disabled interrupts in critical code part. The correct code placement (outside critical addresses) is solved here by repeating the locking sequence in case of error – then at least one locking code will be at correct placement (linker independent solution).

Locking mechanism code example
/* (1) Save interrupts enable state */
/* (2) Disable interrupts */
/* (3) Write LCKK bit to 1 and set the pin bits to lock */
/* (4) Write LCKK bit to 0 and set the pin bits to lock */
/* (5) Write LCKK bit to 1 and set the pin bits to lock */
/* (6) Restore interrupts enable state */
/* (7) Read the Lock register */
/* (8) Check the Lock register for lock (in case of error perform lock second time) */register uint32_t tmp1; /* place critical variable into register to not use SRAM */
register uint32_t tmp2; /* place critical variable into register to not use SRAM */
uint32_t irqenabled;

tmp1 = GPIO_Pin;
tmp2 = GPIO_LCKR_LCKK | GPIO_Pin;

...
irqenabled = __get_PRIMASK(); /* (1) */ /* remember interrupts enable state */
__disable_irq(); /* (2) */
GPIOA->LCKR = tmp2; /* (3) */
GPIOA->LCKR = tmp1; /* (4) */
GPIOA->LCKR = tmp2; /* (5) */
if (!irqenabled) __enable_irq(); /* (6) */
GPIOA->LCKR; /* (7) */
if ((GPIOA->LCKR & GPIO_LCKR_LCKK) == 0) /* (8) */ /* check if locking failed */
{
__disable_irq(); /* (2) */
GPIOA->LCKR = tmp2; /* (3) */
GPIOA->LCKR = tmp1; /* (4) */
GPIOA->LCKR = tmp2; /* (5) */
if (!irqenabled) __enable_irq(); /* (6) */
GPIOA->LCKR; /* (7) */
if ((GPIOA->LCKR & GPIO_LCKR_LCKK) == 0) /* (8) */
{
/* Manage error – optional */
}
}

 

 

Jun 2024

 

 

STM32L07xxx STM32L08xxx

ES0292 Rev7

(Mar 2022)

STM32L031xx
STM32L041xx

ES0322 Rev4 (Dec 2021)

STM32L011xx
STM32L021xx

ES0332 Rev5 (Feb 2022)
STM32L010xx ES0483 Rev2 (Dec 2021)
IWDG

STM32F100x4 STM32F100x6
STM32F100x8 STM32F100xB

ES093 Rev8

(Jul 2022)

Remove sections:

Delete duplicated sections:

- RVU flag not cleared at low APB clock frequency

- PVU flag not cleared at low APB clock frequency

Mar
2024

STM32F10xx4 STM32F10xx6

ES0348 Rev10

(Jun 2022)

STM32F101xF
STM32F101xG STM32F103xF
STM32F103xG 

ES0346 Rev7

(Jul 2022)

STM32F101xC
STM32F101xD
STM32F101xE
STM32F103xC
STM32F103xD
STM32F103xE

ES0340 Rev17

(Jun 2022)

STM32F105xx STM32F107xx

ES022 Rev11

(Jun 2022)

STM32F100xC
STM32F100xD STM32F100xE

ES0136 Rev7

(Aug 2022)

FMC/FSMC

STM32F469xx  STM32F479xx

ES0321 Rev11

(Apr 2024)

Add section:

CTB1, CTB2, MODE[2:0] bitfields in FMC_SDCMR are write-only.

Description 

CTB1, CTB2, MODE[2:0] bitfields in FMC_SDCMR are write-only, and always read as zero.

 

 

 

 

 


Apr 2024

 

 

 

STM32F446xC
STM32F446xE

ES0298 Rev6

(Apr 2024)

STM32F412xE STM32F412xG

ES0305 Rev13

(Jan 2024)

STM32F74xxx  STM32F75xxx

ES0290 Rev7

(Jul 2019)

STM32F76xxx STM32F77xxx

ES0334 Rev9

(Dec 2022)

STM32F72xxx STM32F73xxx

ES0360 Rev5

(Feb 2020)

STM32L496xx STM32L4A6xx

ES0335 Rev18

(Feb 2024)

STM32H745xx STM32H747xx
STM32H755xx STM32H757xx

ES0445 Rev4

(Dec 2023)

Add section:

Inaccurate LSE frequency in oscillator bypass mode in combination with VBAT mode

Description:

When LSE is used in bypass mode (RCC_BDCR. LSEBYP = 1), and if the microcontroller switches to VBAT mode, LSE frequency is not accurate in VBAT mode if external clock VLSE_ext max voltage is higher than min (VBOR0, VBAT).

Workaround:

If application requires accurate LSE frequency in oscillator bypass mode and in combination with VBAT mode, VLSE_ext max voltage must be lower than min (VBOR0, VBAT).

Jul 2024

DAC STM32H562xx
STM32H563xx
STM32H573xx
ES0565 Rev4 (Nov 2023)

Add section:

Invalid DAC output voltage for several DAC kernel clocks

Description:

The DAC output voltage might be incorrect when DAC kernel clock is different from HCLK (ADCDACSEL[2:0] bits equal to 000 in RCC_CCIPR5 register) or SYSCLK (ADCDACSEL[2:0] bits equal to 001 in RCC_CCIPR5 register).

Workaround:

When DAC is used, use ADCDACSEL[2:0] = 000 or 001 in RCC_CCIPR5 register.

Jun 2024

LPTIM

Add section:

LPTIM2_CH1 might prevent system from entering low-power modes

Description:

When LPTIM2_CH1 output is enabled, it might lead to wake-up interrupt request from EXTI input event 49, as the default value for IMR49 bit in EXTI_IMR2 register is equal to 1 (EXTI interrupt input 49 is unmasked). Consequently, it might prevent system from entering low-power modes.

Workaround:

When LPTIM2_CH1 output is enabled, and system needs to enter low-power mode mask EXTI interrupt input 49 by setting IMR49 bit in EXTI_IMR2 register to 0.

Jun 2024

 

Version history
Last update:
‎2024-08-01 06:14 AM
Updated by: