This errata sheet applies to revision Z of the STMicroelectronics STM32F328C8 product.
These families feature an Arm
also available (see
Section 2 gives a detailed description of the product silicon limitations.
The products are identifiable as shown in Table 1:
•By the revision code marked below the order code on the device package
•By the last three digits of the Internal order code printed on the box label
1. The REV_ID bits in the DBGMCU_IDCODE register show the revision code of the device (see the
STM32F328C8 reference manual for details on how to find the revision code).
2. Refer to datasheet for the device marking.
Section 1 for details).
Order codeRevision code marked on device
STM32F328C8“
®
32-bit Cortex®-M4 FPU core, for which an errata notice is
An errata notice of the STM32F328C8 core is available from the following web address:
http://infocenter.arm.com.
All the described limitations are minor and related to the revision r0p1-v1 of the Cortex-M4
FPU core.
STM32F3xxxx devices.
1.1 Cortex-M4 FPU core interrupted loads to stack pointer can
cause erroneous behavior
Description
An interrupt occurring during the data-phase of a single word load to the stack pointer
(SP/R13) can cause an erroneous behavior of the device. In addition, returning from the
interrupt results in the load instruction being executed with an additional time.
For all the instructions performing an update of the base register, the base register is
erroneously updated on each execution, resulting in the stack pointer being loaded from an
incorrect memory location.
Table 2 summarizes these limitations and their implications on the behavior of
The instructions affected by this limitation are the following:
•LDR SP, [Rn],#imm
•LDR SP, [Rn,#imm]!
•LDR SP, [Rn,#imm]
•LDR SP, [Rn]
•LDR SP, [Rn,Rm]
Workaround
As of today, no compiler generates these particular instructions. This limitation can only
occur with hand-written assembly code.
Both issues can be solved by replacing the direct load to the stack pointer by an
intermediate load to a general-purpose register followed by a move to the stack pointer.
Example: Replace LDR SP, [R0] by
LDR R2,[R0]
MOV SP,R2
1.2 VDIV or VSQRT instructions might not complete correctly
when very short ISRs are used
Description
On Cortex-M4 with FPU core, 14 cycles are required to execute a VDIV or VSQRT
instruction.
This limitation is present when the following conditions are met:
•A VDIV or VSQRT is executed.
•The destination register for VDIV or VSQRT is one of s0 - s15.
•An interrupt occurs and is taken.
•The ISR being executed does not contain a floating point instruction.
•14 cycles after the VDIV or VSQRT is executed, an interrupt return is executed.
In this case, if there are only one or two instructions inside the interrupt service routine, then
the VDIV or VQSRT instruction does not complete correctly and the register bank and
FPSCR are not updated, meaning that these registers hold incorrect out-of-date data.
Workaround
Two workarounds are applicable:
•Disable lazy context save of floating point state by clearing LSPEN to 0 (bit 30 of the
FPCCR at address 0xE000EF34).
•Ensure that every ISR contains more than two instructions in addition to the exception
return instruction.
ES0260 Rev 85/20
19
STM32F328C8 silicon limitationsSTM32F328C8
2 STM32F328C8 silicon limitations
Tabl e 2 gives quick references to all documented limitations.
Legend for Table 2 is as follows:
A = workaround available;
N = no workaround available;
P = partial workaround available,
‘-’ and grayed = fixed.
Table 2. Summary of silicon limitations
Links to silicon limitationsRevision Z
Section 2.1: System
limitations
Section 2.2: ADC
peripheral limitations
Section 2.3: DAC
peripheral limitation
Section 2.4: SPI
peripheral limitations
Section 2.1.1: Wakeup sequence from Standby mode when using more
than one wakeup source
Section 2.1.2: Full JTAG configuration without NJTRST pin cannot be usedA
Section 2.1.3: CCM RAM write protection register SYSCFG_RCR not reset
by system reset.
Section 2.2.1: DMA overrun in dual interleaved mode with single DMA
channel
Section 2.2.2: Sampling time shortened in JAUTO autodelayed modeA
Section 2.2.3: Injected queue of context not available in case of JQM = 0N
Section 2.2.4: Load multiple not supported by ADC interfaceA
Section 2.2.5: Possible voltage drop caused by a transitory phase when
the ADC switches from a regular channel to an injected channel Rank 1
Section 2.2.6: Overrun flag may not be set if converted data are not read
before writing new data
Section 2.2.7: ADC differential mode: common mode input rangeN
Section 2.3.1: PA5 cannot be used as GPIO when DAC1 channel 2 is used
internally
Section 2.4.1: SPI CRC may be corrupted when a peripheral connected to
the same DMA channel of the SPI is under DMA transaction near the end
of transfer or end of transfer ‘-1’
Section 2.4.2: BSY bit may stay high at the end of a SPI data transfer in
slave mode
A
A
A
A
A
N
P
A
6/20ES0260 Rev 8
Loading...
+ 14 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.