STM32N6 Microcontrollers Reference Manual
STM32N6 Microcontrollers Reference Manual
Reference manual
STM32N647/657xx Arm®-based 32-bit MCUs
Introduction
This document is addressed to application developers. It provides complete information on
how to use the STM32N647xx and STM32N657xx (referred to as STM32N6x7xx)
microcontrollers memory and peripherals.
For ordering information, mechanical and electrical device characteristics, refer to the
datasheet.
For information on the Arm® Cortex®-M55 core, refer to the corresponding Arm® Technical
Reference Manual available on [Link]
STM32N6x7xx microcontrollers include ST state-of-the-art patented technology.
Related documents
• STM32N647/657xx datasheet (DS14791)
• STM32 Cortex®-M55 MCUs programming manual (PM0273)
• UM3234 “How to proceed with boot ROM on STM32N6 MCUs”
• STM32N6xx MCU errata sheet (ES0621)
Contents
45.7.135 VENC segment 3: intra 4x4 mode 8-9 penalty, intra 4x4
previous mode favor for H.264 register (VENC_SWREG284) . . . . . 2200
45.7.136 VENC segment 3: bit cost of inter type, intra 16x16
mode favor register (VENC_SWREG285) . . . . . . . . . . . . . . . . . . . . . 2200
45.7.137 VENC segment 3: inter MB mode favor in intra/inter selection,
inter MB mode favor, penalty value for second reference frame
register (VENC_SWREG286) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2201
45.7.138 VENC segment 3: penalty value register (VENC_SWREGx) . . . . . . 2201
45.7.139 VENC segment 3: deadzone rate multiplier for plane 0-1
register (VENC_SWREG289) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2201
45.7.140 VENC segment 3: deadzone rate multiplier for plane 2-3
register (VENC_SWREG290) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2202
45.7.141 VENC segment 3: deadzone rate for macroblock skip token 0-1,
dmv penalty coefficient register (VENC_SWREG291) . . . . . . . . . . . 2202
45.7.142 VENC Mb boost register (VENC_SWREG294) . . . . . . . . . . . . . . . . . 2202
45.7.143 VENC variance control, Pskop conding mode
register (VENC_SWREG295) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2203
45.7.144 VENC synthesis configuration register encoder 1
read only register (VENC_SWREG296) . . . . . . . . . . . . . . . . . . . . . . 2203
45.7.145 VENC MBRC control register (VENC_SWREG297) . . . . . . . . . . . . . 2203
45.7.146 VENC segment 4: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG298) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2204
45.7.147 VENC segment 4: skip mode penalty, inter MB mode favor
register (VENC_SWREG299) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2204
45.7.148 VENC segment 4: penalty value register (VENC_SWREGx) . . . . . . 2204
45.7.149 VENC segment 5: intra 4x4 previous mode favor, intra 16x16 mode
favor, penalty value for second reference frame
register (VENC_SWREG302) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2205
45.7.150 VENC segment 5: skip mode penalty, inter MB mode favor
register (VENC_SWREG303) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2205
45.7.151 VENC segment 5: penalty value register (VENC_SWREGx) . . . . . . 2205
45.7.152 VENC segment 6: intra 4x4 previous mode favor, intra 16x16 mode
favor, penalty value for second reference frame
register (VENC_SWREG306) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2206
45.7.153 VENC segment 6: skip mode penalty, inter MB mode favor
register (VENC_SWREG307) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2206
45.7.154 VENC segment 6: penalty value register (VENC_SWREGx) . . . . . . 2206
45.7.155 VENC segment 7: intra 4x4 previous mode favor, intra 16x16 mode
favor, penalty value for second reference frame
register (VENC_SWREG310) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2207
45.7.156 VENC segment 7: skip mode penalty, inter MB mode favor
register (VENC_SWREG311) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2207
45.7.179 VENC segment 15: intra 4x4 previous mode favor, intra 16x16 mode
favor, penalty value for second reference frame
register (VENC_SWREG342) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2215
45.7.180 VENC segment 15: skip mode penalty, inter MB mode favor
register (VENC_SWREG343) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2215
45.7.181 VENC segment 15: penalty value register (VENC_SWREGx) . . . . . 2215
45.7.182 VENC segment 16: intra 4x4 previous mode favor, intra 16x16 mode
favor, penalty value for second reference frame
register (VENC_SWREG346) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2216
45.7.183 VENC segment 16: skip mode penalty, inter MB mode
favor register (VENC_SWREG347) . . . . . . . . . . . . . . . . . . . . . . . . . . 2216
45.7.184 VENC segment 16: penalty value register (VENC_SWREGx) . . . . . 2216
45.7.185 VENC segment 17: intra 4x4 previous mode favor, intra 16x16 mode
favor, penalty value for second reference frame register
(VENC_SWREG350) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2217
45.7.186 VENC segment 17: skip mode penalty, inter MB mode
favor register (VENC_SWREG351) . . . . . . . . . . . . . . . . . . . . . . . . . . 2217
45.7.187 VENC segment 17: penalty value register (VENC_SWREGx) . . . . . 2217
45.7.188 VENC segment 18: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame register
(VENC_SWREG354) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2218
45.7.189 VENC segment 18: skip mode penalty, inter MB mode
favor register (VENC_SWREG355) . . . . . . . . . . . . . . . . . . . . . . . . . . 2218
45.7.190 VENC segment 18: penalty value register (VENC_SWREGx) . . . . . 2218
45.7.191 VENC segment 19: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame register
(VENC_SWREG358) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2219
45.7.192 VENC segment 19: skip mode penalty, inter MB mode
favor register (VENC_SWREG359) . . . . . . . . . . . . . . . . . . . . . . . . . . 2219
45.7.193 VENC segment 19: penalty value register (VENC_SWREGx) . . . . . 2219
45.7.194 VENC segment 20: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame register
(VENC_SWREG362) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2220
45.7.195 VENC segment 20: skip mode penalty, inter MB mode
favor register (VENC_SWREG363) . . . . . . . . . . . . . . . . . . . . . . . . . . 2220
45.7.196 VENC segment 20: penalty value register (VENC_SWREGx) . . . . . 2220
45.7.197 VENC segment 21: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame register
(VENC_SWREG366) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221
45.7.198 VENC segment 21: skip mode penalty, inter MB mode
favor register (VENC_SWREG367) . . . . . . . . . . . . . . . . . . . . . . . . . . 2221
45.7.199 VENC segment 21: penalty value register (VENC_SWREGx) . . . . . 2221
45.7.200 VENC segment 22: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG370) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2222
45.7.201 VENC segment 22: skip mode penalty, inter MB mode
favor register (VENC_SWREG371) . . . . . . . . . . . . . . . . . . . . . . . . . . 2222
45.7.202 VENC segment 22: penalty value register (VENC_SWREGx) . . . . . 2222
45.7.203 VENC segment 23: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG374) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2223
45.7.204 VENC segment 23: skip mode penalty, inter MB mode
favor register (VENC_SWREG375) . . . . . . . . . . . . . . . . . . . . . . . . . . 2223
45.7.205 VENC segment 23: penalty value register (VENC_SWREGx) . . . . . 2223
45.7.206 VENC segment 24: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG378) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2224
45.7.207 VENC segment 24: skip mode penalty, inter MB mode
favor register (VENC_SWREG379) . . . . . . . . . . . . . . . . . . . . . . . . . . 2224
45.7.208 VENC segment 24: penalty value register (VENC_SWREGx) . . . . . 2224
45.7.209 VENC segment 25: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG382) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2225
45.7.210 VENC segment 25: skip mode penalty, inter MB mode
favor register (VENC_SWREG383) . . . . . . . . . . . . . . . . . . . . . . . . . . 2225
45.7.211 VENC segment 25: penalty value register (VENC_SWREGx) . . . . . 2225
45.7.212 VENC segment 26: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG386) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2226
45.7.213 VENC segment 26: skip mode penalty, inter MB mode
favor register (VENC_SWREG387) . . . . . . . . . . . . . . . . . . . . . . . . . . 2226
45.7.214 VENC segment 26: penalty value register (VENC_SWREGx) . . . . . 2226
45.7.215 VENC segment 27: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG390) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2227
45.7.216 VENC segment 27: skip mode penalty, inter MB mode
favor register (VENC_SWREG391) . . . . . . . . . . . . . . . . . . . . . . . . . . 2227
45.7.217 VENC segment 27: penalty value register (VENC_SWREGx) . . . . . 2227
45.7.218 VENC segment 28: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG394) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2228
45.7.219 VENC segment 28: skip mode penalty, inter MB mode
favor register (VENC_SWREG395) . . . . . . . . . . . . . . . . . . . . . . . . . . 2228
45.7.220 VENC segment 28: penalty value register (VENC_SWREGx) . . . . . 2228
45.7.221 VENC segment 29: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG398) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229
45.7.222 VENC segment 29: skip mode penalty, inter MB mode
favor register (VENC_SWREG399) . . . . . . . . . . . . . . . . . . . . . . . . . . 2229
45.7.223 VENC segment 29: penalty value register (VENC_SWREGx) . . . . . 2229
45.7.224 VENC segment 30: intra 4x4 previous mode favor, intra 16x16
mode favor, penalty value for second reference frame
register (VENC_SWREG402) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2230
45.7.225 VENC segment 30: skip mode penalty, inter MB mode
favor register (VENC_SWREG403) . . . . . . . . . . . . . . . . . . . . . . . . . . 2230
45.7.226 VENC segment 30: penalty value register (VENC_SWREGx) . . . . . 2230
45.7.227 VENC segment 31: intra 4x4 previous mode favor, intra 16x16 mode
favor, penalty value for second reference frame
register (VENC_SWREG406) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2231
45.7.228 VENC segment 31: skip mode penalty, inter MB mode favor
register (VENC_SWREG407) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2231
45.7.229 VENC segment 31: penalty value register (VENC_SWREGx) . . . . . 2231
45.7.230 VENC MBRC control, QP, offset, enable
register (VENC_SWREG410) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2232
45.7.231 VENC gain of MB QP delta. 8.8 format register
(VENC_SWREG411) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2232
45.7.232 VENC average of MB complexity register (VENC_SWREG412) . . . 2232
45.7.233 VENC reference compression control
register (VENC_SWREG413) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2233
45.7.234 VENC base address for reference luma register
(VENC_SWREG414) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2233
45.7.235 VENC base address for reference chroma register
(VENC_SWREG415) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2233
45.7.236 VENC base address for reconstructed luma register
(VENC_SWREG416) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2234
45.7.237 VENC base address for reconstructed chroma register
(VENC_SWREG417) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2234
45.7.238 VENC base address for second reference luma register
(VENC_SWREG418) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2234
45.7.239 VENC base address for second reference chroma register
(VENC_SWREG419) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2235
45.7.240 VENC limit of chroma RFC buffer register
(VENC_SWREG420) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2235
45.7.241 VENC reorder control register (VENC_SWREG421) . . . . . . . . . . . . 2235
45.7.242 VENC AXI read ID register (VENC_SWREG422) . . . . . . . . . . . . . . . 2236
45.7.243 VENC base address MSB for reference luma compression table
register (VENC_SWREG423) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2236
45.7.244 VENC base address MSB for reference chroma compression table
register (VENC_SWREG424) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2236
45.7.245 VENC base address MSB for reconstructed luma compression
table register (VENC_SWREG425) . . . . . . . . . . . . . . . . . . . . . . . . . . 2237
45.7.246 VENC base address for reconstructed chroma compression
table register (VENC_SWREG426) . . . . . . . . . . . . . . . . . . . . . . . . . . 2237
45.7.247 VENC base address MSB for second reference luma compression
table register (VENC_SWREG427) . . . . . . . . . . . . . . . . . . . . . . . . . . 2237
45.7.248 VENC base address MSB for second reference chroma compression
table register (VENC_SWREG428) . . . . . . . . . . . . . . . . . . . . . . . . . . 2238
45.7.249 VENC high 32 bits of base address for output stream
data register (VENC_SWREG429) . . . . . . . . . . . . . . . . . . . . . . . . . . 2238
45.7.250 VENC high 32 bits of base address for output control
data register (VENC_SWREG430) . . . . . . . . . . . . . . . . . . . . . . . . . . 2238
45.7.251 VENC high 32 bits of base address for reference luma
register (VENC_SWREG431) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2239
45.7.252 VENC high 32 bits of base address for reference chroma
register (VENC_SWREG432) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2239
45.7.253 VENC high 32 bits of base address for reconstructed luma
register (VENC_SWREG433) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2239
45.7.254 VENC high 32 bits of base address for reconstructed chroma
register (VENC_SWREG434) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
45.7.255 VENC high 32 bits of base address for input picture luma
register (VENC_SWREG435) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
45.7.256 VENC high 32 bits of base address for input picture cb register
(VENC_SWREG436) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
45.7.257 VENC high 32 bits of base address for input picture cr
register (VENC_SWREG437) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2241
45.7.258 VENC high 32 bits of base address for second reference
luma register (VENC_SWREG438) . . . . . . . . . . . . . . . . . . . . . . . . . . 2241
45.7.259 VENC high 32 bits of base address for second reference
chroma register (VENC_SWREG439) . . . . . . . . . . . . . . . . . . . . . . . . 2241
45.7.260 VENC high 32 bits of H264 secondary ref pic base
register (VENC_SWREGx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2242
45.7.261 VENC high 32 bits of base address for next pic luminance
register (VENC_SWREG442) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2242
45.7.262 VENC high 32 bits of base address for cabac context tables H264
register (VENC_SWREG443) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2242
45.7.263 VENC high 32 bits of base address for MV output writing
register (VENC_SWREG444) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2243
45.7.264 VENC high 32 bits of base address for output of down-scaled
encoder image in YUYV [Link] format register (VENC_SWREG449) 2243
45.7.265 VENC low-latency control register (VENC_SWREG497) . . . . . . . . . 2243
List of tables
Table 255. ADC register map and reset values for each ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1567
Table 256. ADC register map and reset values (master and slave ADC
common registers) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1570
Table 257. DTS internal input/output signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1572
Table 258. DTS interconnection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1573
Table 259. SDA slave registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1578
Table 260. SDA TS control register (SDATS_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1578
Table 261. SDA TS configuration register (SDATS_CFGR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1579
Table 262. SDA TS data register (SDATS_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1580
Table 263. SDA TS timer register (SDATS_TIMERR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1581
Table 264. Output resolution configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1586
Table 265. DTS interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1587
Table 266. DTS register memory map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1588
Table 267. PVT common register map and reset values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1608
Table 268. PVT IRQ register map and reset values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1608
Table 269. DTS TSC clock synthesizer register map and reset values . . . . . . . . . . . . . . . . . . . . . . 1609
Table 270. DTS TS individual register map and reset values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1611
Table 271. VREFBUF typical values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1613
Table 272. VREF buffer modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1614
Table 273. VREFBUF register map and reset values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617
Table 274. MDF features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619
Table 275. MDF external pins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622
Table 276. MDF internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622
Table 277. MDF trigger connections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1622
Table 278. MDF break connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1623
Table 279. Control of the common clock generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1630
Table 280. Clock constraints with respect to the incoming stream . . . . . . . . . . . . . . . . . . . . . . . . . . 1631
Table 281. Data size according to CIC order and CIC decimation values . . . . . . . . . . . . . . . . . . . . 1638
Table 282. Maximum decimation ratio versus order and input data size . . . . . . . . . . . . . . . . . . . . . 1639
Table 283. Possible gain values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1640
Table 284. Recommended maximum gain values versus CIC decimation ratios. . . . . . . . . . . . . . . 1642
Table 285. Most common microphone settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1642
Table 286. HPF 3 dB cut-off frequencies examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1644
Table 287. Register protection summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665
Table 288. Effect of low-power modes on MDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1666
Table 289. MDF interrupt requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1668
Table 290. Examples of MDF settings for microphone capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669
Table 291. Programming sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669
Table 292. Output signal levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676
Table 293. MDF register map and reset values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1700
Table 294. ADF features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703
Table 295. ADF external pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1704
Table 296. ADF internal signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1704
Table 297. ADF trigger connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1705
Table 298. Control of the common clock generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1711
Table 299. Clock constraints with respect to the incoming stream . . . . . . . . . . . . . . . . . . . . . . . . . . 1712
Table 300. Data size according to CIC order and CIC decimation values . . . . . . . . . . . . . . . . . . . . 1717
Table 301. Possible gain values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1718
Table 302. Recommended maximum gain values
versus CIC decimation ratios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1720
Table 303. Most common microphone settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1721
Table 304. HPF 3 dB cut-off frequency examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723
Table 305. ANSLP values versus FRSIZE and sampling rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1736
Table 306. Threshold values according SNTHR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1737
Table 307. Register protection summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1743
Table 308. Effect of low-power modes on ADF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1744
Table 309. ADF interrupt requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1745
Table 310. Examples of ADF settings for microphone capture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1746
Table 311. Programming sequence (CIC4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1747
Table 312. Programming sequence (CIC5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1748
Table 313. Output signal levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753
Table 314. ADF register map and reset values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1774
Table 315. Camera subsystem RIF peripheral ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1783
Table 316. DCMI input/output pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1789
Table 317. DCMI internal input/output signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1789
Table 318. Positioning of captured data bytes in 32-bit words (8-bit width) . . . . . . . . . . . . . . . . . . . 1791
Table 319. Positioning of captured data bytes in 32-bit words (10-bit width) . . . . . . . . . . . . . . . . . . 1791
Table 320. Positioning of captured data bytes in 32-bit words (12-bit width) . . . . . . . . . . . . . . . . . . 1791
Table 321. Positioning of captured data bytes in 32-bit words (14-bit width) . . . . . . . . . . . . . . . . . . 1792
Table 322. Data storage in monochrome progressive video format . . . . . . . . . . . . . . . . . . . . . . . . . 1797
Table 323. Data storage in RGB progressive video format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798
Table 324. Data storage in YCbCr progressive video format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798
Table 325. Data storage in YCbCr progressive video format - Y extraction mode . . . . . . . . . . . . . . 1798
Table 326. DCMI interrupts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1799
Table 327. DCMI register map and reset values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1809
Table 328. Available pipelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1810
Table 329. Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1811
Table 330. DCMIPP input/output pads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816
Table 331. DCMIPP input/output pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816
Table 332. DCMIPP clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1816
Table 333. DCMIPP resets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1817
Table 334. Parallel interface maximum resolution (80 MHz) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1818
Table 335. Supported pixel formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1820
Table 336. DCMIPP_PRCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1824
Table 337. DCMIPP_PRESCR and DCMIPP_PRESUR bit function . . . . . . . . . . . . . . . . . . . . . . . . 1825
Table 338. DCMIPP_PxFCTCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1832
Table 339. DCMIPP_P0PPCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1835
Table 340. DCMIPP_P0DCCNTR and DCMIPP_P0DCLMTR bit function. . . . . . . . . . . . . . . . . . . . 1838
Table 341. DCMIPP_P1SRCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1841
Table 342. DCMIPP_P1BPRCR and DCMIPP_P1BPRSR bit function . . . . . . . . . . . . . . . . . . . . . . 1841
Table 343. DCMIPP_P1DECR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1843
Table 344. DCMIPP_P1BLCCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1843
Table 345. DCMIPP_P1EXCR1 and DCMIPP_P1EXCR2 bit function. . . . . . . . . . . . . . . . . . . . . . . 1844
Table 346. DCMIPP_P1DMCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1846
Table 347. DCMIPP_PxCCyy (yy = R0, R1, G0, G1, B0, B1) bit function . . . . . . . . . . . . . . . . . . . . 1847
Table 348. Color conversion: examples of coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1848
Table 349. DCMIPP_P1CTCR1,2,3 bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1850
Table 350. DCMIPP_P1STyCR (y = 1, 2, 3), DCMIPP_P1STySR (y = 1, 2, 3),
DCMIPP_P1STSTR and DCMIPP_P1STSZR bit function . . . . . . . . . . . . . . . . . . . . . . . 1852
Table 351. Statistics extraction: collected data vs. modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1853
Table 352. DCMIPP_PxCRSTR and DCMIPP_PxCRSZR bit function . . . . . . . . . . . . . . . . . . . . . . 1857
Table 353. DCMIPP_PxDCCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1858
Table 354. DCMIPP_PxDSCR, DCMIPP_PxDSRTIOR, DCMIPP_PxDSSZR. . . . . . . . . . . . . . . . . 1859
Table 355. DCMIPP_PxPPCR bit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1862
List of figures
Figure 49. Clock distribution for GPU, ICACHE, and GFXMMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Figure 50. Clock distribution for LTDC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
Figure 51. Clock distribution for VENC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Figure 52. Clock distribution for OTG1, OTG2, and UCPD1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Figure 53. Clock distribution for ETH1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Figure 54. Clock management for ETH1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Figure 55. Clock distribution for MDIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Figure 56. Clock distribution for FMC and MCE4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Figure 57. Clock distribution for XSPIs and MCE1/2/3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Figure 58. Clock distribution for SDMMCx and companions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Figure 59. Clock distribution for ADCs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Figure 60. Clock distribution for RTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Figure 61. Clock distribution for IWDG and WWDG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
Figure 62. Clock distribution for trace and debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Figure 63. Kernel clock switching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Figure 64. Enable logic details for peripheral kernel clock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Figure 65. Basic structure of an I/O port bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
Figure 66. Input floating/pull-up/pull-down configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
Figure 67. Output configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
Figure 68. AF configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
Figure 69. Programmable analog configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
Figure 70. I/O compensation cell control overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
Figure 71. HPDMA block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839
Figure 72. HPDMA channel direct programming without linked-list (HPDMA_CxLLR = 0) . . . . . . . . 840
Figure 73. HPDMA channel suspend and resume sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
Figure 74. HPDMA channel abort and restart sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
Figure 75. Static linked-list data structure (all Uxx = 1) of a linear addressing channel x . . . . . . . . . 843
Figure 76. Static linked-list data structure (all Uxx = 1) of a 2D addressing channel x . . . . . . . . . . . 844
Figure 77. HPDMA dynamic linked-list data structure of linear addressing channel x. . . . . . . . . . . . 845
Figure 78. HPDMA dynamic linked-list data structure of a 2D addressing channel x . . . . . . . . . . . . 845
Figure 79. HPDMA channel execution and linked-list programming
in run-to-completion mode (HPDMA_CxCR.LSM = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
Figure 80. Inserting a LLIn with an auxiliary HPDMA channel y . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
Figure 81. HPDMA channel execution and linked-list programming
in link step mode (HPDMA_CxCR.LSM = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
Figure 82. Building LLIn+1: HPDMA dynamic linked-lists in link step mode . . . . . . . . . . . . . . . . . . . 853
Figure 83. Replace with a new LLIn’ in register file in link step mode . . . . . . . . . . . . . . . . . . . . . . . . 854
Figure 84. Replace with a new LLIn’ and LLIn+1’ in memory in link step mode (option 1) . . . . . . . . 855
Figure 85. Replace with a new LLIn’ and LLIn+1’ in memory in link step mode (option 2) . . . . . . . . 856
Figure 86. HPDMA channel execution and linked-list programming . . . . . . . . . . . . . . . . . . . . . . . . . 858
Figure 87. Programmed 2D addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
Figure 88. HPDMA arbitration policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 876
Figure 89. Trigger hit, memorization and overrun waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
Figure 90. HPDMA circular buffer programming: update of the memory start address
with a linear addressing channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
Figure 91. Shared HPDMA channel with circular buffering: update of the memory
start address with a linear addressing channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
Figure 92. GPDMA block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
Figure 93. GPDMA channel direct programming without linked-list (GPDMA_CxLLR = 0) . . . . . . . . 937
Figure 94. GPDMA channel suspend and resume sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
Figure 95. GPDMA channel abort and restart sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
Figure 96. Static linked-list data structure (all Uxx = 1)
Figure 341. Start sequence with DFLTEN, in continuous mode, audio configuration . . . . . . . . . . . . 1657
Figure 342. Start sequence with trigger input, in continuous mode, motor configuration . . . . . . . . . 1658
Figure 343. Break interface simplified view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659
Figure 344. MDF_DFLTxDR data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659
Figure 345. Data re-synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1660
Figure 346. Data transfer in interleaved-transfer mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1661
Figure 347. Data path for interleaved- and independent-transfer modes . . . . . . . . . . . . . . . . . . . . . 1663
Figure 348. Example of overflow and transfer to memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1664
Figure 349. MDF interrupt interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1667
Figure 350. Sensor connection examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672
Figure 351. Global frequency response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673
Figure 352. Detailed frequency response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1673
Figure 353. Simplified DFLT view with gain information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1676
Figure 354. ADF block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1704
Figure 355. SITF overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1706
Figure 356. SPI timing example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1707
Figure 357. Manchester timing example (SITFMOD = 11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1708
Figure 358. CKGEN overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1711
Figure 359. BSMX overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713
Figure 360. DFLT overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1714
Figure 361. Programmable delay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1715
Figure 362. CIC4 and CIC5 frequency response with decimation ratio = 32 or 16 . . . . . . . . . . . . . . 1716
Figure 363. Reshape filter frequency response normalized (FRS / 2 = 1). . . . . . . . . . . . . . . . . . . . . 1722
Figure 364. Trigger logic for DFLT and CKGEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1724
Figure 365. Asynchronous continuous mode (ACQMOD[2:0] = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . 1725
Figure 366. Asynchronous single-shot mode (ACQMOD[2:0] = 001) . . . . . . . . . . . . . . . . . . . . . . . . 1726
Figure 367. Synchronous continuous mode (ACQMOD[2:0] = 010) . . . . . . . . . . . . . . . . . . . . . . . . . 1727
Figure 368. Synchronous single-shot mode (ACQMOD[2:0] = 011) . . . . . . . . . . . . . . . . . . . . . . . . . 1728
Figure 369. Window continuous mode (ACQMOD[2:0] = 100) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729
Figure 370. Discard function example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731
Figure 371. Start sequence with DFLTEN, in continuous mode, audio configuration . . . . . . . . . . . . 1731
Figure 372. SAD block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1732
Figure 373. SAD flow diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1734
Figure 374. SAD timing diagram example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1740
Figure 375. ADF_DFLTxDR data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1740
Figure 376. Data re-synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1741
Figure 377. Example of overflow and transfer to memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1742
Figure 378. ADF interrupt interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1745
Figure 379. Sensor connection examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1750
Figure 380. Global frequency response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1750
Figure 381. Detailed frequency response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1751
Figure 382. Simplified DFLT view with gain information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753
Figure 383. SAD example working with SADMOD = 01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1756
Figure 384. SAD example working with SADMOD = 1x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1758
Figure 385. Camera subsystem block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780
Figure 386. Camera subsystem clock diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781
Figure 387. DCMI block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1789
Figure 388. DCMI signal waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1790
Figure 389. Timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1792
Figure 390. Frame capture waveforms in snapshot mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1794
Figure 391. Frame capture waveforms in continuous grab mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 1795
Figure 392. Coordinates and size of the window after cropping . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1795
Figure 548. PWM output state following tim_brk and tim_brk2 assertion (OSSI = 1) . . . . . . . . . . . . 2529
Figure 549. PWM output state following tim_brk assertion (OSSI = 0) . . . . . . . . . . . . . . . . . . . . . . . 2530
Figure 550. Output redirection (tim_brk2 request not represented) . . . . . . . . . . . . . . . . . . . . . . . . . . 2531
Figure 551. Clearing TIMx tim_ocxref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2532
Figure 552. 6-step generation, COM example (OSSR = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2533
Figure 553. Example of one pulse mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2534
Figure 554. Retriggerable one-pulse mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2536
Figure 555. Pulse generator circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2536
Figure 556. Pulse generation on compare event, for edge-aligned and encoder modes . . . . . . . . . 2537
Figure 557. Extended pulsewidth in case of concurrent triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2538
Figure 558. Example of counter operation in encoder interface mode. . . . . . . . . . . . . . . . . . . . . . . . 2540
Figure 559. Example of encoder interface mode with tim_ti1fp1 polarity inverted. . . . . . . . . . . . . . . 2540
Figure 560. Quadrature encoder counting modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2541
Figure 561. Direction plus clock encoder mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2542
Figure 562. Directional clock encoder mode (CC1P = CC2P = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2542
Figure 563. Directional clock encoder mode (CC1P = CC2P = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543
Figure 564. Index gating options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2544
Figure 565. Jittered Index signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2544
Figure 566. Index generation for IPOS[1:0] = 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2545
Figure 567. Counter reading with index gated on channel A (IPOS[1:0] = 11) . . . . . . . . . . . . . . . . . 2545
Figure 568. Counter reading with index ungated (IPOS[1:0] = 00) . . . . . . . . . . . . . . . . . . . . . . . . . . 2546
Figure 569. Counter reading with index gated on channel A and B. . . . . . . . . . . . . . . . . . . . . . . . . . 2546
Figure 570. Encoder mode behavior in case of narrow index pulse (IPOS[1:0] = 11) . . . . . . . . . . . . 2547
Figure 571. Counter reset Narrow index pulse (closer view, ARR = 0x07) . . . . . . . . . . . . . . . . . . . . 2548
Figure 572. Index behavior in x1 and x2 mode (IPOS[1:0] = 01). . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549
Figure 573. Directional index sensitivity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549
Figure 574. Counter reset as function of FIDX bit setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550
Figure 575. Index blanking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550
Figure 576. Index behavior in clock + direction mode, IPOS[0] = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 2551
Figure 577. Index behavior in directional clock mode, IPOS[0] = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 2551
Figure 578. State diagram for quadrature encoded signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2552
Figure 579. Up-counting encoder error detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2553
Figure 580. Down-counting encode error detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2554
Figure 581. Encoder mode change with preload transferred on update (SMSPS = 0) . . . . . . . . . . . 2555
Figure 582. Measuring time interval between edges on three signals . . . . . . . . . . . . . . . . . . . . . . . . 2556
Figure 583. Example of Hall sensor interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558
Figure 584. Control circuit in reset mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2559
Figure 585. Control circuit in Gated mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2560
Figure 586. Control circuit in trigger mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2561
Figure 587. Control circuit in external clock mode 2 + trigger mode . . . . . . . . . . . . . . . . . . . . . . . . . 2562
Figure 588. General-purpose timer block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2621
Figure 589. Counter timing diagram with prescaler division change from 1 to 2 . . . . . . . . . . . . . . . . 2626
Figure 590. Counter timing diagram with prescaler division change from 1 to 4 . . . . . . . . . . . . . . . . 2627
Figure 591. Counter timing diagram, internal clock divided by 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2628
Figure 592. Counter timing diagram, internal clock divided by 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2628
Figure 593. Counter timing diagram, internal clock divided by 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
Figure 594. Counter timing diagram, internal clock divided by N. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
Figure 595. Counter timing diagram, Update event when ARPE = 0 (TIMx_ARR not preloaded). . . 2630
Figure 596. Counter timing diagram, Update event when ARPE = 1 (TIMx_ARR preloaded). . . . . . 2631
Figure 597. Counter timing diagram, internal clock divided by 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
Figure 598. Counter timing diagram, internal clock divided by 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2633
Figure 599. Counter timing diagram, internal clock divided by 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2633
Figure 892. Optional configurations of the slave behavior when an underrun condition is detected . 3449
Figure 893. Waveform examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3457
Figure 894. Master I2S Philips protocol waveforms (16/32-bit full accuracy) . . . . . . . . . . . . . . . . . . 3458
Figure 895. I2S Philips standard waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3458
Figure 896. Master MSB-justified 16- or 32-bit full-accuracy length . . . . . . . . . . . . . . . . . . . . . . . . . 3459
Figure 897. Master MSB-justified 16- or 24-bit data length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3459
Figure 898. Slave MSB-justified 16-, 24- or 32-bit data length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3460
Figure 899. LSB-justified 16 or 24-bit data length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3460
Figure 900. Master PCM when the frame length is equal the data length . . . . . . . . . . . . . . . . . . . . . 3461
Figure 901. Master PCM standard waveforms (16 or 24-bit data length) . . . . . . . . . . . . . . . . . . . . . 3461
Figure 902. Slave PCM waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3462
Figure 903. Startup sequence, I2S Philips standard, master. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3465
Figure 904. Startup sequence, I2S Philips standard, slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3466
Figure 905. Stop sequence, I2S Philips standard, master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3466
Figure 906. I2S clock generator architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3467
Figure 907. Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3469
Figure 908. Handling of underrun situation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3471
Figure 909. Handling of overrun situation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3472
Figure 910. Frame error detection, with FIXCH = 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3473
Figure 911. Frame error detection, with FIXCH = 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3473
Figure 912. SAI functional block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3498
Figure 913. Audio frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3502
Figure 914. FS role is start of frame + channel side identification (FSDEF = TRIS = 1) . . . . . . . . . . 3504
Figure 915. FS role is start of frame (FSDEF = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3505
Figure 916. Slot size configuration with FBOFF = 0 in SAI_xSLOTR . . . . . . . . . . . . . . . . . . . . . . . . 3506
Figure 917. First bit offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3506
Figure 918. Audio block clock generator overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3508
Figure 919. PDM typical connection and timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3512
Figure 920. Detailed PDM interface block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3513
Figure 921. Start-up sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3514
Figure 922. SAI_ADR format in TDM mode, 32-bit slot width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3515
Figure 923. SAI_ADR format in TDM mode, 16-bit slot width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3516
Figure 924. SAI_ADR format in TDM mode, 8-bit slot width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3517
Figure 925. AC’97 audio frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3520
Figure 926. Example of typical AC’97 configuration on devices featuring at least
two embedded SAIs (three external AC’97 decoders) . . . . . . . . . . . . . . . . . . . . . . . . . . 3521
Figure 927. SPDIF format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3522
Figure 928. SAI_xDR register ordering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3523
Figure 929. Data companding hardware in an audio block in the SAI . . . . . . . . . . . . . . . . . . . . . . . . 3526
Figure 930. Tristate strategy on SD output line on an inactive slot . . . . . . . . . . . . . . . . . . . . . . . . . . 3528
Figure 931. Tristate on output data line in a protocol like I2S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3529
Figure 932. Overrun detection error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3530
Figure 933. FIFO underrun event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3530
Figure 934. SPDIFRX block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3564
Figure 935. S/PDIF sub-frame format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3565
Figure 936. S/PDIF block format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3566
Figure 937. S/PDIF Preambles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3566
Figure 938. Channel coding example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3567
Figure 939. SPDIFRX decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3568
Figure 940. Noise filtering and edge detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3568
Figure 941. Thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3570
Figure 942. Synchronization flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3572
1 Documentation conventions
a. Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
b. This is an exhaustive list of all abbreviations applicable to STMicroelectronics microcontrollers, some of
them may not be used in the current document.
Bits (binary notation) or bits nibbles (hexadecimal notation) of which the reset value is
unmodified are marked as U.
1.4 Glossary
This section gives a brief definition of acronyms and abbreviations used in this document:
• Debug port definition/acronyms:
– JTAG: Joint Test Action Group protocol, provides 4-pin standard + 1 optional
– SWD: Serial Wire Debug protocol, provides 2-pin interface
• Double word: data of 65-bit length.
• Word: data of 32-bit length.
• Half-word: data of 16-bit length.
• Byte: data of 8-bit length.
• Option bytes: product configuration bits stored in internal fuses.
• OTP: one-time programming (fuses).
• AHB: advanced high-performance bus.
• APB: advanced peripheral bus.
• AXI: Advanced extensible interface protocol.
• ECC: error code correction.
• DMA: direct memory access.
2.1.1 Introduction
The device architecture relies on an Arm Cortex-M55 core optimized for execution:
• Main masters:
– Cortex-M55 with Arm TrustZone mainline with two master ports:
> M-AXI provides access to the memory and to peripherals
> P-AHB provides access to peripherals
– NPU (neural processor unit), which includes two master AXI ports
• Memories:
– AHB and APB peripherals
– 4.2 Mbytes of SRAM
– 64 Kbytes I-TCM RAM with ECC for critical real-time routines, and 128 Kbytes of
D-TCM RAM with ECC for critical real-time data
– 8 Kbytes of backup SRAM (BKPSRAM) active in VBAT mode
– 2 x 16-Kbyte AHB RAMs
– Flexible external memory controller (FLEXMEM) with cypher engine supporting up
to 32-bit data bus: SRAM, PSRAM, SDRAM, LPSDR SDRAM, NOR/NAND flash
memories
– XSPIM port2 8-bit configuration with cypher engine
– XSPIM port1 16-bit configuration with cypher engine
The NPU uses a local interconnect (NPU_NIC) to have a direct access to AXISRAM3/4/5/6
and to the CPU TCM. This results in a high-performance and low-latency bus when
accessing these targets.
In addition, data interleaving can be enabled on AXISRAM3/4/5/6 to balance the traffic and
to improve access performance.
The CPU and high-bandwidth masters use another local interconnect called CPU_NOC to
have high-performance access on AXISRAM1/2 and external flash memories.
Note: The boot ROM is accessible only by the CPU through an intermediate interconnect called
CPU_NIC.
FC ADC1-2
4 x 448KB
NPU
AXISRAM3 AXISRAM4 AXISRAM5
CK_ICN_M_DMA3GP
AXISRAM6 CK_ICN_AHB1
CPU SS AHB1
64 64 + Debug SS APB1
CK_ICN_S_ CK_ICN_S_ CK_ICN_S_ CK_ICN_S_ DMA_APB1
NPU_RAM1 NPU_RAM2 NPU_RAM3 NPU_RAM4 APB
bridge
APB1
DMA_APB2 targets
FC AHB
NPU NIC ITCM & DTCM for DMA3 busmatrix
TCM Async
64 bits D TCM for NPU up DMA
XHB40
CK_ICN_NPUC 0
CK_ICN_NPU CK_CPU 32 bits
DMA_APB4
S-AHB
64
NPU Cacheabale
traffic to FLASHs
P-AHB FC APB2
NPU NON Cacheable
A Sync
32
Traffic + AHB RAMs
CK_ICN_M_DMA2D
64
GPU2.5D ADF (MDF2)
FC CPU
FC FC FC FC RAMCFG
High Async
NPU Speed USB USB down
NPU CACHE RAM+ TCMs (DMA3)
SD SD
CACH Link HS HS MMC MMC CK_ICN_M_CPU
E CK_ICN_AHB2 APB3
master_ ETH 1 2 1 2
NPU_CACHE_ 256KB 64 64 64 AHB2
AXISRAM3/4/5/6 +
64 64 64 64 64 RNG
CK_NOC_CPU CK_NOC_VID
2AXI
CK_NOC_NPUC
AHB
CK_NOC_NPU AHB2 HASH
AHBM
STNOC AXI CRYPT
RM0486 Rev 2
64 to 32
32 bits
XHB400
RIFSC
CK_NOC_CPU
CK_NOC_AHB CK_ICN_AHB3 IAC
M AHB3_SOUTH
AHB4 RISAFs 0/1/2/8/20/21
APB4
AHB5
1. The high-performance domain is shown in pink. The low-performance domain is shown in blue.
RM0486
RM0486 Memory and bus architecture
2.3.1 Introduction
Program memory, data memory, registers and I/O ports are organized within the same linear
4-Gbyte address space.
The bytes are coded in memory in Little Endian format. The lowest numbered byte in a word
is considered the word’s least significant byte and the highest numbered byte the most
significant.
- 0xFFFFFFFF Reserved
- 0xE0100000 Reserved
Cortex-M55 nonsecure 0xE0000000 Cortex-M55 internal peripherals, debug and trace
0xD0000000 SDRAM 2
SDRAM nonsecure
0xC0000000 SDRAM 1
- 0xA0000000 Reserved
0x90000000 XSPI1
XSPI bank nonsecure 0x80000000 XSPI3
0x70000000 XSPI2
SDRAM nonsecure 0x60000000 FMC NOR/SRAM
0x34270000 AXISRAM4
0x34200000 AXISRAM3
Reserved SRAM/AXI bank secure
0x34100000 AXISRAM2
0x34000000 AXISRAM1 (FLEXMEM extension bites on the lower end)
0x30040000 Reserved
Data secure
0x30000000 DTCM - Baseline
0x2C002000 Reserved
0x2C000000 Backup SRAM (8 Kbytes)
0x28008000 Reserved
0x28004000 AHBSRAM2
0x28000000 AHBSRAM1
0x27F00000 STM500 channels (system trace)
0x27EFF000 FMC-NAND
0x26000000 Reserved
0x25000000 GFXMMU SLV
SRAM/AXI bank nonsecure
0x24420000 Reserved
0x24400000 VENCRAM
0x243C0000 CACHEAXI
0x24350000 AXISRAM6
0x242E0000 AXISRAM5
0x24270000 AXISRAM4
0x24200000 AXISRAM3
0x24100000 AXISRAM2
0x24000000 AXISRAM1 (FLEXMEM extension bites on the lower end)
0x20040000 Reserved
Data nonsecure
0x20000000 DTCM - Baseline
0x18020000 Reserved
0x18000000 BootROM 128 Kbytes
Code secure
0x10040000 Reserved
0x10000000 ITCM
0x08020000 Reserved
0x08000000 BootROM 128 Kbytes
Code nonsecure
0x00040000 Reserved
0x00000000 ITCM
(Mbytes)
Size
Zone Name IDAU security type Mapping Description
(Mbytes)
Size
Zone Name IDAU security type Mapping Description
RM0486
Reserved 0x46010000 - 0x4601FFFF Reserved for APB
APB4 0x46000000 - 0x4600FFFF APB4 peripherals
Table 2. Memory map and peripheral register boundary addresses (continued)
RM0486
(Mbytes)
Size
Zone Name IDAU security type Mapping Description
(Mbytes)
Size
Zone Name IDAU security type Mapping Description
RM0486
Table 2. Memory map and peripheral register boundary addresses (continued)
RM0486
(Mbytes)
Size
Zone Name IDAU security type Mapping Description
nonsecure
RM0486 Rev 2
(Mbytes)
Size
Zone Name IDAU security type Mapping Description
RM0486
RM0486
3 System security
• Active tamper and protection against temperature, voltage, and frequency attacks:
– Up to seven (inputs, outputs) tamper pins, available in all power modes
– Immediate erase of battery-backed volatile secrets on confirmed tamper detection
device-unique key pair ensures that this provisioning process is secure and counted. This
protects against cloning.
The boot ROM supports up to eight irreversible revocations of firmware signing keys.
The boot image header contains a constant decrypted by the boot ROM using the
provisioned firmware encryption key. This derived key is used to decrypt the actual image.
A nonsecure code is blocked from accessing secure world addresses. It can call only secure
code (that is, move into the secure world) via SG (secure gate) instructions, which reside in
special secure-world NSC (nonsecure callable) regions.
Trustzone ensures that the operation of a secure code and its data cannot be corrupted by
nonsecure code.
Table 4. Aliasing
Address region IDAU assignment Aliased targets
If the SAU is configured sensibly, the IDAU is normally irrelevant. The only potential effect of
the IDAU is to prevent any attempt via the SAU to demote any of the three “odd” NSC
regions listed above to be nonsecure.
A secure software configures the firewalls in front of physical resources (aliased in ranges
listed in Table 4) to determine in which world the access destination resides. This blocks
accesses that arrive marked with a mismatching security attribute. A nonsecure code
cannot access destinations that reside in the secure world (as designated by the firewall).
Destinations are then dedicated for use by the secure world.
External memories are mapped at addresses from 0x60000000 upwards (not aliased).
The SAU can be configured to allocate portions of these memories to the non-secure world.
These memories have RISAF firewalls in front of them, that can be configured to mirror SAU
settings, and to ensure that DMAs are subject to the same restrictions as CPU code.
• RISAF: firewalls placed in front of each memory target, with self-contained (local)
configuration registers
• IAC (interrupt access controller): recording all security violation events from all firewalls
around the device, in order to present a single interrupt to the CPU
Some peripherals have built-in firewalls, which are configured locally inside the peripheral.
These peripherals are called RIF-aware.
The IAC has room for 256 interrupt sources, each corresponding to an IAC index from 0 to
255. Interrupts from the RISUPs occupy most of the first 128 indexes. Interrupts from
RIF-aware peripherals and RISAFs occupy indexes from 128 onwards. RISUP and IAC
indexes are aligned. The RISUP associated with the IAC index 32 x + y is programmed to
be secure by setting RISC_SECCFGx[y]. It is programmed to be privileged by setting
RISC_PRIVCFGx[y].
For all RIF firewalling, the security setting of a resource can be configured only by a secure
privileged access: the secure OS can assign a RISAF base region to the nonsecure OS.
The nonsecure OS determines the position, privilege, and readability of subregions within
the base region.
If the resource is set to secure, nonsecure accesses to this resource are blocked. If the
resource is set to nonsecure, secure accesses to memories are blocked (no restrictions
for peripherals).
For all RIF firewalling, the privilege setting of a resource is only configurable by a privileged
access: if the resource has already been configured to be secure, the access must also be
secure. If a resource is set to privileged, only privileged accesses are allowed (no restriction
if set to unprivileged).
By default, the reset condition for peripheral firewalls is nonsecure unprivileged, for
memories is secure privileged. In any case, the Cortex-55 boots in secure mode: the secure
software can immediately establish a security regime.
On detecting a violation, a RISAF records locally the attributes of the violating access, and
sets an output error signal: its rising edge is captured in the IAC, which can then interrupt
the CPU. The handler must first clear the associated flag in the IAC, then clear the error
condition recorded in the RISAF.
An illegal access generates a bus error only if it is an instruction fetch.
3.5.4 Multi-tenancy
Several AI network providers may need to have their private NPU data on the device at the
same time. This is referred to as multi-tenancy, where providers are considered as tenants
on the device.
The secure OS needs to ensure that one tenant cannot snoop or corrupt the private NPU
data of another tenant.
Note: Tenants must all trust the secure OS to implement the isolation.
To facilitate the isolation between the NPU networks of distinct tenants, and other CPU
software, the RIF and bus infrastructure support the concept of compartments. An AXI bus
transaction carries a 3-bit CID value that identifies the transaction initiator compartment.
The secure OS configure the RISAF firewalls in front of memories on the AXI buses to filter
accesses according to the carried CID.
A RISAF treats a CID = 7 as a wildcard: if it allows an access with CID = n, it also allows it
with CID = 7 instead. The CID used by AXI transactions from the DAP is defined by DAPCID
in RIFSC_RIMC_CR. This bitfield is reset to seven, but can be changed by a secure
privileged access.
The CPU always issues transactions on the AXI bus with CID = 1. Only the CPU initiates
transactions on the AHB bus (directly, or indirectly via the DMA). The AHB does not carry
a CID bus: implicitly all transactions to peripherals occurring on the AHB bus have CID = 1.
In a multi-tenancy scenario, a distinct CID (values ≠ 1 and ≠7) is assigned to each tenant.
The secure OS configures the RISAFs to ensure tenant data are only accessible by
accesses carrying the tenant CID. Before allocating temporary exclusive NPU use to a
particular tenant, the secure OS configures the RIFSC: the NPU RIMUs ensure AXI reads
and writes are made with the CID of this tenant. This ensures the NPU cannot be used to
snoop the data of a different tenant.
A mechanism on STM32N6x7xx devices allows a secure tenant to use the HPDMA to move
its own data, but no-one else's. The secure OS can allocate an HPDMA channel n to a
tenant c by setting SCID = c in HPDMA_CnCIDCFGR. This ensures that transfers on this
channel can be set up only by configuration writes that carry CID = c. Tenants operate as
user processes, so such an allocated channel n must be configured with bit n = 0 in
HPDMA_PRIVCFGR (unprivileged). The mechanism is available only for tenants operating
in the secure world, so the secure OS must set bit n = 1 in HPDMA_SECCFGR. AXI
transactions made by the channel carry security, privilege, and cid attributes that match
what these registers are set to.
Just before scheduling a tenant's user process, the secure OS must write the tenant CID
in SYSCFG_SEC_AIDCR. This ensures that all AHB secure user accesses which arrive at
the HPDMA, appear to carry that CID. The tenant’s secure user process is then only able to
use secure HPDMA channels allocated to its own CID. When descheduling the tenant’s
secure user process, the secure OS resets SYSCFG_SEC_AIDCR to 1. The tenant’s
HPDMA job continues to operate in the background. Other user processes cannot interfere
with HPDMA channels belonging to that tenant.
The SYSCFG_SECPRIV_AIDCR register plays the same role for AHB secure privileged
accesses which arrive at the HPDMA. The interrupt handler for a DMA channel allocated
to a tenant user must configure this register in order to interrogate and clear the interrupt
registers in this DMA channel.
SYSCFG_SEC_AIDCR and SYSCFG_SECPRIV_AIDCR affect only the CID of secure
accesses. Nonsecure accesses always carry a CID of 1 (for example the CPU).
All other AXI initiators have RIMUs: what was described above for the NPU can be applied
to other AXI initiators (but using the RISUP and RIMUs).
If the nonsecure OS needs to control more subregions (for example four), the secure OS
can set up two identical base regions, both delegated to the nonsecure OS.
TAMP_INx (x = 1 to 7) X -
TAMP TAMPSEC in TAMP_SECCFGR
TAMP_OUTx (x = 1 to 6, 8) - X
RTC_OUTx (x = 1, 2) - X SEC in RTC_SECCFGR
RTC
RTC_TS X - TSSEC in RTC_SECCFGR
PWR WKUPx (x = 1 to 8) X - WUPxSEC in PWR_SECCFGR
RCC LSCO - X LSSEC in RCC_SECCFGR
EXTI EXTIx (x=0 to 22) X - SECx in EXTI_SECCFGR
1. To find the I/O corresponding to the signal/function on the package, refer to the product datasheet.
SAES
TIL Derivation
Software key
KMOD
CRYP
Data
Data in Fast AES
out
The derivation function also depends on the 2-bit TIL input from the BSEC. The software
can set this input value to something later than the current HDPL, but can never set it to
anything earlier. Keys are always provisioned for use up to a particular HDPL stage. Once
that stage has finished, this key is no longer usable.
The KEYSEL field in SAES_CR selects the source of the key used in the SAES.
• 0b001: derived key based only on the HUK
• 0b010: derived key based only on the BHK
• 0b100: derived key based on a combination of HUK and BHK
• 0b000: software loadable (but unreadable) key register
3.6.5 Unique ID
The device stores a 96-bit ID, unique to each device (see Section 79: Device electronic
signature).
Application services use this unique identity key to identify the product in the cloud network,
or to make it difficult for counterfeit devices or clones to inject untrusted data in the network.
Alternatively, the 256-bit device unique key (HUK) can be used (see Section 3.8.1).
The system includes a watchdog that the software needs to refresh regularly (and
eventually fires if the software hangs). If the watchdog fires, and there is a potential tamper
flagged (not yet analyzed by the software), ITAMP11 is set.
ITAMP11 must be configured as a confirmed tamper (performs an immediate erase of
device secrets).
Note: SYSCONF_POTTAMPRSTCR only overrides a potential tamper. If a confirmed tamper
occurs while the boot ROM operates, fuse secrets are made inaccessible until the next
system reset. This may cause the authentication to fail, and a system reset is eventually
triggered by the watchdog. By this time, all device secrets have been erased, and
SYSCONF_POTTAMPRSTCR can override blocks that caused the flagging of a tamper
event. The software can boot, and, for example, display a message indicating
the occurrence of the confirmed tamper.
The effect of low-power modes on a tamper detection are summarized in the table below.
3.8.1 Accelerators
The device implements cryptographic algorithms as recommended by national security
agencies (such as NIST for the U.S.A, BSI for Germany, or ANSSI for France). These
algorithms are used to support privacy, authentication, integrity, entropy, and identity
attestation.
The embedded crypto engines enable lower processing times, and lower power
consumption when performing cryptographic operations. This offloads these computations
from the Cortex-M55. The SAES engine offers two important features, which cannot be
implemented by software: pure hardware key handling, and DPA resistance.
For product certification purposes, ST provides certified device information on how these
security functions are implemented and validated.
For more information on crypto engine processing times, refer to the dedicated section in
the reference manual.
The PKA accelerates asymmetric crypto operations (such as key pair generation, ECC
scalar multiplication, point on curve check). See Section 52: Public key accelerator (PKA)
for more details.
The STM32N6x7xx devices have two AES engines:
• The CRYP includes a fast AES engine with 11 cycles per 16-byte block
(see Section 49: Cryptographic processor (CRYP)).
• The SAES contains a DPA-resistant AES engine, which implements counter-measures
and mitigations against power and electromagnetic side-channel attacks. The SAES is
much slower.
SAES and CRYP engines support the chaining modes mentioned in Table 8.
As shown in Section 3.6, the SAES can be used for extra-secure on-chip storage for
sensitive information. For more information, refer to Section 48: Secure AES coprocessor
(SAES).
• IDy is a value that software can modify when the NPU rewrites a new value to the same
address.
The latency through the NPU encryption engine is 3 or 4 cycles (depending on a strength
option selected by the software). See Section 20: Neural-ART accelerator™ (NPU).
4.1 Introduction
The boot and security control (BSEC) peripheral manages the accesses to an embedded
one time programmable (OTP) array of fuses. Those fuses are used to store on-chip,
non-volatile data like boot and security parameters.
Embedded non-volatile secrets are stored in BSEC upper area that is only accessible while
BSEC is operating in its BSEC-closed state. When the BSEC state is BSEC-open, those
non-volatile secrets are permanently hidden.
hide_sec
block_sec
unmap
Debug &
BSEC Trace
Control debug_ctrl
registers
Wrapper
JTAG
jtaginout
registers
SAES
Shadow RHUK
registers
control
feature_ctrl
32-bit APB bus
Fuses
Array
Core logic
sec
cid
MSv67591V1
bsec_rst
BSEC cold/warm resets from RCC (see Section 4.3.17).
bsec_srst Digital input
bsec_hrst BSEC hot reset from RCC (see Section 4.3.17).
Digital input
jtaginout Interface to JTAG, including clock and reset.
and output
hide_sec Digital input Set by TAMP in case of confirmed tamper (see Section 4.3.17).
block_sec Digital input Set by TAMP in case of potential tamper (see Section 4.3.17).
rhuk Digital output 256-bit root hardware unique key output to SAES peripheral.
Word 127
Word 128
Word 255
Word 256
Word 375
Word 0
...
...
...
SFW128
SFW255
SFW256
SFW375
SFW0
The lower fuses region is used to store non-volatile, non-secret information that may
require bitwise update during the life of the product.
The middle fuses region is used to store non-volatile, non-secret information that are
written once, in 32-bit words bulk.
The upper fuses region is similar to the middle region, except that it is hidden when in the
BSEC-open state (see Section 4.3.7). Hence it is used to store secrets like symmetric keys
or private asymmetric keys.
Each fuse word w is either “shadowed” or “unshadowed”, as defined by flag bit SFWw in
corresponding BSEC_SFSRx register. A shadowed fuse word is loaded into flops at cold or
warm reset, and can be read quickly by software. An unshadowed fuse word is not read out
of the fuse memory at reset, then stored permanently in flops. It needs to be reloaded from
the fuse memory each time it is needed. See Reading fuses in Section 4.3.5 for details.
Note: The whole OTP space can only be controlled by a secure privileged CPU.
Each individual lower fuse bit is one-time programmable, from 0 to 1. Transitions from 1 to 0
are not possible.
Details on fuse usage are described in Section 5: OTP mapping (OTP).
Programming fuses
When programming is not blocked, lower fuse words can be blown bit-per-bit at different
times. Middle and upper fuses must be programmed 32-bits at a time, only once. As
reprogramming middle and upper fuses can let them with invalid content (an ECC error
might be reported), it is strongly recommended to set PPLOCK = 1 after the first (and only)
programming of the middle and upper fuses.
The procedure for blowing fuse word w is as follows:
1. Write the value to be blown in BSEC_WDR, then set ADDR = w, PROG = 1 and
PPLOCK = 0 in BSEC_OTPCR register.
2. When BUSY bit is cleared in BSEC_OTPSR, verify that PROGFAIL is cleared. If
PROGFAIL is set try again step 1.
3. Reload the fuse word w using BSEC_OTPCR with PROG bit cleared.
4. When BUSY bit is cleared in BSEC_OTPSR, verify that BSEC_FVRw register returns
the correct value. If not, try again step 1.
Note: OTP bits are initially set to 0 and once a bit is set to 1 it cannot be programmed back to 0
(bit stays at 1). Bitfields with 0s in BSEC_WDR are not programmed, while bitfields with 1s
are programmed.
As lower fuse words can be programmed multiple times, when the application requests a
specific bit to be programmed to 1 more than once, BSEC does the burning only once.
After any read or programming request, the BUSY bit is cleared, and BSEC reports the
specific status structure defined in Table 11. When this structure is different than 0 the read
or program operation might have failed, as indicated in the table.
Errors following a BSEC initialization are detailed in Section 4.3.6. Details about reset
management can be found in Section 4.3.17.
When neither BSEC-open nor BSEC-closed state (NVSTATE different than 0x16 or 0x0D),
the security state is considered invalid, and the most conservative security configuration is
applied: that is, fuse programming is disabled, upper fuses read as 0, debug is disabled,
ROM is partially unmapped and shadow registers are read only. When NVSTATE = 0x23,
a confirmed tamper is active in the device (see Section 4.3.17).
Note: On any reset, including hot reset, if the state is BSEC-closed, the BSEC_UNMAPR register
is set to 0xA1C0 DE0D, ensuring the whole boot ROM is visible.
Opening BSEC
BSEC can transition from BSEC-closed to BSEC-open only if the user enters the
programmed 128-bit password via JTAG, and then performs a global reset (JTAG + device),
clearing all secrets.
The recommended JTAG password programming sequence is:
1. Write the four password words to upper fuses words 256 to 259 with PPLOCK bit
cleared in BSEC_OTPCR. JTAG_PSWD0 is stored in word 256, while JTAG_PSWD3
is stored in word 259.
2. Read back password value to verify it is correct
3. Write 0x0 to the same fuse words 256 to 259, with PPLOCK bit set in BSEC_OTPCR.
After this, password words cannot be read nor programmed anymore by the
application.
Closing BSEC
BSEC can transition from BSEC-open to BSEC-closed by blowing some bits such that s[7:0]
becomes greater than r[7:0], or s[7] = 1. Bytes s[7:0] and r[7:0] are defined as follows:
s[7:0] = OR(BSEC_FVR1[31:28]) | OR(BSEC_FVR1[27:24]) | ... |
OR(BSEC_FVR1[3:0])
r[7:0] = AND(BSEC_FVR2[31:28]) | AND(BSEC_FVR2[27:24]) | ... |
AND(BSEC_FVR2[3:0])
With the following conventions:
• “|” is concatenation operand
• OR(bits[1:0])= bit[1] OR bit[0]
• AND(bits[1:0])= bit[1] AND bit[0]
When the device is being closed, the application can limit re-opening cycles to only one
attempt by blowing at least one bit in BSEC_FVR1[27:24]. To reduce re-opening cycles to
zero, the application must blow at least one bit in BSEC_FVR1[31:28].
Note: For the device to become BSEC-closed, the application must perform a BSEC cold or warm
reset.
0xB4 0
0x51 1
0x8A 2
0x6F 3
others undefined
The register is reset to 0xB4 by bsec_hrst. The register is not directly writable. If less than 3,
the current level can be incremented by writing a value of 0x60B166E7 to BSEC_HDPLCR.
The 2-bit INCR field of the BSEC_NEXTHDPLCR register is added to the level given by
BSEC_HDPLSR (but clamped at a ceiling of 3), and the result is output on obk_hdpl[7:0] as
follows.
The obk_hdpl output goes to the SAES where it influences the generation of DHUK, derived
from the RHUK. This mechanism allows keys for a later temporal level to be generated in
advance.
AUTH_HDPL encodes levels in the same way as HDPL field in BSEC_HDPLSR register.
Any attempt to write a non-legal byte value into these fields results in a 0x00 being written in
that byte field.
The register is forced to zero (writes have no effect) whenever the device is BSEC-open.
The dbg_unlocked output, when taking the value of 0xB4, signifies that nonsecure debug is
possible. The dbg_unlocked_sec output, when it also takes the value of 0xB4, signifies that
secure debug is possible.
Both outputs are set to 0xB4 whenever the state is BSEC-open.
Whenever the BSEC state is not BSEC-open, then if HDPL = 0xB4, or AUTH_HDPL is
undefined or indicates a level greater than that given by HDPL, they are both set to 0x00,
otherwise dbg_unlocked takes the value of UNLOCK, and dbg_unlocked_sec takes the
value of AUTH_SEC. This implies that secure boot is enforced on a BSEC-closed device. It
is the responsibility of the customer’s signed code to decide on whether debug becomes
unlocked at a certain level. This decision (i.e. the register write) only has to made once per
power cycle, since the register is on the scratch reset and retains its value across warm
resets.
Note: If a warm reset occurs during a debug session, then during the reset, the debugger
becomes temporarily locked, since HDPL is reset to 0. On a BSEC-open device, it becomes
unlocked again as soon as the BSEC has booted. On a BSEC-closed device, it becomes
unlocked again as soon as HDPL is non-zero and matches or surpasses AUTH_HDPL.
The BSEC_AP_UNLOCK register is forced to zero (writes have no effect) whenever the
state is BSEC-open. The ap_unlocked output, when taking the value 0xB4, indicates that
the debugger can access the CM55 Debug Subsystem. It is set to 0xB4 whenever the state
is BSEC-open, otherwise it is directly driven by the BSEC_AP_UNLOCK register, which is
reset to 0 on a scratch reset.
A rising edge on hide_sec (a confirmed tamper) resets these registers to zero, and close
debug. They are not writeable until the next cold or warm reset.
Note: These registers are on the scratch reset so that if software authorizes a debug, that
authorization survives subsequent warm resets, and doesn’t have to be re-authorized.
When BSEC detects an integrity issue while reading the key information from non-volatile
memory, or when application sets the sticky HKLOCK bit in BSEC_LOCKR, the key is
indicated as invalid. When the key is invalid the SAES peripheral uses a default fixed value.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
FV[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FV[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SPLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
Bits 31:0 SPLOCK{i + 32 * x}: Sticky programming lock for word {i + 32 * x} (i = 0 to 31)
Setting this bit prevents permanent programming for the fuse word {i + 32 * x} until next cold
or warm reset.
0: Fuse word {i + 32 * x} can be burnt in fuse memory array
1: Attempt to program fuse word {i + 32 * x} in OTP memory array is silently ignored
While BUSY is set in BSEC_OTPSR, writes have no effect, and reads return 0.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SWLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SWLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
Bits 31:0 SWLOCK{i + 32 * x}: sticky write lock for shadow register {i + 32 * x} (i = 0 to 31)
When fuse word {i + 32 * x} is shadowed, setting this bit prevents the writing of the shadow
register of this fuse word until next cold or warm reset.
0: Write to shadow register BSEC_FVR{i + 32 * x} is allowed
1: Writes to shadow register BSEC_FVR{i + 32 * x} are silently ignored
While BUSY is set in BSEC_OTPSR, writes have no effect, and reads return 0.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SRLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
Bits 31:0 SRLOCK{i + 32 * x}: sticky reload lock for fuse word {i + 32 * x} (i = 0 to 31)
Setting this bit locks reloading of fuse word {i + 32 * x} from the OTP memory array until next
cold or warm reset.
0: Fuse word {i + 32 * x} loading through BSEC_OTPCR is authorized.
1: Fuse word {i + 32 * x} loading through BSEC_OTPCR is denied until next cold or warm
reset.
While BUSY is set in BSEC_OTPSR, writes have no effect, and reads return 0.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
VLDF{i + 32 * x}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VLDF{i + 32 * x}
r r r r r r r r r r r r r r r r
Bits 31:0 VLDF{i + 32 * x}: Valid flag for shadow register {i + 32 * x} (i = 0 to 31)
This bit represents the validity of the last reload of fuse word {i + 32 * x}.
0: An error occurred while fuse word {i + 32 * x} was last reloaded. The value read from
BSEC_FVR{i + 32 * x} register cannot be relied on.
1: Last reload of fuse word {i + 32 * x} was done without error.
Each VLDF bit is updated when BSEC or the allowed application reloads corresponding fuse
word from the OTP array.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SFW{i + 32 * x}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SFW{i + 32 * x}
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. LASTCID[2:0] Res. Res. Res.
r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PP
Res. PROG Res. Res. Res. Res. ADDR[8:0]
LOCK
rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WRDATA[31:16]
w w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WRDATA[15:0]
w w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SDATA[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDATA[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HK GW
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LOCK LOCK
rs rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
JDATAIN[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
JDATAIN[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
JDATAOUT[31:16]
w w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
JDATAOUT[15:0]
w w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UNMAP[31:16]
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
UNMAP[15:0]
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DBGR
NVSTATE[5:0] Res. Res. Res. Res. Res. Res. Res. Res. Res.
EQ
r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. HVALID Res.
r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DISTU PROG
Res. Res. Res. Res. Res. Res. Res. Res. Res. AMEF PPLMF PPLF SECF DEDF
RBF FAIL
r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OTP OTP OTP HIDE INIT_
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. BUSY
SEC ERR NVIR UP DONE
r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
EPOCH[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EPOCH[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EPOC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
H_SEL
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
AUTH_SEC[7:0] AUTH_HDPL[7:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
UNLOCK[7:0] Res. Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
INCR_HDPL[31:16]
w w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INCR_HDPL[15:0]
w w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. INCR[1:0]
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WOSDATA[31:16]
rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WOSDATA[15:0]
rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo rwo
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
HRC[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HRC[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WRC[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WRC[15:0]
r r r r r r r r r r r r r r r r
10
11
9
8
7
6
5
4
3
2
1
0
Reset value
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
Reset value
0x800 + BSEC_
SPLOCK{i + 32 * x} (i = 31 to 0)
0x4 * x, SPLOCKx
(x=0 to 11) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x830 -
Reserved Res.
0x83C
0x840 + BSEC_
SWLOCK{i + 32 * x} (i = 31 to 0)
0x4 * x SWLOCKx
(x=0 to 11) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x870 -
Reserved Res.
0x87C
0x880 + BSEC_
SRLOCK{i + 32 * x} (i = 31 to 0)
0x4 * x SRLOCKx
(x=0 to 11) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x8B0 -
Reserved Res.
0x8BC
0x8C0 + BSEC_
VLDF{i + 32 * x} (i = 31 to 0)
0x4 * x OTPVLDRx
(x=0 to 11) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x8F0 -
Reserved Res.
0x93C
0x940 + BSEC_SFSRx SFW{i + 32 * x} (i = 31 to 0)
0x4 * x (1)
(x=0 to 11) Reset value x x x x x x x x 0 0 0 0 0 0 0 x x x x 0 x 0 x x x x x x x x x x
0x970 -
Reserved Res.
0xC00
PPLOCK
PROG
LASTCID
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
BSEC_OTPCR ADDR[8:0]
0xC04 [2:0]
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BSEC_WDR WRDATA[31:0]
0xC08
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0xC0C -
Reserved Res.
0xDFC
0xE00 + BSEC_
SDATA[31:0]
0x4 * x SCRATCHRx
(x=0 to 3) Reset value x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
GWLOCK
HKLOCK
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
BSEC_LOCKR
0xE10
Reset value 0 0
BSEC_
JDATAIN[31:0]
0xE14 JTAGINR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BSEC_
JDATAOUT[31:0]
0xE18 JTAGOUTR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0xE1C Reserved Reserved
0xE20 Reserved Res.
BSEC_
UNMAP[31:0]
0xE24 UNMAPR
(1)
Reset value x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
0xE28 -
Reserved Res.
0xE3C
DBGREQ
HVALID
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
BSEC_SR NVSTATE[5:0]
0xE40
Reset value 0 0 0 0 0 0 0 0
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
Reset value
INIT_DONE
PROGFAIL
DISTURBF
OTPNVIR
OTPERR
OTPSEC
HIDEUP
PPLMF
AMEF
DEDF
BUSY
SECF
PPLF
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
BSEC_OTPSR
0xE44
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0
0xE48 -
Reserved Res.
0xE7C
0xE80 + BSEC_
EPOCH[31:0]
0x4 * x EPOCHRx
(x= 0 to 1) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
EPOCH_SEL
BSEC_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0xE88 EPOCHSELCR
Reset value 0
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
BSEC_DBGCR AUTH_SEC[7:0] AUTH_HDPL[7:0] UNLOCK[7:0]
0xE8C
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BSEC_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
UNLOCK[7:0]
0xE90 AP_UNLOCK
Reset value 0 0 0 0 0 0 0 0
BSEC_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
HDPL[7:0]
0xE94 HDPLSR
Reset value 0 0 0 0 0 0 B 4
BSEC_
INCR_HDPL[31:0]
0xE98 HDPLCR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BSEC_NEXTHD INCR
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0xE9C PLCR [1:0]
Reset value 0 0
0xEA0 -
Reserved Reserved
0xEA8
0xEAC -
Reserved Reserved
0xEBC
0xEC0 -
Reserved Reserved
0xF3C
0xF40 + BSEC_
WOSDATA[31:0]
0x4*x WOSCRx
(x=0 to 7) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0xF60 -
Reserved Res.
0xFE4
BSEC_HRCR HRC[31:0]
0xFE8
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BSEC_WRCR WRC[31:0]
0xFEC
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1. See register description.
STM32N6x7xx devices have 12032 OTP (one-time programmable) bits, which can be
read-accessed in 376 words: BSEC_OTP_DATAx (x = 0 to 375).
OTP bits are read or programmed by the BSEC (boot, security, and OTP control),as detailed
in Section 4: Boot and security control (BSEC). They are organized in regions:
• Lower OTP region (OTP0 to OTP127)
• Mid OTP region (OTP128 to OTP255)
• Upper OTP region (OTP256 to OTP375)
Before being programmed, the OTP bits are at 0. The OTP words are listed in Table 17:
• Description: acronym and function. Words marked “Available to customer” have no
predefined usage.
• Shadowed: loaded into a register after reset, can be read without a reload. A shadowed
word may be sticky-write-locked by earlier software (such as BOOTROM). The first ten
shadowed words are never writable.
• Prog-locked by ST: words locked during manufacturing.
OTP19 BOOTROM_CONFIG_10 No No
OTP20 BOOTROM_CONFIG_11 No No
OTP21 BOOTROM_CONFIG_12 No No
OTP22 BOOTROM_CONFIG_13 No No
OTP23 BOOTROM_CONFIG_14 No Yes
OTP24 BOOT_TZ_EPOCH0 No No
OTP25 BOOT_TZ_EPOCH1 No No
OTP26 BOOT_TZ_EPOCH2 No No
OTP27 BOOT_TZ_EPOCH3 No No
OTP28 BOOT_TZ_EPOCH4 No No
OTP29 BOOT_TZ_EPOCH5 No No
OTP30 BOOT_TZ_EPOCH6 No No
OTP31 BOOT_TZ_EPOCH7 No No
OTP32 BOOT_NS_EPOCH0 No No
OTP33 BOOT_NS_EPOCH1 No No
OTP34 BOOT_NS_EPOCH2 No No
OTP35 BOOT_NS_EPOCH3 No No
OTP36 BOOT_NS_EPOCH4 No No
OTP37 BOOT_NS_EPOCH5 No No
OTP38 BOOT_NS_EPOCH6 No No
OTP39 BOOT_NS_EPOCH7 No No
OTP40 to OTP55 Available to customer No No
OTP56 TAMP_EN No No
OTP57 TAMP_CFM No No
OTP58 TAMP_CFG No No
OTP59 to OTP95 Available to customer No No
OTP96 to OTP99 Reserved - -
OTP100 to OTP103 Reserved - -
OTP104 to OTP123 Reserved - -
OTP124 HCONF1 Yes No
OTP125 to OTP127 Reserved - -
Mid OTP region
OTP128 STM32_CERTIF0 No Yes
OTP129 STM32_CERTIF1 No Yes
OTP130 STM32_CERTIF2 No Yes
OTP166 OTP_ROT_HASH6 No No
OTP167 OTP_ROT_HASH7 No No
OTP168 ST_RSSE_EDMK_DERIV_CSTE_FUSE No Yes
OTP169 OTP_MAC1_ADDR_LOW No No
OTP170 OTP_MAC1_ADDR_HIGH No No
OTP171 OTP_MAC2_ADDR_LOW No No
OTP172 OTP_MAC2_ADDR_HIGH No No
OTP173 to OTP255 Available to customer No No
Upper OTP region
OTP256 OTP_RMA_LOCK_PSWD0 Yes No
OTP257 OTP_RMA_LOCK_PSWD1 Yes No
OTP258 OTP_RMA_LOCK_PSWD2 Yes No
OTP259 OTP_RMA_LOCK_PSWD3 Yes No
OTP260 to OTP363 OEM secrets available to customer No No
OTP364 OEM_SECRET_FOR_CRYPTED_BOOT0 No No
OTP365 OEM_SECRET_FOR_CRYPTED_BOOT1 No No
OTP366 OEM_SECRET_FOR_CRYPTED_BOOT2 No No
OTP367 OEM_SECRET_FOR_CRYPTED_BOOT3 No No
OTP368 STM32PRVKEY0 No Yes
OTP369 STM32PRVKEY1 No Yes
OTP370 STM32PRVKEY2 No Yes
OTP371 STM32PRVKEY3 No Yes
OTP372 STM32PRVKEY4 No Yes
OTP373 STM32PRVKEY5 No Yes
OTP374 STM32PRVKEY6 No Yes
OTP375 STM32PRVKEY7 No Yes
- BOOTROM_CONFIG_3 -
OTP12 [1-0xFFFF] → [1-32]: Value of monotonic counter is X, where
[31:0] st_fsbl_monotonic_counter
X is the position of the most significant bit at 1
- BOOTROM_CONFIG_4 Boot source configuration word
– 0 (af_nopull_ls): AF; no pull; low speed
– 1 (af_nopull_ms): AF; no pull; medium speed
– 2 (af_nopull_hs): AF; no pull; high speed
– 3 (af_pullup_ls): AF; pull up; low speed
– 4 (af_pullup_ms): AF; pull up; medium speed
– 5 (af_pullup_hs): AF; pull up; high speed
– 6 (af_pulldown_ls): AF; pull down; low speed
– 7 (af_pulldown_ms): AF; pull down; medium speed
[3:0] mode0
– 8 (af_pulldown_hs): AF; pull down; high speed
– 9 (gpio_out_high): GPIO output high
– 10 (gpio_out_low): GPIO output low
– 11 (gpio_in): GPIO input
– 12 (gpio_open_nopull): GPIO open drain; No pull
– 13 (gpio_open_pullup): GPIO open drain; pull up
– 14 (gpio_open_pulldown): GPIO open drain; pull down
– 15 (gpio_analog): GPIO analog mode
[7:4] afmux0 Values between 0 and 15
– [0-15]: pin ID between 0 and 15 for GPIOA to GPIOG
OTP13 and GPIOP
[11:8] pin0 – [0-12]: pin ID between 0 and 12 for GPION
– [0-8]: pin ID between 0 and 8 for GPIOH and GPIOQ
– [0-5]: pin ID between 0 and 5 for GPIOO
– 0: reserved
– 1 (PA): Bank A
– 2 (PB): Bank B
– 3 (PC): Bank C
– 4 (PD): Bank D
– 5 (PE): Bank E
– 6 (PF): Bank F
[15:12] port0
– 7 (PG): Bank G
– 8 (PH): Bank H
– 9 (PN): Bank N
– 10 (PO): Bank O
– 11 (PP): Bank P
– 12 (PQ): Bank Q
– 0b1111: Invalid configuration
[19:16] mode1 idem BOOTROM_CONFIG_4.mode0
[23:20] afmux1 idem BOOTROM_CONFIG_4.afmux0
- BOOTROM_CONFIG_9 -
– 0 (closed_unlocked): device in CLOSED_UNLOCKED state.
Secure boot is not enforced (OEM FSBL authentication is
not mandatory).
[3:0] secure_boot
– 1 (closed_locked): device in CLOSED_LOCKED state.
Secure boot is enforced (OEM FSBL authentication is
mandatory).
– 0 (cryp): BootROM uses CRYP to decrypt FSBL
[4] fsbl_decrypt_prio
– 1 (saes): BootROM uses SAES to decrypt FSBL
– 0 (no): provisioning not done or not finished successfully.
Device is CLOSED_LOCKED_UNPROVD and accepts only
[8:5] prov_done ST-BootExtension FSBL.
– 1 (yes): provisioning successfully completed. Device is
CLOSED_LOCKED_PROVD and accepts only OEM FSBL.
OTP18
– 0 (yes): fingerprint feature is disabled
[12:9] enable_fingerprint
– 1 (no): fingerprint feature is enabled
[15:13] Reserved Reserved
Number of OTP words located in upper area
[360 -nb_added_stsecrets ... 359] provisioned (in encrypted
[21:16] nb_added_secrets mode) with ST secrets. These will be decoded and used by
RSSE fw. Coding up to 64 ST secrets to provision in EWS
(with DEV_BOOT)
– 0: do not lock debug enabling
[25:22] debug_lock
– [1-64]: lock debug enabling
– 0: the BootROM only sets bsec_epoch0
[26] ns_epoch_enable
– 1: the BootROM set both bsec_epoch0 and bsec_epoch1
[31:27] Reserved Reserved
- BOOTROM_CONFIG_10 -
[17:0] Reserved Reserved
– 1: 0xA2B3
– 2: 0xAA74
– 3: 0xA6BA
[20:18] rng_htcr_value – 4: 0x9AAE
– 5: 0x72AC
– 6: 0xAAC7
– others: RNG HTCR not modified
– 0: reserved
– 1 (PA): Bank A
– 2 (PB): Bank B
– 3 (PC): Bank C
OTP19 – 4 (PD): Bank D
– 5 (PE): Bank E
[24:21] dev_boot_port – 6 (PF): Bank F
– 7 (PG): Bank G
– 8 (PH): Bank H
– 9 (PN): Bank N
– 10 (PO): Bank O
– 11 (PP): Bank P
– 12 (PQ): Bank Q
– [0-15]: pin ID between 0 and 15 for GPIOA to GPIOG,
and GPIOP
[28:25] dev_boot_pin – [0-12]: pin ID between 0 and 12 for GPION
– [0-8]: pin ID between 0 and 8 for GPIOH and GPIOQ
– [0-5]: pin ID between 0 and 5 for GPIOO
[31:29] Reserved Reserved
- BOOTROM_CONFIG_11 -
OTP20 [1-0xFFFF] → [1-32]: Value of monotonic counter is X, where
[31:0] oem_fsbl_monotonic_counter
X is the position of the most significant bit at 1
- BOOTROM_CONFIG_12 -
OTP21 [1-0xFFFF] → [33-64]: Value of monotonic counter is 32 + X,
[31:0] oem_fsbl_monotonic_counter
where X is the position of the most significant bit at 1
OTP22 - BOOTROM_CONFIG_13 Reserved
OTP23 - BOOTROM_CONFIG_14 Reserved
OTP24 - BOOTROM_TZ_EPOCH0
OTP25 - BOOTROM_TZ_EPOCH1
OTP26 - BOOTROM_TZ_EPOCH2
OTP27 - BOOTROM_TZ_EPOCH3 If the highest blown bit is the nth of these 256 bits,
OTP28 - BOOTROM_TZ_EPOCH4 the boot ROM sets BSEC3_EPOCH_TZ = n
OTP29 - BOOTROM_TZ_EPOCH5
OTP30 - BOOTROM_TZ_EPOCH6
OTP31 - BOOTROM_TZ_EPOCH7
OTP32 - BOOTROM_NS_EPOCH0
OTP33 - BOOTROM_NS_EPOCH1
OTP34 - BOOTROM_NS_EPOCH2
OTP35 - BOOTROM_NS_EPOCH3 If the highest blown bit is the nth of these 256 bits,
OTP36 - BOOTROM_NS_EPOCH4 the boot ROM sets BSEC3_EPOCH_NS = n
OTP37 - BOOTROM_NS_EPOCH5
OTP38 - BOOTROM_NS_EPOCH6
OTP39 - BOOTROM_NS_EPOCH7
OTP40
to - Customer zone Customer values
OTP55
- TAMP_EN -
[0] tamp1_enable 0: disabled, 1: enabled
[1] tamp2_enable 0: disabled, 1: enabled
[2] tamp3_enable 0: disabled, 1: enabled
[3] tamp4_enable 0: disabled, 1: enabled
[4] tamp5_enable 0: disabled, 1: enabled
[5] tamp6_enable 0: disabled, 1: enabled
[6] tamp7_enable 0: disabled, 1: enabled
[7] tamp8_enable 0: disabled, 1: enabled
[8] itamp1_enable 0: disabled, 1: enabled
OTP56 [9] itamp2_enable 0: disabled, 1: enabled
[10] itamp3_enable 0: disabled, 1: enabled
[11] itamp4_enable 0: disabled, 1: enabled
[12] itamp5_enable 0: disabled, 1: enabled
[13] itamp6_enable 0: disabled, 1: enabled
[14] itamp7_enable 0: disabled, 1: enabled
[15] itamp8_enable 0: disabled, 1: enabled
[16] itamp9_enable 0: disabled, 1: enabled
[17] Reserved Reserved
[18] itamp11_enable 0: disabled, 1: enabled
[31:19] Reserved Reserved
- TAMP_CFM -
[0] tamp1_confirmed 0: potential tamper, 1: confirmed tamper
[1] tamp2_confirmed 0: potential tamper, 1: confirmed tamper
[2] tamp3_confirmed 0: potential tamper, 1: confirmed tamper
[3] tamp4_confirmed 0: potential tamper, 1: confirmed tamper
[4] tamp5_confirmed 0: potential tamper, 1: confirmed tamper
[5] tamp6_confirmed 0: potential tamper, 1: confirmed tamper
[6] tamp7_confirmed 0: potential tamper, 1: confirmed tamper
[7] tamp8_confirmed 0: potential tamper, 1: confirmed tamper
[8] itamp1_confirmed 0: potential tamper, 1: confirmed tamper
OTP57 [9] itamp2_confirmed 0: potential tamper, 1: confirmed tamper
[10] itamp3_confirmed 0: potential tamper, 1: confirmed tamper
[11] itamp4_confirmed 0: potential tamper, 1: confirmed tamper
[12] itamp5_confirmed 0: potential tamper, 1: confirmed tamper
[13] itamp6_confirmed 0: potential tamper, 1: confirmed tamper
[14] itamp7_confirmed 0: potential tamper, 1: confirmed tamper
[15] itamp8_confirmed 0: potential tamper, 1: confirmed tamper
[16] itamp9_confirmed 0: potential tamper, 1: confirmed tamper
[17] Reserved Reserved
[18] itamp11_confirmed 0: potential tamper, 1: confirmed tamper
[31:19] Reserved Reserved
- TAMP_CFG -
[1:0] tamp1_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
[3:2] tamp2_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
[5:4] tamp3_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
[7:6] tamp4_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
OTP58
[9:8] tamp5_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
[11:10] tamp6_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
[13:12] tamp7_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
[15:14] tamp8_cfg 00: level low, 01: level high, 10: edge falling, 11: edge rising
[31:16] Reserved Reserved
OTP59
to - Reserved Reserved
OTP95
OTP96
to - Reserved Reserved
OTP99
OTP100
to - Reserved Reserved
OTP102
OTP103 - Reserved Reserved
OTP104
to - Reserved Reserved
OTP123
- HCONF1 -
[0] IWDG1_HW IWDG1 start on reset
[1] IWDG1_FZ_STOP IWDG1 freeze in Stop mode
[2] IWDG1_FZ_STANDBY IWDG1 freeze in Standby mode
[9:3] Reserved Reserved
[10] RST_STOP Reset caused if the device is put in Stop mode
[11] RST_STDBY Reset caused if the device is put in Standby mode
– 0: BOR disabled
[12] SELINBORH
– 1: BOR = 2.7 V
VDDIO5 I/O segment below 2.5 V for I/O mode.
[13] HSLV_VDDIO5
OTP124 The I/O segment is used by SDMMC2 port.
VDDIO4 I/O segment below 2.5 V for I/O mode (I/O segment
[14] HSLV_VDDIO4
used by SDMMC1 port)
VDDIO3 I/O segment below 2.5 V for I/O mode (I/O segment
[15] HSLV_VDDIO3
used by XSPIM port 2)
VDDIO2 I/O segment below 2.5 V for I/O mode (I/O segment
[16] HSLV_VDDIO2
used by XSPIM port 1)
[17] HSLV_VDD Main I/O segment below 2.5 V for I/O mode
[19:18] Reserved Reserved
– 0: scan and bist available
[20] DFT_DISABLE
– 1: scan and bist only available on an OPEN part
[31:21] Reserved Reserved
OTP125
to - Reserved Reserved
OTP127
OTP128 STM32CERTIF0
OTP129 STM32CERTIF1
OTP130 STM32CERTIF2
OTP131 STM32CERTIF3
OTP132 STM32CERTIF4
OTP133 STM32CERTIF5
OTP134 STM32CERTIF6
OTP135 STM32CERTIF7 STM32 device certificate
OTP136 STM32CERTIF8 (signature of the public key)
OTP137 STM32CERTIF9
OTP138 STM32CERTIF10
OTP139 STM32CERTIF11
OTP140 STM32CERTIF12
OTP141 STM32CERTIF13
OTP142 STM32CERTIF14
OTP143 STM32CERTIF15
OTP144 STM32PUBKEY0
OTP145 STM32PUBKEY1
OTP146 STM32PUBKEY2
OTP147 STM32PUBKEY3
OTP148 STM32PUBKEY4
OTP149 STM32PUBKEY5
OTP150 STM32PUBKEY6
OTP151 STM32PUBKEY7
STM32 device public key
OTP152 STM32PUBKEY8
OTP153 STM32PUBKEY9
OTP154 STM32PUBKEY10
OTP155 STM32PUBKEY11
OTP156 STM32PUBKEY12
OTP157 STM32PUBKEY13
OTP158 STM32PUBKEY14
OTP159 STM32PUBKEY15
OTP160 OTP_ROT_HASH0
OTP161 OTP_ROT_HASH1
OTP162 OTP_ROT_HASH2
OTP163 OTP_ROT_HASH3
Hash of Table of hashes of OEM public keys
OTP164 OTP_ROT_HASH4
OTP165 OTP_ROT_HASH5
OTP166 OTP_ROT_HASH6
OTP167 OTP_ROT_HASH7
ST Encryption Decryption Master Key Derivation
OTP168 ST_RSSE_EDMK_DERIV_CSTE_FUSE
constant
OTP169 OTP_MAC1_ADDR_LOW
MAC_ADDR1
OTP170 OTP_MAC1_ADDR_HIGH
OTP171 OTP_MAC2_ADDR_LOW
MAC_ADDR2
OTP172 OTP_MAC2_ADDR_HIGH
OTP173 to
Available to customer -
OTP255
OTP256 OTP_RMA_LOCK_PSWD
OTP257 OTP_RMA_LOCK_PSWD
RMA password
OTP258 OTP_RMA_LOCK_PSWD
OTP259 OTP_RMA_LOCK_PSWD
OTP260 to
OEM secrets available to customer -
OTP363
OTP364 OEM_SECRET_FOR_CRYPTED_BOOT0
OTP365 OEM_SECRET_FOR_CRYPTED_BOOT1
OEM secret used to derive FSBL decryption key
OTP366 OEM_SECRET_FOR_CRYPTED_BOOT2
OTP367 OEM_SECRET_FOR_CRYPTED_BOOT3
OTP368 STM32PRVKEY0
OTP369 STM32PRVKEY1
OTP370 STM32PRVKEY2
OTP371 STM32PRVKEY3
STM32 device private key (ST)
OTP372 STM32PRVKEY4
OTP373 STM32PRVKEY5
OTP374 STM32PRVKEY6
OTP375 STM32PRVKEY7
6.1 Introduction
Resource isolation framework (RIF) is a set of hardware blocks designed to enforce and
manage isolation of STM32 hardware resources like memory and peripherals. Some
resources (such as GP/HPDMA) manage their own security configuration internally
(they are configured locally). Such resources are called “RIF-aware”. Most resources are
“non-RIF-aware”. The RIFSC centralizes the security configuration of such non-RIF-aware
resources.
6.3.2 RISUP
RISUP blocks are instantiated in front of the AHB configuration port of non-RIF-aware
peripherals to filter configuration accesses.
Each non-RIF-aware peripheral is assigned a unique “RISUP index” p < 128. Whenever the
RISUP in front of peripheral p blocks an illegal access, it sends an “illegal access event”
pulse to the IAC. The IAC records this event in the IAFp bit of the relevant IAC_ISRx
register. Thus, the RISUP index is aligned with the IAC index.
For x < 4 and i < 32, the filtering is determined as follows.
• If RIFSC_RISC_SECCFGx[i] = 1, then nonsecure accesses to peripheral p = i + 32x
are blocked. Also, nonsecure world attempts to program RCC registers to turn off the
clock of (or reset) peripheral p are blocked.
10
11
9
8
7
6
SPI6/I2S6 5
4
3
SPI3/I2S3 2
SPI2/I2S2 1
SPI1/I2S1 0
FDCAN1
USART6
USART3
USART2
USART1
UART9
UART8
UART7
UART5
UART4
TIM5
TIM4
TIM3
TIM2
TIM1
SAI2
SAI1
SPI5
SPI4
I3C2
I3C1
I2C4
I2C3
I2C2
I2C1
-
..
GFXTIM
LPTIM5
LPTIM4
LPTIM3
LPTIM2
LPTIM1
UCPD1
MDIOS
TIM18
TIM17
TIM16
TIM15
TIM14
TIM13
TIM12
TIM10
TIM11
MDF1
ADF1
ETH1
TIM9
TIM8
TIM7
TIM6
-
..
WWDG
CRYP1
ADC12
XSPIM
XSPI3
XSPI2
XSPI1
MCE4
MCE3
MCE2
MCE1
HASH
IWDG
SAES
DCMI
RNG
FMC
CRC
PKA
-
-
-
-
-
-
-
-
..
109
108
107
106
105
104
103
LTDC_CMN 102
101
100
119
118
117
116
115
114
113
112
110
111
99
98
97
96
GFXMMU
LTDC_L2
LTDC_L1
ICACHE
DMA2D
VENC
JPEG
GPU
NPU
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
The RISUP generates a bus error if an instruction fetch arrives at the peripheral.
VENCRAM
BKPSRAM
AHBRAM2
AHBRAM1
FLEXRAM
GPDMA1
HPDMA1
GPIOA
RTC
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
...
RCC security controls 191 to 160 (RIFSC_RISC_PRIVCFGR5 / SECCFGR5 / RCFGLOCKR5)
191
190
189
188
187
186
185
184
183
XSPIPHYCOMP 182
181
180
179
178
177
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
NPU_RAM3
NPU_RAM2
NPU_RAM1
NPU_RAM0
XSPIPHY2
XSPIPHY1
RAMCFG
GPIOQ
GPIOO
GPIOG
GPION
GPIOH
GPIOD
GPIOC
GPIOP
GPIOE
GPIOB
GPIOF
MCO2
MCO1
HDP
DTS
-
-
-
-
-
-
Note: For the RIF-aware peripherals, it is the responsibility of the trusted domain software to make
sure this security configuration of the control of the clock and reset of the peripheral is
consistent with the internal security configuration of this peripheral.
6.3.4 RIMU
The security attributes (CID, security, privilege) of accesses made by a non-RIF-aware
peripheral that is an AXI bus master, can be configured in RIMC_ATTRx registers, where
x is the “RIMU index” of the peripheral. Table 22 gives the index of each of these AXI bus
master peripherals, and the index of the related RISUP protecting the configuration port of
this peripheral. If nonsecure world software is permitted to configure the peripheral, then the
RIMU_ATTRx[MSEC] setting is ignored, and all AXI accesses initiated by the peripheral are
forced to be nonsecure too. This override mechanism is referred to as “secure guard”.
..
9 DCMIPP 93
10 LTDC_L1 103
11 LTDC_L2 104
12 VENC 97
RIMC registers must be initialized by the secure privileged software after the device reset.
Optionally, this software can set the GLOCK bit in RIMC_CR, preventing further writes to all
RIMC registers. This bit can only be cleared by a power-on reset.
The RISC_RIMC_CR register contains a DAPCID field that gives the CID value used by
debugger (DAP) accesses onto the AXI bus. The reset value of this register is 0x7.
All RISAFs treat a 0x7 as a legal CID value, regardless of their configuration. The secure
privileged master can reprogram the DAPCID to allow the DAP to mimic another
compartment (for example, to debug the security configuration).
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. GLOCK
rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SEC{i + 32 * x}
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SEC{i + 32 * x}
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PRIV{i + 32 * x}
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PRIV{i + 32 * x}
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Bits 31:0 PRIV{i + 32 * x}: privileged-only access permission for peripheral {i + 32 * x} (i = 0 to 31)
0: Privileged and unprivileged data access are granted to the peripheral {i + 32 * x}.
1: Privileged data access only are granted to the peripheral {i + 32 * x}.
Note: If corresponding SEC{i + 32 * x} bit is set in RIFSC_RISC_SECCFGRx, this bit can only
be written by a secure privileged application.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RLOCK{i + 32 * x}
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. DAPCID[2:0] Res. Res. Res. Res. Res. Res. Res. GLOCK
rw rw rw rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. MPRIV MSEC Res. MCID[2:0] Res. Res. Res. Res.
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PPEN{i}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PPEN{i}
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PPEN{i + 32}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PPEN{i + 32}
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PPEN{i + 64}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PPEN{i + 64}
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PPEN{i + 96}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PPEN{i + 96}
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PPEN{i + 128}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PPEN{i + 128}
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PPEN{i + 160}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PPEN{i + 160}
r r r r r r r r r r r r r r r r
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
name
9
8
7
6
5
4
3
2
1
0 GLOCK
RIFSC_RISC
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x000 _CR
Reset value 0
0x010 + RIFSC_RISC_
SEC{i + 32 * x}
0x4 * x SECCFGRx
(x = 0 to 5)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x024
0x028-
Reserved Reserved
0x02C
0x030 + RIFSC_RISC_
PRIV{i + 32 * x}
0x4 * x PRIVCFGRx
(x = 0 to 5)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x044
0x048-
Reserved Reserved
0x04C
0x050 + RIFSC_RISC_
RLOCK{i + 32 * x}
0x4 * x RCFGLOCKRx
(x = 0 to 5)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x064
0x68-
Reserved Reserved
0xBFC
GLOCK
RIFSC_RIMC DAPCID
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0xC00 _CR [2:0]
Reset value 1 1 1 0
0xC04-
Reserved Reserved
0xC0C
0xC10 +
MPRIV
RIFSC_RIMC
MSEC
0x4 * x
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
MCID[2:0]
(x = 0 to _ATTRx
12) Last
address: Reset value 0 0 0 0 0
0xC40
0xC44 to
Reserved Reserved
0xFAC
RIFSC_PPSR0 PPEN{i}
0xFB0
Reset value 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
RIFSC_PPSR1 PPEN{i + 32}
0xFB4
Reset value 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
RIFSC_PPSR2 PPEN{i + 64}
0xFB8
Reset value 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1
RIFSC_PPSR3 PPEN{i + 96}
0xFBC
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1
RIFSC_PPSR4 PPEN{i + 128}
0xFC0
Reset value 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
RIFSC_PPSR5 PPEN{i + 160}
0xFC4
Reset value 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1
RISAF4/5/6 are used to partition the 2-Mbyte NPU RAM. This memory is implemented as
four RAM cuts, each with its own AXI target port, but using an interleaved (re-mapped)
addressing scheme. To retain the software normal view of memory addressing, the RISAFs
protecting these RAMs are placed on the three entry ports of the NPU interconnect. The
user must program an identical partitioning into each of the three RISAFs. These RISAFs
are furnished with two extra regions that the secure privileged software must configure to be
transparent (permissive) to all accesses either side of the NPU RAMs.
As summarized in the CID management column of Table 24, the AHB bus does not carry
CID information (it is fixed at 0). The RISAFs on the AHB bus only filter on security and
privilege, in read or in write (using RDENC0 or WRENC0 bits, respectively). All accesses
are effectively assumed to be owned by the CPU. When a secure privileged application
delegates to the nonsecure world the access control configuration of subregions in a
nonsecure base region, DCEN must be set, and DCCID and SRCID must stay at 0 for this
specific base region.
As summarized in Table 24 the AXI bus does carry CID information. All AHB configuration
accesses to AXI RISAF registers are assumed to come from CID1. When a secure
privileged application delegates to the nonsecure world the access control configuration of
subregions in a nonsecure base region, DCEN must be set and DCCID must equal 0x1.
The AHB configuration port of the CACHEAXI is protected by a small RISAF that only offers
two base regions. These are expected to be configured to cover the register address spaces
either side of the registers controlling cache invalidation. The cache invalidation operation
can thus be reserved for use only by the secure privileged software, because the controlling
registers are left in the default region 0.
IAC
Memory-mapped
... sck sck
MSv67866V1
risaf_sck System bus clock, also used by the protected memory controller
Digital input
risaf_hclk AHB bus clock
risaf_ilac Digital output Illegal access signal to IAC
Subregion 2B
(*) Base region filtering
Subregion 1A Subregion 2A does not apply
Base region 1 (nested) Base region 2 (nested)
Note: When a base or subregion is disabled, the associated filtering is disabled as well. For
access types 3 or 4 (detailed above), base region filtering rules do not apply.
Note: The number of regions, the region watermark granularity, and the address space size
depend upon the RISAF instance (see Section 7.3).
At any time the secure privileged software can lock the RISAF configuration until the next
reset, by setting the GLOCK bit in RISAF_CR. Subregion registers are the exception to this
rule, as explained in Configuring subregions in RISAF.
If the first solution introduces too many constraints, a workaround is shown in Figure 7.
Base region
Base region #1
1 filtering applies 2 filtering applies 3a 3b
(#15, same as #1)
Base region 15 (same rights) Base region 15 (same rights) Base region 15 Base region 15 (disabled)
MSv67870V2
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. GLOCK
rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. IAEF CAEF
r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. IAEF CAEF
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. IANRW Res. IASEC IAPRIV Res. IACID[2:0]
r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IADD[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IADD[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV
Res. Res. Res. Res. Res. Res. Res. Res.
C7 C6 C5 C4 C3 C2 C1 C0
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. SEC Res. Res. Res. Res. Res. Res. Res. BREN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
BADDSTART[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BADDSTART[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
BADDEND[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BADDEND[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WREN WREN WREN WREN WREN WREN WREN WREN
Res. Res. Res. Res. Res. Res. Res. Res.
C7 C6 C5 C4 C3 C2 C1 C0
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RDEN RDEN RDEN RDEN RDEN RDEN RDEN RDEN
Res. Res. Res. Res. Res. Res. Res. Res.
C7 C6 C5 C4 C3 C2 C1 C0
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRCID[ SRCID[ SRCID[
Res. Res. WREN RDEN Res. Res. PRIV SEC Res. Res. Res. RLOCK SREN
2] 1] 0]
rw rw rw rw rw rw rw rs rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SADDSTART[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SADDSTART[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SADDEND[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SADDEND[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. DCCID[2:0] Res. DCEN Res. Res.
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRCID[ SRCID[ SRCID[
Res. Res. WREN RDEN Res. Res. PRIV SEC Res. Res. Res. RLOCK SREN
2] 1] 0]
rw rw rw rw rw rw rw rs rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SADDSTART[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SADDSTART[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SADDEND[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SADDEND[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. DCCID[2:0] Res. DCEN Res. Res.
rw rw rw rw
10
11
name
9
8
7
6
5
4
3
2
1
0 GLOCK
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
RISAF_CR
0x000
Reset value 0
CAEF
IAEF
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
RISAF_IASR
0x008
Reset value 0 0
CAEF
IAEF
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
RISAF_IACR
0x00C
Reset value 0 0
0x010-
Reserved Reserved
0x01C
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
name
9
8
7
6
5
4
3
2
1
0
IANRW
IAPRIV
IACID
IASEC
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
RISAF_IAESR
0x020 [2:0]
Reset value 0 0 0 0 0 0
RISAF_IADDR IADD[31:0]
0x024
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x028-
Reserved Reserved
0x03C
0x040 + RISAF_REGx
PRIV7
PRIV6
PRIV5
PRIV4
PRIV3
PRIV2
PRIV1
PRIV0
BREN
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
SEC
0x040*(x-1) _CFGR
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0
0x3C0
0x044 + RISAF_REGx
BADDSTART[31:0]
0x40*(x-1) _STARTR
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x3C4
0x048 + RISAF_REGx
BADDEND[31:0]
0x40*(x-1) _ENDR
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0FFF
0x3C8
0x04C +
WRENC7
WRENC6
WRENC5
WRENC4
WRENC3
WRENC2
WRENC1
WRENC0
RDENC7
RDENC6
RDENC5
RDENC4
RDENC3
RDENC2
RDENC1
RDENC0
0x40*(x-1) RISAF_REGx
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
(x=1 to 15) _CIDCFGR
Last
address:
0x3CC Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x050 +
RLOCK
RISAF_REGx
WREN
SRCID
RDEN
SREN
PRIV
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x40*(x-1)
_ACFGR SEC [2:0]
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0
0x3D0
0x054 + RISAF_REGx
SADDSTART[31:0]
0x40*(x-1) _ASTARTR
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x3D4
0x058 + RISAF_REGx
SADDEND[31:0]
0x40*(x-1) _AENDR
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x3D8
0x05C + RISAF_REGx DCCID
DCEN
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
RISAF_ SRCID
RDEN
SREN
PRIV
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
SEC
0x40*(x-1)
(x=1 to 15) REGx_BCFGR [2:0]
Last
address: Reset value 0 0 0 0 0 0 0 0 0
0x3E0
0x064 + RISAF_REGx
SADDSTART[31:0]
0x40*(x-1) _BSTARTR
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x3E4
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
name
9
8
7
6
5
4
3
2
1
0
0x068 + RISAF_REGx
SADDEND[31:0]
0x040*(x-1) _BENDR
(x=1 to 15)
Last
address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0FFF
0x3E8
0x06C + RISAF_REGx DCCID
DCEN
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x40*(x-1) _BNESTR [2:0]
(x=1 to 15)
Last
address: Reset value 0 0 0 0
0x3EC
10
11
9
8
7
6
SPI6/I2S6 5
4
3
SPI3/I2S3 2
SPI2/I2S2 1
SPI1/I2S1 0
FDCAN1
USART6
USART3
USART2
USART1
UART9
UART8
UART7
UART5
UART4
-
TIM5
TIM4
TIM3
TIM2
TIM1
SAI2
SAI1
SPI5
SPI4
I3C2
I3C1
I2C4
I2C3
I2C2
I2C1
Peripherals 63 to 32
63
SYSCONF 62
61
60
59
58
57
OTG1_HS 56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
OTG1_FS
SPDIFRX
SDMMC2
SDMMC1
GB-ETH
GFXTIM
LPTIM5
LPTIM4
LPTIM3
LPTIM2
LPTIM1
MDIOS
TIM18
TIM17
TIM16
TIM15
TIM14
TIM13
TIM12
TIM10
UCPD
TIM11
MDF1
-
ADF1
TIM9
TIM8
TIM7
TIM6
Peripherals 95 to 64
95
94
93
CSI2HOST 92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
VREFBUF
DCMIPP
WWDG
CRYP1
ADC12
XSPIM
XSPI3
XSPI2
XSPI1
MCE4
MCE3
MCE2
MCE1
HASH
IWDG
-
SAES
-
-
-
-
-
-
-
DCMI
RNG
FMC
CRC
PKA
8.4
8.4.1
RIFSC 158 - 126
RM0486
...
- 148 - 116
RISAF9 (VENCRAM) 147 - 115
(memory gate)
peripheral #n
peripheral #1
RIF-protected
RIF-protected
RIFcomponent
RISAF8 (CACHAXI) 146 - 114
RISAF7 (FLEXRAM) 145 - 113
RISAF6 (CPU_MST) 144 - 112
RM0486 Rev 2
RISAF3 (AXISRAM1) 141 - 109
iac_it
IAC ISR/ICR IER
RISAF2 (AXISRAM0) 140 - 108
RISAF1 (TCM) 139 - 107
control IAC 138 NPU 106
iac_hclk
Table 28. Peripheral indexes in IAC (continued)
sec_irq
TAMP 134 LTDC_CMN 102
RTC 133 DMA2D 101
CPU
- 132 GFXMMU 100
Trusted CPU
HPDMA1 131 GPU 99
GPDMA1 130 ICACHE 98
EXTI 129 VENC 97
MSv67853V2
CM55 128 JPEG 96
279/4691
Illegal access controller (IAC)
283
Illegal access controller (IAC) RM0486
IAC Illegal access error IAF IAIE Set IAF bit in IAC_ICR
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IAIE{i + 32 * x}
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IAIE{i + 32 * x}
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Bits 31:0 IAIE{i + 32 * x}: Illegal access interrupt enable for peripheral {i + 32 * x} (i = 0 to 31)
Each bit is set to unmask illegal access events from peripheral {i + 32 * x}.
0: Illegal access event from peripheral {i + 32 * x} does not generate interrupt (masked).
1: Illegal access event from peripheral {i + 32 * x} can generate interrupts (unmasked).
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IAF{i + 32 * x}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IAF{i + 32 * x}
r r r r r r r r r r r r r r r r
Bits 31:0 IAF{i + 32 * x}: Illegal access interrupt enable for peripheral {i + 32 * x} (i = 0 to 31)
Each bit is set when an illegal access event occurs in the peripheral {i + 32 * x} (see
Section 8.3 for details). This bit is cleared when the corresponding IAF bit is set in IAC_ICRx.
0: No illegal access event detected for peripheral {i + 32 * x} (since reset or the last time this
bit was cleared).
1: At least one illegal access event has been detected for peripheral {i + 32 * x} (since the last
time this bit was cleared).
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IAF{i + 32 * x}
w w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IAF{i + 32 * x}
w w w w w w w w w w w w w w w w
Bits 31:0 IAF{i + 32 * x}: Illegal access flag clear for peripheral {i + 32 * x} (i = 0 to 31)
Setting each bit clears the status flag of the illegal access event {i + 32 * x} in IAC_ISRx.
0: IAF {i + 32 * x} flag status not affected
1: IAF {i + 32 * x} flag status cleared in IAC_ISRx
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ILACIN{i + 32 * x}
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ILACIN{i + 32 * x}
r r r r r r r r r r r r r r r r
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
name
0x000 +0x4*x IAC_IERx IAIE{i + 32 * x}
(x = 0 to 5)
Last address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x014
0x018-0x07C Reserved Reserved
0x080 +0x4*x IAC_ISRx IAF{i + 32 * x}
(x = 0 to 5)
Last address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x094
0x098-0x0FC Reserved Reserved
0x100 +0x4*x IAC_ICRx IAF{i + 32 * x}
(x = 0 to 5)
Last address: Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x114
0x118-0x368 Reserved Reserved
0x36C +0x4*x IAC_IISRx ILACIN{i + 32 * x}
(x = 0 to 5)
Last address: Reset value 0xFFFF FF7F, 0x77FF FFFF, 0x77DF F03B, 0x0000 05FF, 0x7BEF FFEF, 0x0000 0000
0x384
9 Boot modes
- 1 Development boot
0 0 Flash boot
1 0 Serial boot
Secure installation
The ROM code is the root-of-trust of secure firmware installation.
AHBSRAM1
AHBSRAM2
AXISRAM1
AXISRAM2
AXISRAM3
AXISRAM4
AXISRAM5
AXISRAM6
VENCRAM
BKPSRAM
FLEXRAM
SRAM feature
Size (Kbytes) 624 1024 Up to 400 448 448 448 448 16 16 128 8
Word size 64 64 64 64 64 64 64 32 32 64 39(1)
Retention in Standby mode - - X(2) - - - - - - - X
Retention in VBAT mode - - - - - - - - - - X
Block on potential tamper,
- - - - - - - - X - X
erase on confirmed tamper
Hardware erase on reset X X - - - - - - X - -
Software erase X X X X X X X X X X X
(3)
ECC - - X - - - - - - - X
1. 32 bits of effective data, and 7 bits of embedded ECC.
2. Only the 80 Kbytes that correspond to the first portion of the I-TCM extension can be retained.
3. The ECC concerns only the FLEXMEM when used as extended TCM. It is under control of the Cortex-M55 TCM interface.
AXISRAM1
No Erase on system reset
AXISRAM2
AHBSRAM2 No Erase on system reset and on confirmed tamper
0 0 1 x 64 0 64 4 × 32 0 128 400
0 1 1 x 64 0 64 4 × 32 4 × 32 (+ 8) 256 240
1 0 1 x 64 1 x 64 (+16) 128 4 × 32 0 128 320
1 1 1 x 64 1 x 64 (+16) 128 4 × 32 4 × 32 (+ 8) 256 160
2 0 1 x 64 1 x 192 (+ 48) 256 4 × 32 0 128 160
2 1 1 x 64 1 x 192 (+ 48) 256 4 × 32 4 × 32 (+ 8) 256 0
The retention regions are detailed in Table 36 and Figure 9, sharing the same color code.
0x2401 4000
RAM
retention
80 KB
0x2400 0000
0x2004 0000
0x2002_0000
0x2000_0000
0x0004_0000
ITCM ITCM
retention retention
128 KB 128 KB
ITCM
0x0002_0000
ITCM ITCM I-TCM ITCM
retention retention retention retention
64 KB 64 KB 64 KB 64 KB
0x0001_0000
ITCM ITCM ITCM ITCM ITCM ITCM
baseline (ret.) baseline (ret.) baseline (ret.) baseline (ret.) baseline (ret.) baseline (ret.)
64 KB 64 KB 64 KB 64 KB 64 KB 64 KB
MS71162V2
0x0000_0000
00 10 20 01 11 21
Note: AXISRAM1 start address is 0x2406 4000 (aliased at 0x3406 4000 in secure boundary),
whatever the FLEXMEM configuration.
Fault injection
The RAMCFG supports a software loop for runtime fault injection in the BKPSRAM when
the ECC is activated:
1. With the ECC enabled, the application writes at a given address.
2. The application disables the ECC writing.
3. The application writes a different data at the same address as previously.
Data are updated but the matching ECC word is not modified.
4. The application enables ECC writing.
5. The application reads at the same address as previously. An interrupt is expected due
to either one error corrected, or several errors detected. The application can check that
the desired address appears in RAMCFG_BKPSRAMSEAR or _BKPSRAMDEAR.
Sleep No effect. RAMCFG interrupts cause the device to exit Sleep mode.
Stop The content of RAMCFG registers is kept.
Standby The RAMCFG is powered down.
ECC single error detection and correction SEDC SEIE Write 1 in CSEDC
RAMCFG BKPSRAM
ECC double error detection DED DEIE Write 1 in CDED
1. All these bits are in RAMCFG_BKPSRAMISR.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ER
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BUSY
r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. ERASEKEY[7:0]
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SD
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ER
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ER
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BUSY
r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. ERASEKEY[7:0]
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ER
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BUSY
r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. ERASEKEY[7:0]
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. ALE Res. Res. Res. ECCE
ER
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DEIE SEIE
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DED SEDC
BUSY
r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. ESEA[10:0]
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. EDEA[10:0]
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. CDED CSEDC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. ECCKEY[7:0]
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. ERASEKEY[7:0]
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ER
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SRAM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BUSY
r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. ERASEKEY[7:0]
w w w w w w w w
0x3A8
0x3FC
304/4691
0x328 +
0x308 +
0x300 +
0x080 +
0x028 +
0x008 +
0x3AC -
Offset
10.6.22
(x = 1 to 2)
(x = 1 to 2)
(x = 1 to 2)
(x = 2 to 6)
(x = 1 to 6)
(x = 1 to 6)
0x80 * (x - 1)
0x80 * (x - 1)
0x80 * (x - 1)
0x80 * (x - 2)
0x80 * (x - 1)
0x80 * (x - 1)
Last address:
Last address:
0x40C - 0x424
Reserved
Reserved
Reserved
Reserved
RAMCFG_
RAMCFG_
RAMCFG_
RAMCFG_
RAMCFG_
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
AHBSRAMxCR
AHBSRAMxISR
VENCRAMERKEYR
AXISRAMxERKEYR
AHBSRAMxERKEYR
Register name
RAMCFG_VENCRAMCR
RAMCFG_AXISRAMxCR
RAMCFG_AXISRAM1CR
RAMCFG_VENCRAMISR
RAMCFG_AXISRAMxISR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 28
RAMCFG register map
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 27
SRAM configuration controller (RAMCFG)
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 25
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 24
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 23
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 21
0
Res. Res. Res. Res. Res. Res. SRAMSD Res. Res. Res.
RM0486 Rev 2
20
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 19
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 18
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 17
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Reserved
Reserved
Reserved
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 14
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 13
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 12
Table 39. RAMCFG register map and reset values
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 11
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 10
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 9
0
0
0
0
0
0
0
Res. SRAMBUSY SRAMER Res. SRAMBUSY SRAMER SRAMER Res. SRAMBUSY SRAMER 8
Res. Res. Res. Res. Res. Res. Res. 7
Res. Res. Res. Res. Res. Res. Res. 6
Res. Res. Res. Res. Res. Res. Res. 5
Res. Res. Res. Res. Res. Res. Res. 4
Res. Res. Res. Res. Res. Res. Res. 3
Res. Res. Res. Res. Res. Res. Res. 2
ERASEKEY[7:0]
ERASEKEY[7:0]
ERASEKEY[7:0]
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0
0x528
0x508
0x504
0x500
0x494
0x490
0x488
0x484
0x480
0x4A8
0x4A4
0x48C
0x4AC
RM0486
Offset
0x498 - 0x4A0
0x50C - 0x524
0x42C - 0x47C
Reserved
Reserved
Reserved
Reserved
Reserved
RAMCFG_
RAMCFG_
RAMCFG_
RAMCFG_
RAMCFG_
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
BKPSRAMESEAR
BKPSRAMEDEAR
FLEXRAMERKEYR
Register name
BKPSRAMERKEYR
BKPSRAMECCKEYR
RAMCFG_FLEXRAMCR
RAMCFG_BKPSRAMCR
RAMCFG_FLEXRAMISR
RAMCFG_BKPSRAMISR
RAMCFG_BKPSRAMIER
RAMCFG_BKPSRAMICR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 27
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 25
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 24
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 23
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 21
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RM0486 Rev 2
20
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 19
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 18
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 17
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 16
Reserved
Reserved
Reserved
Reserved
Reserved
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 14
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 13
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 12
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 11
Res. Res. Res. Res. Res. Res. Res. Res. Res. 10
Res. Res. Res. Res. Res. Res. Res. Res. Res. 9
Table 39. RAMCFG register map and reset values (continued)
0
0
0
0
EDEA[10:0]
ERASEKEY[7:0]
ERASEKEY[7:0]
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0
0 0
0 0
0
305/4691
0
305
Texture cache (ICACHE) RM0486
Number of ways 4
Cache size 32 Kbytes
Cache line width 32 bytes
Number of regions to remap 0
Data size of AHB slave interface 64 bits
Data size of AHB fast master1 interface 64 bits
Data size of AHB slow master2 interface 0
Configuration
AHB
slave port
Configuration interface
Region 0 cfg Region 2 cfg Hit monitor Control
Read Master1
AXI-to-AHB bridge
slave port
Main AHB
Cache port
FSM AHB
AHB
pLRU-t
icache_it
Cache Cache
TAG data
memories memories
n ways n ways
ICACHE
MSv69745V2
way selection
pLRU-t (for replacement)
n ways n ways
T-bit l-bit
==
== Cache hit/miss, in Way(n-1)
Cache hit/miss, in Way0
MSv48192V2
Table 42. TAG memory dimensioning parameters for direct-mapped cache mode
Parameter Value Example
All cache operations (such as read, refill, invalidation) remain the same in the direct-mapped
configuration. The only difference is the absence of a replacement algorithm in case of line
eviction (as explained in Section 11.4.7): only one way (the unique one) is possible for any
data refill.
1 Cacheable
0 Noncacheable
The ICACHE also propagates all AHB bus errors (such as address decoding issues) from
the master1 port back to the slave read port.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
MISSM HITM MISSM HITM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RST RST EN EN
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WAY CACHE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. EN
SEL INV
rw w rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BSYEN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. ERRF BUSYF
DF
r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BSYEN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. ERRIE Res.
DIE
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CBSY
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. CERRF Res.
ENDF
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
HITMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HITMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MISSMON[15:0]
r r r r r r r r r r r r r r r r
0x00C
Offset
11.7.7
318/4691
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
ICACHE_SR
ICACHE_CR
ICACHE_IER
ICACHE_FCR
Register name
ICACHE_HMONR
ICACHE_MMONR
0
Res. Res. Res. Res. Res. 31
Texture cache (ICACHE)
0
Res. Res. Res. Res. Res. 30
0
Res. Res. Res. Res. Res. 29
0
Res. Res. Res. Res. Res. 28
0
Res. Res. Res. Res. Res. 27
0
Res. Res. Res. Res. Res. 26
0
Res. Res. Res. Res. Res. 25
ICACHE register map
0
Res. Res. Res. Res. Res. 24
0
Res. Res. Res. Res. Res. 23
0
Res. Res. Res. Res. Res. 22
0
Res. Res. Res. Res. Res. 21
0
Res. Res. Res. Res. Res. 20
0
0
0
0
RM0486 Rev 2
0
0
0
0
0
Res. Res. Res. Res. 15
0
HITMON[31:0] Res. Res. Res. Res. 14
0
0
0 Res. Res. Res. Res. 13
0
Res. Res. Res. Res. 12
0
0
Res. Res. Res. Res. 10
0
0
0
0
0
1
0
0
0
0
0
0
1
0
RW cache 1 (read-write)
SRAM port 1 (support SRAM port)
Cache size 256 Kbytes
Number of ways 8
Cache line width 64 bytes
AHB
slave port
Configuration interface
Rd/Wr Hit Monitors
Control CMD range start @
cacheaxi_it Rd/Wr Miss Write-Through
Status CMD range end @
Rd/Wr-Alloc. Miss Cache line evictions
Cache Master
Slave cache
CPU
interface
AXI
Master
FSM
AXI AXI
Maintenance
pLRU-t
Master(s) AXI interconnect(s)
operations
Cache Cache/SRAM
AXI TAG Data
Memories Memories
n ways n ways
SRAM
Slave SRAM
port
interface
AXI
CACHEAXI
MSv70419V2
When the CACHEAXI hardware configuration supports the optional SRAM mode and logic,
and when the CACHEAXI is disabled, it is configured in SRAM mode:
• The CACHEAXI is clocked on the Master AXI interconnect clock received on slave
SRAM port.
• CACHEAXI data memories can be accessed by data request on slave SRAM port.
• The cache mode is disabled, but cache TAG memories are initialized (see invalidate
procedure below).
When the CACHEAXI reset signal is released, a cache invalidate procedure is automatically
launched, making the CACHEAXI busy (CACHEAXI_SR = 0x0000 0001).
When this procedure is finished:
• The cache control logic and TAG memories are initialized: all cache line valid, dirty,
compartment ID and privilege TAG bits = 0.
• CACHEAXI_SR = 0x0000 0002 (reflecting the cache control logic is no longer busy).
• The cache mode is still disabled (EN bit in CACHEAXI_CR1 holds its reset state = 0),
but CACHEAXI is ready to be switched in cache mode.
Then, when cache mode is enabled (EN = 1 in CACHEAXI_CR1):
• The CACHEAXI is clocked on the (Master) AXI interconnect clock received on its slave
cache port.
• The CACHEAXI is in “cold cache” state, and can serve input requests received on its
slave cache port.
When the cache mode is enabled, the SRAM mode is disabled, and input requests received
on slave SRAM port are not served: write requests are ignored, and read requests are
responded with 0s.
Access to CACHEAXI registers is always clocked by the clock of the AHB configuration
slave port.
Figure 13. shows the functional view of TAG and data memories, for an n-way set
associative CACHEAXI.
way selection
(for replacement) pLRU-t
TAG
G memory Data memory
n ways n ways
T-bit l-bit
==
== Cache hit/miss, in Way(n-1)
MSv70420V1
The bypass does not increase the latency of the access to the targeted memory.
AXI attribute signals are set by the master peripheral that initiates the AXI memory request.
In case of cacheable access on slave cache port, the CACHEAXI behaves as explained in
the next section.
full invalidate is finished). However, the noncacheable traffic is treated (since the
request address is not compared to TAG ones) as the CACHEAXI is bypassed in the
same clock cycle (same behavior as when CACHEAXI cache mode is disabled).
• Clean range: cleans a certain range of addresses in the cache, background task
(interruptible).
Cleaning a cache line means making sure that main memory content is up-to-date with
the data which may have been modified in cache. The clean operation consists in
performing the write-back in main memory of the cache lines that are tagged as “dirty”
(the ones with TAG dirty bit set).
The software can clean a given data region in the CACHEAXI by programming
STARTCMD = 1, and CACHECMD = 0b01 in CACHEAXI_CR2, after the address
range was programmed into CACHEAXI_CMDRSADDRR (range start address) and
CACHEAXI_CMDREADDRR (range end address).
The CACHEAXI control logic then parses the whole TAG memory. If the read line
address (TAG address + line index) falls in the programmed address range
(CACHEAXI_CMDRSADDRR ≤ Line Addr ≤ CACHEAXI_CMDREADDRR) and the
corresponding line is dirty, this line is cleaned: the whole cache line is written-back in
memory through the CACHEAXI master port, and its TAG dirty bit is cleared.
When STARTCMD is set, the CACHEAXI control logic sets BUSYCMDF in
CACHEAXI_SR, and launches the clean range operation. STARTCMD in
CACHEAXI_CR2 is also automatically cleared.
Once the operation is finished (all TAG memory parsed), the CACHEAXI automatically
clears BUSYCMDF and sets CMDENDF in CACHEAXI_SR.
If enabled on this flag condition (CMDENDIE = 1 in CACHEAXI_IER), the CACHEAXI
interrupt is raised, on cacheaxi_it signal.
During this clean range operation, the CACHEAXI is interruptible: it can accept new
incoming requests that take higher priority than the cleaning process. The TAG
memory is accessed for clean range operation only if not already accessed by an
external cache request. This implies that clean range execution is usually not
performed in one go, but can be interrupted.
It is under the software responsibility that no bus initiator attempts to change the
content of the region being cleaned until the clean range is completed. The software
must take advantage of BUSYCMDF in CACHEAXI_SR, and polls this flag to prevent
any spurious access to the area being cleaned. Alternatively the software can also rely
on the command end flag (CMDENDF) or on the CACHEAXI interrupt to detect the end
of the clean range execution.
• Clean and invalidate range: cleans and invalidates a certain range of addresses in
the cache, background task (interruptible).
This operation cleans the “dirty” cache lines that belong to the operation address range
(the same as clean range operation), and also invalidates all the (valid) cache lines that
belong to this address range (whether they are dirty or not).
Note: When a cache line is invalidated, the pLRU-t pointer (for this cache line index) is
updated to point to the way that was just invalidated (best candidate for the next
allocation).
The software can launch this clean and invalidate range operation, by programming
STARTCMD = 1, and CACHECMD = 0b11 in CACHEAXI_CR2, after the address
receives this functional error, and flags it internally by setting ERRF in CACHEAXI_SR. And
an interrupt is generated if the corresponding interrupt enable bit is set (ERRIE = 1 in
CACHEAXI_IER).
Another case of interrupt generation is at the end of a full invalidate operation: when the
cache busy state is finished, the CACHEAXI sets BSYENDF in CACHEAXI_SR. An
interrupt is then generated if the corresponding interrupt enable bit is set (BSYENDIE = 1 in
CACHEAXI_IER).
The last case is at the end of a maintenance range operation (clean/invalidate range): when
the command busy state is finished, the CACHEAXI sets CMDENDF in CACHEAXI_SR. An
interrupt is generated if the corresponding interrupt enable bit is set (CMDENDIE = 1
in CACHEAXI_IER).
The CACHEAXI has a unique interrupt signal, cacheaxi_it (and then use the same interrupt
vector whatever the interrupt source).
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WMISSMRST
RMISSMRST
WMISSMEN
WHITMRST
RMISSMEN
WAMMRST
RHITMRST
RAMMRST
WHITMEN
RHITMEN
WAMMEN
EVIMRST
RAMMEN
WTMRST
EVIMEN
WTMEN
w w rw rw w w rw rw w w rw rw w w rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CACHEINV
EN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
w rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BUSYCMDF
CMDENDF
BSYENDF
BUSYF
ERRF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CMDENDIE
BSYENDIE
ERRIE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CCMDENDF
CBSYENDF
CERRF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RHITMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RHITMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RMISSMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RMISSMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RAMMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
EVIMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EVIMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WHITMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WHITMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WMISSMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WMISSMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WAMMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WAMMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WTMON[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WTMON[15:0]
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CACHECMD START
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
[1:0] CMD
rw rw w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CMDSTARTADDR[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
rw rw rw rw rw rw rw rw rw rw
Bits 31:6 CMDSTARTADDR[31:6]: start address of range to which the cache maintenance command
specified in CACHEAXI_CR2.CACHECMD field applies
This field must be set before CACHEAXI_CR2.CACHECMD is written.
Bits 5:0 Reserved, must be kept at reset value.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CMDENDADDR[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
rw rw rw rw rw rw rw rw rw rw
Bits 31:6 CMDENDADDR[31:6]: end address of range to which the cache maintenance command
specified in CACHEAXI_CR2.CACHECMD field applies
This field must be set before CACHEAXI_CR2.CACHECMD is written.
Bits 5:0 Reserved, must be kept at reset value.
10
11
9
8
7
6
5
4
3
2
1
0
name
WMISSMRST
RMISSMRST
WMISSMEN
WHITMRST
RMISSMEN
WAMMRST
RHITMRST
CACHEINV
RAMMRST
WHITMEN
WAMMEN
RHITMEN
EVIMRST
RAMMEN
WTMRST
WTMEN
EVIMEN
CACHEAXI_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
EN
0x000 CR1
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
BUSYCMDF
CMDENDF
BSYENDF
BUSYF
ERRF
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
CACHEAXI_SR
0x004
Reset value 0 0 0 0 1
CMDENDIE
BSYENDIE
ERRIE
CACHEAXI_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x008 IER
Reset value 0 0 0
CCMDENDF
CBSYENDF
CERRF
CACHEAXI_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x00C FCR
Reset value 0 0 0
CACHEAXI_
RHITMON[31:0]
0x010 RHMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CACHEAXI_
RMISSMON[31:0]
0x014 RMMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CACHEAXI_
RAMMON[31:0]
0x018 RAMMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
name
CACHEAXI_
EVIMON[31:0]
0x01C EVIMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CACHEAXI_
WHITMON[31:0]
0x020 WHMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CACHEAXI_
WMISSMON[31:0]
0x024 WMMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CACHEAXI_
WAMMON[31:0]
0x028 WAMMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CACHEAXI_
WTMON[31:0]
0x02C WTMONR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x030-
Reserved Reserved
0x0FC
CACHECMD
STARTCMD
CACHEAXI_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
[1:0]
0x100 CR2
Reset value 0 0 0
CACHEAXI_
Res.
Res.
Res.
Res.
Res.
CMDRS CMDSTARTADDR[31:5](1)
0x104 ADDRR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
CACHEAXI_
Res.
Res.
Res.
Res.
Res.
CMDRE CMDENDADDR[31:5](1)
0x108 ADDRR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1. Bit 5 is reserved (=0) for CACHEAXI configuration with 64-bytes cache line width.
32-bit
AHB RCC
Register interface
bus
BOR pwr_bor_rstn
VDD
VSS EXTI
PWR_ON PWR control
exti_wkup
VDDA18ADC
VSSA Analog domain
VREF+
VREF-
VDDIO2
VDDIO3
pwr_pvd_wkup Wake-up event
VDDIO4 PVD and PVM
VDDIO5 pwr_pvm_x_wkup[5:0] Wake-up event
VDD33USB
MSv70447V3
Each of the four wake-up events, WKUPx, can be generated from four pins or internal
events.
PA0 WKUP1
PA2 WKUP2
PC13 WKUP3
PD2 WKUP4
• VDDA18ADC: external analog power supply for ADCs and voltage reference buffers,
independent from any other supply
• VREF+: external reference voltage for ADCs, independent from any other supply
– When the voltage reference buffer is enabled, VREF+ and VREF- are delivered
by the internal voltage reference buffer.
– When the voltage reference buffer is disabled, VREF+ is delivered
by an independent external reference supply.
• VSSA: separate analog and reference voltage ground
• VDDIO2: external power supply for 22 I/Os (PO[5:0] and PP[15:0]), independent from
any other supply
• VDDIO3: external power supply for 13 I/Os (PN[12:0]), independent from any other
supply
• VDDIO4: external power supply for 10 I/Os (PC[1], PC[12:6], and PH[9,2]), independent
from any other supply
• VDDIO5: external power supply for six I/Os (PC[0], PC[5:2], and PE[4]), independent
from any other supply
• VDD33USB: external power supply for USB2 HS PHYs and USB Type-C® (CC1 and
CC2 pins), independent from any other supply
• VDDA18USB: external analog power supply for USB2 HS PHYs
• VDDA18CSI: external analog power supply for CSI D-PHY
• VDDA18PLL: external analog power supplies for PLLs
• VSS: common ground for all supplies except for step-down converter and analog
peripherals.
Note: Depending upon the operating power supply range, some peripherals can be used with
limited features and performance. For more details, refer to General operating conditions in
the datasheet.
VDDA18USB
VDDA18CSI
VDD33USB
VDDIO2
VDDIO4
VDDIO5
VDDIO3
VDDCSI
PC[1] PC[0] Port 1 Port 2
USB HS UCPD CSI
PC[12:6] PC[5:2] PO[5:0] PN[12:0]
PHYs I/Os PHY
PH[2,9] PE[4] PP[15:0]
I/Os I/Os
XSPIM I/Os VSS VSS VSS
VSS VSS VSS
Core domain (VCORE)
VDDCORE
VSS
VDD
VDDA18PMU
Retention domain
VDDSMPS
Step-down ITCM
VLXSMPS
converter
VFBSMPS DTCM
VSSSMPS
ITCM FLEX
VDD
Backup
LSE, RTC, RAM
BKUP I/O
I/Os TAMP, backup
logic
registers, reset
VSS
VSS
VDDA18ADC Analog domain
VREFBUF ADCs
VREF+ VREF+
VREF- VREF-
VSSA
MSv70448V3
VDDA18PMU VDDA18PMU
VSSSMPS VSSSMPS
VDDCORE
VCORE External supply VDDCORE
VCORE
VSS VSS
The different supply configurations are controlled through SDEN in PWR_CR1 according to
Table 54. When the internal SMPS step-down converter is disabled, write SDEN bit in
PWR_CR1 to 0 as soon as possible
Supply
Description
configuration
4. Once VDDCORE supply is above the Vddcore_ok threshold level, the system is taken
out of reset, and the HSI oscillator is enabled.
5. Once the oscillator is stable, the system is initialized: option bytes are loaded, and the
CPU starts in Run mode.
Figure 17. Device startup (VCORE supplied directly from SMPS step-down converter)
VDD
POR threshold
VDDA18AON
POR threshold
pwr_por_rstn
PWR_ON
Vdda18pmu_ok
VOS low
VFBSMPS
VCORE
tempo
Vcore_ok
ck_sys
Direct
Supply configuration Default configuration SD
supply
SDEN X
(1) (2) (3) (4) (5)
MSv70450V3
When exiting Standby mode, the supply configuration is known by the system, as the
PWR_CR1 content is retained.
1. When the system is powered on, the POR monitors VDD and VDDA18AON supplies.
Once the supplies are above the POR threshold level, the external voltage regulator
providing the VDDCORE supply is enabled via the PWR_ON signal.
2. The system is kept in reset mode as long as VDDCORE is not stable.
3. Once VDDCORE supply is above the Vddcore_ok threshold level, the system is taken
out of reset, and the HSI oscillator is enabled.
4. Once the oscillator is stable, the system is initialized: option bytes are loaded, and the
CPU starts in Run mode. The software must disable SMPS bit clearing SDEN in
PWR_CR1.
Note: In SMPS off mode or bypass mode, reading SDEN returns 0. The SW must write 0 to SDEN
in PWR_CR1 register for the low power features to work properly.
POR threshold
VDDA18AON
POR threshold
pwr_por_rstn
PWR_ON
Vddcore_ok threshold
VDDCORE
tempo
Vcore_ok
ck_sys
SDEN X
(1) (2) (3) (4)
MSv70451V2
the SMPS step-down converter is enabled to deliver 0.8 V. This allows the system to start
up in any supply configuration (see Figure 16).
After a power-on reset, the software must configure the used supply configuration in
PWR_CR1 before changing VOS in PWR_VOSCR, or the RCC sys_ck frequency. The
different system supply configurations are controlled as shown in Table 54.
• In Standby mode
The PWR_ON signal is set low, the external regulator is switched off, and the VCORE
domain is powered down. The content of registers and memories is lost except for the
retention domain and the backup domain.
When the VDD supply is present, the backup domain is supplied from VDD, to save VBAT
power supply battery life time. If no external battery is used in the application, it is
recommended to connect VBAT externally to VDD, and add a 100 nF external ceramic
capacitor between VBAT and VSS.
When the backup domain is supplied by VBAT (analog switch connected to VBAT),
the following pins are available:
• PC13, PC14, and PC15, which can be configured by RTC or LSE (see Section 61.3:
RTC functional description).
• PC13, PQ7 (TAMP_IN/OUT), and PD8, PH4 (only TAMP_IN) when they are configured
by the TAMP peripheral as tamper pins.
VBAT
VSW
VDD
Backup domain
V08CAP
Backup I/Os
regulator
VCORE domain
Backup
RAM
interface
Backup
RTC LSE
MSv70452V1
VCORE
Retention I/Os
VRET
Retention
interface
RIFSC LSI
BSEC IWDG
I-TCM/
D-TCM I-TCM
RAMs FLEX
MEM
VDDA18AON OTP
MSv70453V1
I-TCM FLEXMEM
The retention domain includes 64 Kbytes of extended TCMs for the Cortex-M55 (the I-TCM
FLEXMEM extension). This memory can be allocated to I-TCM or to system AXI RAM (see
Section 10: SRAM configuration controller (RAMCFG) for details
• In Run and Stop (SVOS high) modes, the I-TCM FLEXMEM is supplied from the
VCORE supply.
• In Stop (SVOS low) mode, the I-TCM FLEXMEM is supplied through the backup
regulator in the VSW domain.
• In Standby mode, the I-TCM FLEXMEM can be supplied through the backup regulator
in the VSW domain.
When the backup supply is enabled by t TCMFLXRBSEN in PWR_CR4, the content of
these memories is retained even in Standby mode.
• VSW via rst_vsw, which keeps VSW domain in reset mode as long as the level is not the
correct one
– The VSW monitoring has no flag. VSW registers reset value can be used.
• VFBSMPS can be monitored via VOSRDY in PWR_VOSCR.
VDD / VDDA18AON
POR
Hysteresis PDR
Temporisation TRSTTEMPO
pwr_por_rstn
MSv70454V1
The BOR can be disabled by programming the system option bytes. To disable it, VDD must
have been higher than VBOR0 to start the system option byte programming sequence. The
power-down is then monitored by the PDR (see Section 13.5.1).
VDD
BORrise
Hysteresis
BORfall
pwr_bor_rstn
MSv70455V1
VDDA18PMURise
Hysteresis
VDDA18PMUFall
Vdda18pmu_ok
MSv70456V1
VDDCORERise
Hysteresis
VDDCOREFall
T
Temporisation
Vddcore_ok
MSv70457V1
VDDCORE
vcore_thr_high
Vcore_thr_low
T
VCOREL
VCOREH
MSv70458V1
PVD_IN
PVDrise
Hysteresis PVDfall
PVDO
PVDEN
Note: When the device does not operate in VBAT mode, the battery voltage monitoring checks the
VDD level. When VDD is available, VSW is connected to VDD through the internal power
switch (see Section 13.4.4).
V08CAPhigh
V08CAPlow
V08CAPH
V08CAPL
MSv70460V2
Temperature
TEMPhigh
TEMPlow
TEMPH
TEMPL
MSv70461V1
• Lower the system performance by slowing down the system clocks, and reducing
the VCORE supply level through VOS voltage scaling bit.
• Gate the clocks to APBx and AHBx peripherals when they are not used,
through PERxEN bits.
System oscillator
CPU clock
PWR_ON
System Entry Wake-up
ON
Run - -
ON(1)
ON
ON
WFI or return
Sleep
from ISR or WFE(2)
ON/OFF(3)
SVOS + SLEEPDEEP +
ON/OFF(5)
Stop SVOS WFI or return from ISR, 1
high WFE, or wake-up source See Table 56
cleared(4)
OFF
OFF
SLEEPDEEP + WFI or
Stop SVOS return from ISR, WFE, or
OFF
OFF
low wake-up source
cleared(3)
OFF
OFF
OFF
OFF
Standby wake-up event, RTC tamper events, 0(6)
WFE, or wake-up source
RTC timestamp event, external reset in
cleared(3)
NRST pin, IWDG reset
1. The clock is gated in the core in Sleep mode.
2. WFI = wait for interrupt, ISR = interrupt service routine, WFE = wait for event.
3. The CPU subsystem peripherals that have a PERxLPEN bit, operate accordingly.
4. When the CPU is in Stop mode, the last EXTI wake-up source must be cleared by software.
5. When HSI or MSI is used, the state is controlled by HSISTOPEN and MSISTOPEN, otherwise the system oscillator is off.
6. A guaranteed minimum PWR_ON pulse low time can be defined by POPL bits in PWR_CR1.
Wake-up capability
Wake-up capability
Wake-up capability
VBAT mode
Run mode
Peripheral(1)
- - -
CPU Y R - R - - - -
NPU O O - R - - - -
Debug O O O R - - - -
ROM memory Y R - R - - - -
RAMCFG O R - R - - - -
I-TCM O R - R - R - -
I-TCM FLEXMEM O R - R - R - -
D-TCM O R - R - R - -
AXISRAM1 O R - R - R(2) - -
AXISRAMx (x = 2, 3, 4) O O - R - - - -
I-TCM FLEXMEM extension O O - R - R(3) - -
D-TCM FLEXMEM extension O O - R - - - -
CACHEAXI O O - R - - - -
VENCRAM O O - R - - - -
GPU RAM O O - R - - - -
BKPSRAM O R - R - O - O
AHBSRAMx (x = 1, 2) O O - R - - - -
XSPIx (x = 1, 2, 3) O R - R - - - -
XSPIM O R - R - - - -
MCEx (x = 1, 2, 3, 4) O R - R - - - -
FMC O R - R - - - -
Backup registers Y R - R - R - R
Brownout reset (BOR) Y Y Y Y Y Y Y -
Programmable voltage detector (PVD) O O O O O - - -
Peripheral voltage monitor (PVM) O O O O O - - -
V08CAPH/V08CAPL monitoring O O O O O O O O
TEMPH/TEMPL monitoring O O O O O O O O
GPDMA1 O R - R - - - -
HPDMA1 O R - R - - - -
Wake-up capability
Wake-up capability
Wake-up capability
VBAT mode
Run mode
Peripheral(1)
- - -
Wake-up capability
Wake-up capability
Wake-up capability
VBAT mode
Run mode
Peripheral(1)
- - -
GFXTIM O R - R - - - -
GFXMMU O R - R - - - -
JPEG O R - R - - - -
VENC O R - R - - - -
LTDC O R - R - - - -
ADCx (x = 1, 2) O R - R - - - -
VREFBUF O R - R - - - -
DTS O R O R - - - -
TIMx (x = 1 to 18) O R - R - - - -
LPTIMx (x = 1 to 5) O O O R - - - -
IWDG O O O O O O O -
WWDG O R - R - - - -
RNG O R - R - - - -
SAES O R - R - - - -
CRYP O R - R - - - -
HASH O R - R - - - -
CRC O R - R - - - -
O O
GPIOs O O O O O -
4 pins 4 pins
1. Legend: Y = Yes (enable). O = Optional (disable by default. Can be enabled by software). R = data/state retained.
-= not available.
2. Only the first 80 Kbytes can optionally be retained (see Section 10: SRAM configuration controller (RAMCFG) for details).
3. Only the first 64 Kbytes can optionally be retained (see Section 10: SRAM configuration controller (RAMCFG) for details).
Debug mode
By default, the debug connection is lost if the application puts the MCU in Stop or Standby
mode while debug features are used (the Cortex-M55 core is no longer clocked or
powered).
However, by setting some configuration bits in DBGMCU control registers, the software can
be debugged even when using the low-power modes extensively. For more details, refer to
Debug and low-power modes.
Reset
Wake-up reset
Standby Standby
Power down
Standby
MSv70462V1
VOS high
VCORE
VOS low
VOSRDY
PLLxON
ck_sys
ck_hclk
Run from HSI Run from PLL Run from HSI Run from PLL
MSv70463V1
VOS high
VOS low
VCORE
SVOS low
VOS VOS high SVOS low VOS high
VOSRDY
exti_c_wkup
PLLnON
ck_sys
ck_hclk
Wait Wait
Run Stop Run Run
VOSRDY Wait PLL
HSI
Run from PLL Clock stopped Run from HSI Run from PLL
MSv70464V1
to be reached before enabling the default HSI oscillator. Once the HSI clock is stable,
the system clock is enabled.
4. In a next step, increase the system performance with the following:
a) The software first increases the voltage scaling to VOS high.
b) Before enabling the PLL, the software waits for the requested supply level to be
reached by monitoring VOSRDY.
c) Once the PLL is locked, the system clock can be switched.
PWR_ON
VCORE
VOS high
VOS low
SVOS low
0V
VOSRDY
exti_c_wkup
PLLxON
ck_sys
ck_hclk
Wait Wait
Run Standby Run Run
Wait VOSRDY PLL
Reset
HSI
Run from PLL Power down Run from HSI Run from PLL
MSv70465V1
channel pending bit, as pending bit corresponding to the event line is not set.
The interrupt flag may have to be cleared in the peripheral.
The CPU subsystem exits Stop mode by enabling an EXTI interrupt or event depending on
how the low-power mode was entered (see above).
The CPU subsystem exits Standby mode by enabling an external reset (NRST pin), an
IWDG reset, an enabled WKUPx pin, or an RTC event.
Program execution restarts as after a system reset by fetching the vector tables in
SYSCFG_INITSVTORCR and SYSCFG_INITNSVTORCR registers.
The default boot address can be changed to allow a fast restart on TCM when exiting a low
power mode. The content of the vector table registers is maintained in Standby mode.
WKUP pins rising or falling edge, RTC alarm (alarm A and alarm B), RTC wake-up, tamper event,
Mode exit
timestamp event, external reset in NRST pin, IWDG reset
Wake-up SMPS wake-up time from low-power mode (Run mode operating supply level to restore) +
latency EXTI and RCC wake-up synchronization (see Section 14.5.12: Power-on and wake-up sequences)
To allow peripherals having a kernel clock request to operate in Stop mode, the system must
use SVOS high.
Note: Use a DSB instruction to ensure that outstanding memory transactions complete before
entering Stop mode.
Exiting Stop mode
The Stop mode is exited according to Section 13.7.4.
Refer to Table 58 and Table 59 for more details on how to exit Stop mode.
When exiting Stop mode, the MCU is in Run mode same range as before entering
Stop mode. The system starts on HSI or MSI.
STOPF status flag in PWR_CPUCR indicates that the system exited Stop mode.
The low-power mode security filter must be disabled by system option bytes
(nRST_STDBY) to enter in Standby mode. Refer to Section 14.5.4: Low-power mode
security reset (lpwr_rst) for details.
Refer to Table 61 for more details on how to enter Standby mode.
Description
The CPU subsystem is in Stop mode, and there is no active EXTI wake-up source.
Mode entry PDDS bit for select Standby
All WKUPF bits in PWR_WKUPSR cleared
WKUP pins rising or falling edge, RTC alarm (alarm A and alarm B), RTC wake-up, tamper
Mode exit
event, timestamp event, external reset in NRST pin, IWDG reset
Wake-up latency System reset phase (see Section 14.5.2: System and application resets (sys_rst, nreset_rstn))
Table 62. Power mode output states versus MCU power modes
PWR_CSTOP PWR_CSLEEP MCU power modes(1)
PWR_SECCFGR.SEC[0]
PWR_CR1 RW/RWO System supply configuration
PWR_PRIVCFGR.PRIV[0]
PWR_SECCFGR.SEC[1]
PWR_CR2 RW Programmable voltage detector
PWR_PRIVCFGR.PRIV[1]
PWR_SECCFGR.SEC[2]
PWR_CR3 RW VDDCORE monitor
PWR_PRIVCFGR.PRIV[2]
PWR_SECCFGR.SEC[3] I-TCM, D-TCM, and I-TCM FLEX MEM
PWR_CR4 RW
PWR_PRIVCFGR.PRIV[3] low-power control
PWR_SECCFGR.SEC[4]
PWR_VOSCR RW Voltage scaling selection
PWR_PRIVCFGR.PRIV[4]
PWR_BDCR1 RW VBAT and temperature monitor
PWR_SECCFGR.SEC[5]
PWR_BDCR2 RW BKPSRAM low-power control
PWR_PRIVCFGR.PRIV[5]
PWR_DBPCR RW Disable backup domain write protection
PWR_SECCFGR.SEC[6]
PWR_CPUCR RW CPU power control
PWR_PRIVCFGR.PRIV[6]
PWR_SVMCR1 RW VDDIO4 peripheral voltage monitor
PWR_SVMCR2 PWR_SECCFGR.SEC[7] RW VDDIO5 peripheral voltage monitor
PWR_PRIVCFGR.PRIV[7]
VDDIO2, VDDIO3, VDD33USB, and VDDA18ADC
PWR_SVMCR3 RW
peripheral voltage monitor
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. POPL[4:0]
rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LPDS0 MODE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. SDEN Res. Res.
8V _PDN
rw rw rwo
Bit 4 MODE_PDN: Enables the pull down on output voltage during power-down mode
0: Pull-down disabled. The output is in high impedance during the shutdown (default).
1: Pull-down enabled
Bit 3 Reserved, must be kept at reset value.
Bit 2 SDEN: SMPS step-down converter enable
0: SMPS step-down converter disabled
1: SMPS step-down converter enabled (default)
This bit must be written as soon as possible after device start, and it can be written only once
after POR.
When in bypass mode, SMPS is off, reading this bit returns 0, Write it to 0 as soon as
possible after POR, or it will be impossible to enter low power modes. When SMPS is on,
reading this bit returns 1 (default).
Bits 1:0 Reserved, must be kept at reset value.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. PVDO Res. Res. Res. Res. Res. Res. Res. PVDEN
r rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VCORE VCORE VCORE VCORE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
H L LLS MONEN
r r rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TCMFL
TCMR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. XRBSE Res. Res. Res.
BSEN
N
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ACTVOS ACT
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RDY VOS
r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. VOS
RDY
r rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
V08CA V08CA
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. TEMPH TEMPL
PH PL
r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MONE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
N
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BKPRB
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SEN
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DBP
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. SVOS
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. SBF STOPF Res. Res. Res. Res. Res. Res. CSSF PDDS
r r rc_w1 rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
VDDIO4 VDDIO4 VDDIO4
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
VRSTBY VRSEL RDY
rw rw r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VDDIO4 VDDIO4
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SV VMEN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
VDDIO5 VDDIO5 VDDIO5
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
VRSTBY VRSEL RDY
rw rw r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VDDIO5 VDDIO5
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SV VMEN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
VDDIO VDDIO
VDDIO USB33 VDDIO VDDIO
Res. Res. Res. Res. Res. 3VRSE 2VRSE Res. Res. Res. ARDY Res.
VRSEL RDY 3RDY 2RDY
L L
rw rw rw r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
USB33 VDDIO VDDIO USB33 VDDIO VDDIO
Res. Res. Res. ASV Res. Res. Res. Res. AVMEN Res.
SV 3SV 2SV VMEN 3VMEN 2VMEN
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WKUP WKUP WKUP WKUP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
C4 C3 C2 C1
w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WKUP WKUP WKUP WKUP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
F4 F3 F2 F1
r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WKUPPUPD4[1: WKUPPUPD3[1: WKUPPUPD2[1: WKUPPUPD1[1:
Res. Res. Res. Res. Res. Res. Res. Res.
0] 0] 0] 0]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
WKUP WKUP WKUP WKUP WKUP WKUP WKUP WKUP
Res. Res. Res. Res. Res. Res. Res. Res.
P4 P3 P2 P1 EN4 EN3 EN2 EN1
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WKUP WKUP WKUP WKUP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SEC4 SEC3 SEC2 SEC1
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. SEC7 SEC6 SEC5 SEC4 SEC3 SEC2 SEC1 SEC0
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WKUP WKUP WKUP WKUP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PRIV4 PRIV3 PRIV2 PRIV1
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. PRIV7 PRIV6 PRIV5 PRIV4 PRIV3 PRIV2 PRIV1 PRIV0
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SD_VS VDDA1
SD_OK SD_LP MODE SYNC_
_READ 8PMUR SD_STATUS_SPARE[3:0] Res. Res. Res. RLPSN Res. Res.
START M _DVS ADC
Y DY
r r r r r r r r rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MERG
SLOPE_SFST SDFP SDDISI UNLOC
Res. Res. Res. Res. Res. SEL_DLY_NOVL[2:0] SEL_LC[1:0] E_CLK
[1:0] WMEN LM KED
_FSM
rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. DBG_FSM[11:0]
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DBG_O DBG_I UNLOC
SEL_DLY_FSM[11:0] Res.
UT_EN N_EN KED
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Write access is protected and software must write a KEY (0XCAFECAFE) as a word access
in this register to unlock a single write access. Once unlocked, the register accepts a single
written access (byte, half word, or word), after it relocks.
Secure privileged write access only. Any read access is allowed on this register.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
UNLOC
Res. Res. Res. DBG_CFG_BIT[11:0]
KED
rw rw rw rw rw rw rw rw rw rw rw rw rw
0x02C
0x01C
0x00C
0x010 -
406/4691
13.9.21
Reserved
PWR_CR4
PWR_CR3
PWR_CR2
PWR_CR1
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
PWR_BDCR2
PWR_BDCR1
PWR_DBPCR
PWR_CPUCR
PWR_VOSCR
PWR_SVMCR1
Offset Register name
Power control (PWR)
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 27
PWR register map
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 26
VDDIO4VRSTBY Res. Res. Res. Res. Res. Res. Res. Res. Res.
0
25
VDDIO4VRSEL Res. Res. Res. Res. Res. Res. Res. Res. Res.
0
24
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 23
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 21
Res. Res. Res. Res. Res. Res. Res. Res. Res.
0
20
Res. Res. Res. Res. TEMPH Res. Res. Res. Res.
0
0
19
Res. Res. Res. Res. TEMPL Res. Res. Res. Res.
0
0
18
RM0486 Rev 2
Res. Res. Res. Res. V08CAPH ACTVOSRDY Res. Res. Res.
0
1
0
POPL[4:0]
17
VDDIO4RDY SVOS Res. Res. V08CAPL ACTVOS Res. Res. Res.
0
1
0
0
0
16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 14
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 13
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 12
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
Table 64. PWR register map and reset values
11
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 10
Res. SBF Res. Res. Res. Res. Res. VCOREH Res. Res.
0
0
9
VDDIO4SV STOPF Res. Res. Res. Res. Res. VCOREL PVDO Res.
0
0
0
0
8
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 7
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 6
Res. Res. Res. Res. Res. Res. Res. Res. Res. LPDS08V
1
5
Res. Res. Res. Res. Res. Res. TCMFLXRBSEN VCORELLS Res. MODE_PDN
0
0
0
4
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 3
Res. Res. Res. Res. Res. Res. Res. Res. Res. SDEN
1
2
Res. CSSF Res. Res. Res. VOSRDY Res. Res. Res. Res.
0
1
1
VDDIO4VMEN PDDS DBP BKPRBSEN MONEN VOS TCMRBSEN VCOREMONEN PVDEN Res.
0
0
0
0
0
0
0
0
0
0
RM0486
0x080
0x074
0x070
0x058
0x054
0x050
0x038
0x06C
0x04C
0x03C
0x040 -
0x05C -
RM0486
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
PWR_CRCFG1
PWR_SVMCR3
PWR_SVMCR2
PWR_WKUPSR
PWR_WKUPCR
PWR_SECCFGR
PWR_WKUPEPR
PWR_PRIVCFGR
Offset Register name
1
31
SD_VS_READY Res. Res. Res. Res. Res. Res. Res.
1
30
SD_PLM Res. Res. Res. Res. Res. Res. Res.
0
29
VDDA18PMURDY Res. Res. Res. Res. Res. Res. Res.
1
28
Res. Res. Res. Res. Res. Res. Res.
0
27
Res. Res. Res. Res. Res. VDDIO3VRSEL Res.
0
0
SD_STATUS_SPARE 26
[3:0] Res. Res. Res. Res. Res. VDDIO2VRSEL VDDIO5VRSTBY
0
0
0
25
Res. Res. Res. Res. Res. VDDIOVRSEL VDDIO5VRSEL
0
0
0
24
Res. Res. Res. Res. Res. Res. Res.
0
WKUPPUPD4[1:0] 23
Res. Res. Res. Res. Res. Res. Res.
0
22
Res. Res. Res. Res. Res. Res. Res.
0
WKUPPUPD3[1:0] 21
RLPSN Res. Res. Res. Res. ARDY Res.
0
0
0
20
Res. WKUPPRIV4 WKUPSEC4 Res. Res. Res. Res.
0
0
0
WKUPPUPD2[1:0] 19
Res. WKUPPRIV3 WKUPSEC3 Res. Res. USB33RDY Res.
0
0
0
0
18
RM0486 Rev 2
MODE_DVS WKUPPRIV2 WKUPSEC2 Res. Res. VDDIO3RDY Res.
0
0
0
0
0
WKUPPUPD1[1:0] 17
SYNC_ADC WKUPPRIV1 WKUPSEC1 Res. Res. VDDIO2RDY VDDIO5RDY
0
0
0
0
0
0
16
Res. Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Reserved
12
Res. Res. Res. WKUPP4 Res. Res. Res. Res.
0
11
Res. Res. WKUPP3 Res. Res. USB33SV Res.
0
0
SEL_DLY_NOVL 10
Res. Res. WKUPP2 Res. Res. VDDIO3SV Res.
0
0
0
[2:0] 9
Table 64. PWR register map and reset values (continued)
0
0
0
0
8
PRIV7 SEC7 Res. Res. Res. Res. Res.
0
0
0
SEL_LC[1:0] 7
PRIV6 SEC6 Res. Res. Res. Res. Res.
0
0
0
6
PRIV5 SEC5 Res. Res. Res. Res. Res.
0
0
0
SLOPE_SFST 5
[1:0] PRIV4 SEC4 Res. Res. Res. AVMEN Res.
0
0
0
0
4
SDFPWMEN PRIV3 SEC3 WKUPEN4 WKUPF4 WKUPC4 Res. Res.
0
0
0
0
0
0
3
SDDISILM PRIV2 SEC2 WKUPEN3 WKUPF3 WKUPC3 USB33VMEN Res.
0
0
0
0
0
0
0
2
MERGE_CLK_FSM PRIV1 SEC1 WKUPEN2 WKUPF2 WKUPC2 VDDIO3VMEN Res.
0
0
0
0
0
0
0
1
UNLOCKED PRIV0 SEC0 WKUPEN1 WKUPF1 WKUPC1 VDDIO2VMEN VDDIO5VMEN
0
0
0
0
0
0
0
0
0
Power control (PWR)
407/4691
408
Power control (PWR) RM0486
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
DBG_OUT_EN
DBG_IN_EN
UNLOCKED
PWR_CRCFG2
Res.
Res.
Res.
Res.
DBG_FSM[11:0] SEL_DLY_FSM[11:0]
Res.
0x084
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
UNLOCKED
PWR_CRCFG3
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
DBG_CFG_BIT[11:0]
0x088
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0
The RCC manages the clock and reset generation for the whole microcontroller.
The operating modes to whom this section refers are defined in Section 13.6.1: Operating
modes of the PWR.
RCC
NRST nreset_rstn
rcc_sft_rst
sys_rst
iwdg_out_rst bsec_rst, bsec_srst, bsec_nrst
IWDG
option bytes, fuse_ok BSEC
wwdg_out_rst
WWDG System
pwr_bor_rst reset rcc_vcore_rst
control
pwr_por_rst rcc_perx_rst
pwr_vcore_ok
rcc_vsw_rst
pwr_vsw_rst
PWR dbg_stdby_rstn rcc_dbg_rst
cpu_sleep
pwr_wkup
cpu_deepsleep CPU
rcc_pwrds Clock manager
VSW domain lse_ck (CMU)
OSC32_IN lsi_ck M perx_ker_ckreq
LSE /CSS lse_ck hse_ck
U To RTC/AWU PERx
OSC32_OUT X
rcc_lsecss_fail
TAMP DIV To core and busses
hse_ck
System clock
rcc_hsecss_fail System
enabling
(SCEU)
TIM1, 8, hsi_ck rcc_bus_ck
clock
En
15, 16, 17 msi_ck rcc_cpu_ck
OSC_IN HSE / generation
hse_ck (SCGU) rcc_bus2_dbg_ck
CSS
OSC_OUT
PLL1
VDD domain hse_ck
Peripheral clock
To peripherals
Dividers
enabling
LSI
(PKEU)
msi_ck U PLL3 Peripheral rcc_perx_ker_ck
i2s_ckin X
hsi_ck PLL4 kernel rcc_perx_bus_ck
HSI
clock
AHB Bus
selection
MSI msi_ck (PKSU)
i2s_ckin
To BSEC AUDIOCLK
HSIS
hsis_ck
M
RIFSC U
Dividers
rcc_it X MCO1
rcc_s_it Register interface and control E MCO2
S
NVIC rcc_hsecss_it
rcc_lsecss_it
MSv70466V2
NRST I/O System reset, can be used to provide reset to external devices
OSC32_IN I 32 kHz oscillator input
OSC32_OUT O 32 kHz oscillator output
OSC_IN I System oscillator input
OSC_OUT O System oscillator output
MCO1 O Output clock 1 for external devices
Table 65. RCC input/output signals connected to package pins or balls (continued)
Name Type Description
The RCC exchanges signals with all components of the product. Table 66 shows only the
most significant internal signals.
Request to extend the CPU sleep state regardless of wake-up events. If the CPU
rcc_SLEEPHOLDREQn O acknowledges this request (SLEEPHOLDACKn asserted), the CPU remains idle
even when it receives a wake-up event.
perx_ker_ckreq I Generated by some peripherals to request the activation of their kernel clock
rcc_perx_ker_ck O Kernel clock signals generated by the RCC for some peripherals
rcc_perx_bus_ck O Bus interface clock signals generated by the RCC for peripherals
rcc_bus_ck O Clocks generated by the RCC for APB, AHB, and AXI bridges
rcc_cpu_ck O
Clocks generated by the RCC for the CPU
ck_cpu_dbg O
rcc_bus2_dbg_ck O Debug components clock
ck_cpu_tsgen O TSGEN clock (timestamp generator)
ck_cpu_tpiu O TPIU clock (double data rate)
RPCTL
lpwr_rst cmd_pad_rst rcc_pad_rst Pulse
iwdg_out_rst Stretcher
IWDG
OR
wwdg_out_rst
WWDG Filter
pwr_bor_rstn
pwr_por_rstn
NRST
nreset_rstn (external
reset)
(application reset)
CR
app_rstn
RST logic
rcc_vcore_rst
sys_rst (system reset)
Hardware system init done
VDD domain
Hardware bsec_rstn
NAND
mrepair_req
mrepair_ack MREPAIR
VSWRST
RCC_BDCR
Logic
pwr_vsw_rstn rcc_vsw_rst
VSW domain
TAMP tamp_rst
rcc_vcore_rst rcc_vcore_rst
RCC_MISCRSTR
dbgrst
Logic
cdbgrstreq/ack rcc_dbg_rst
DAP Logic
MSv70467V2
See Section 5: OTP mapping (OTP) for additional information, and Table 55: Operating
mode summary for the overview of existing power modes.
cmd_pad_rst
TLSI_SU
RPCTL_lsi_ck
NRST
cmd_pad_rst
TLSI_SU
RPCTL_lsi_ck
NRST
MSv71163V1
rcc_vcore_rst(3)
pwr_por_rstn(2)
nreset_rstn(4)
rcc_vsw_rstn
rcc_perx_rst
rcc_dbg_rst
Reset functions
sys_rst
VDD domain X - - - - - -
MCU X X X - - - -
WWDG X X X - - - -
IWDG X - - X - - -
AXI/AHB interconnections X X X - - - -
Debug components (including DBGMCU): reset all the debug parts except the
X X - - X - -
SWJ-DP function, which is reset by the NJTRST or rcc_vcore_rst resets.
Hardware system init: includes the memory repair. X X - - - - -
RCC reset register (RCC_RSR) X - - - - - -
RCC control register (RCC_CR) and RCC APB5 Sleep enable register
X - - - - - -
RCC (RCC_RDCR)
RCC bitfields in the backup domain - - - - - - X
Other RCC registers X X X - - - -
PWR_CSR1 - - - - - - X
PWR_CSR2 X - - - - - -
PWR_CSR3: individual bits of this register do not have the same reset
PWR X X X - - - -
condition (see Section 13: Power control (PWR) for details).
PWR_WKUPCR, PWR_WKUPFR, and PWR_WKUPEPR X - - X - - -
Other registers X X X - - - -
Peripheral (except APB) - - - - - - X
RTC
Peripheral APB X X X - - X -
BKPSRAM: after a reset of the VSW domain, the BKPSRAM backup regulator is
disabled. This function is controlled via BKPRBSEN (in PWR_BDCR2). If the - - - - - - X
rcc_vsw_rst reset is due to a too low VSW voltage, the BKPSRAM content is lost.
Other peripherals X X X - - X -
1. ‘X’ means that the function is reset by the corresponding reset line. ‘-’ means that the function is not reset by the
corresponding reset line.
2. pwr_por_rstn is asserted when the voltage applied to VDD is not valid. When pwr_por_rstn is asserted, the rcc_vcore_rst,
NRST, sys_rst, and nreset_rstn are asserted as well.
3. rcc_vcore_rst is asserted when the voltage applied to VDD is not valid, or when the system exits Standby mode (because
VDDCORE is switched off). When rcc_vcore_rst is asserted, sys_rst and pwr_dbg_rst are asserted as well.
4. When nreset_rstn is asserted, sys_rst is asserted as well.
LPWRRSTF
WWDGRST
IWDGRSTF
BORRSTF
PORRSTF
LCKRSTF
SFTRSTF
PINRSTF
SBF (2)
# Situation generating a reset
Wake-up event
Wake-up from system Stop mode
HSIS
REG_VOS1 (HSI/MSI) RUN
Time
REG + bandgap Bandgap and regulator settling time OTP_LD Option-bytes loading RUN CPU fetch
REG_VOS1 REG settling time to reach the VOS1 MEM Memory repair delay HSI/MSI HSI or MSI restart delay
RTCSEL
hsi_div_ck MCO1SEL
HSE PERSEL 0
hse_div2_osc_ck CSS lse_ck 1
RTCPRE hsi_ck
FAIL 0 msi_ck 2 MCO1PRE
HSEON hse_osc_ck ÷2 to 63 msi_ck 1 lsi_ck 3 ÷1 to 16
OSC_IN 0 MCO1
HSE tempo hse_ck hse_ck 2 hse_ck 4
OSC_OUT 1 ic19_ck 3 per_ck
CSS ÷2 hse_div2_ck ic5_ck 5
ic5_ck 4 ic10_ck 6
HSECSSBPRE ÷1,2,,16 ic10_ck 5
÷1024 hsi_cal_ck sysa_ck 7
HSION hsi_osc_ck ic15_ck 6
HSIDIV MCO2SEL
HSI tempo ÷1,2,4,8 hsi_div_ck ic20_ck 7
hsi_div_ck 0
hsi_ck
lse_ck 1
÷4 hsi_div4_ck CPUSW
msi_ck 2 MCO2PRE
MSION msi_osc_ck hsi_ck lsi_ck 3
0 ÷1 to 16 MCO2
MSI tempo msi_ck msi_ck 1 sysa_ck hse_ck 4
÷128 msi_cal_ck hse_ck 2 ic15_ck 5
for BSEC hsis_osc_ck ic1_ck 3 ic20_ck 6
HSIS tempo hsis_ck sysb_ck 7
SYSSW
hsi_ck 0
msi_ck 1 sys[b,c,d]_ck
hse_ck 2
PLL1SEL ic[2,6,11]_ck 3
SSCG2 0 ic10_ck
2
1 IC10
PLL3SEL
PKEU (peripheral clock enabling)
HSE oscillator
The HSE allows the application to provide a very accurate high-speed clock for the device.
The HSE can generate an internal clock from two sources:
• external clock source (analog or digital)
• external crystal/ceramic resonator
Refer to the datasheet for the values of CL1, CL2, and R1.
R1
R1
MSv70470V2
hse_ck
clock squarer
HSEDIV2SEL
0
1 1 Tempo and
1
ready logic HSE_DIV2 hse_div2_osc_ck
OSC_IN HSE 0
0
OSC hse_osc_ck
OSC_OUT
HSE_CSS
HSE
rcc_hsecss_fail
RCC
MSv70471V3
HSE controls
The HSE can be switched on and off through HSEON.
The HSE is automatically disabled by hardware when the system enters Stop or Standby
mode (see Table 69).
The HSE clock can also be driven to MCO1 and MCO2 outputs, and used as clock source
for other application components.
HSE programming sequence
In order to initialize the HSE, the application must follow this sequence:
1. Make sure the HSE is not directly or indirectly used as system clock. If it is, switch to
the HSI or MSI as clock source for system clock.
2. Disable the HSE by writing 0 to HSEON.
3. Check that the HSE is disabled by waiting HSERDY = 0.
4. If the oscillator mode is needed, select the oscillator mode with HSEBYP = 0.
5. If an external clock is connected to OSC_IN:
– Select the bypass mode by setting HSEBYP = 1.
LSE oscillator
The LSE allows the application to provide a very accurate low-frequency clock for the
device. The LSE can generate an internal clock from two possible sources:
• external user clock
• external crystal/ceramic resonator
RCC LSEON
LSEEXT LSEBYP
clock squarer
LSE
VSW domain
0
1 LSERDY
1 Tempo and
ready logic lse_ck
OSC32_IN LSE 0
OSC
OSC32_OUT LSEDRV[1:0]
LSEGFON LSE_CSS
rcc_lsecss_fail
MSv70472V1
Warning: The driving capability must not be changed when the LSE is
enabled. The LSE behavior is not guaranteed in that case.
LSE controls
LSEBYP, LSEEXT, LSEDRV, and LSEON are write-protected by DBP in PWR_DBPCR.
In order to modify the bits, DBP must be set 1.
The LSE oscillator is switched on and off using the LSEON bit.
The LSE remains enabled when the system enters Stop, Standby, or VBAT mode (see
Table 69).
The LSE clock can also be driven to MCOx outputs, and used as clock source for external
components.
If the RTC is used, the LSE bypass must not be configured in digital mode, but in low-swing
analog mode (default value after reset).
HSI oscillator
The HSI block provides the default clock to the device. It is a high-speed internal RC
oscillator that can be used directly as system clock, peripheral clock, or as PLL input.
A predivider allows the application to select an HSI output frequency of 8, 16, 32, or
64 MHz. This predivider is controlled by the HSIDIV in RCC_HSICFGR.
The HSI advantages are the following:
• low-cost clock source (no external crystals required)
• faster startup time than HSE (a few microseconds)
• reduced power consumption
The HSI frequency, even with frequency calibration, is less accurate than an external crystal
oscillator or ceramic resonator.
HSI controls
The HSI can be switched on and off using HSION in RCC_CR. The HSIRDY flag
in RCC_SR indicates if the HSI is stable or not. At startup, the HSI output clock is not
released until HSIRDY is set to 1 by hardware.
The HSI clock can also be used as a backup source (auxiliary clock) if the HSE fails
(see CSS on HSE).
The HSI can be disabled or not when the system enters Stop mode (see Table 69).
The HSI clock can also be driven to MCOx outputs, and used as clock source for other
application components.
Care must be taken when the HSI is used as kernel clock for communication peripherals.
The application must take into account the following parameters:
• the time interval between the moment where the peripheral generates a kernel clock
request, and the moment where the clock is really available
• the frequency accuracy
HSI calibration
RC oscillator frequencies can vary from one chip to another due to manufacturing process
variations. That is why each device is factory calibrated by STMicroelectronics to achieve
an ACCHSI accuracy (refer to the product datasheet for more information).
After a power-on reset or pin reset, the factory calibration value is loaded in HSICAL[8:0]
in RCC_HSICFGR.
If the application is subject to voltage or temperature variations, this may affect the RC
oscillator frequency. The user application can trim the HSI frequency using HSITRIM[6:0]
in RCC_HSICFGR.
RCC
HSI
Engineering bsec_hsi_cal[8:0] hsi_cal[8:0]
option bytes CAL[8:0]
(factory calibration)
HSITRIM[6:0] HSICAL[8:0]
(signed) (unsigned)
RCC_HSICFGR
MSv70473V1
Note: The HSI clock divided by eight is also used for PAD compensation mechanism, and must be
enabled if the PAD compensation mechanism is activated. Refer to Section 16: System
configuration controller (SYSCFG) for additional details.
MSI oscillator
The MSI is a low-power RC oscillator that can be used directly as system clock, peripheral
clock, or PLL input.
However, the following point must be considered: If the MSI clock is currently used as kernel
clock for some peripherals, the application must ensure that the MSI frequency change
does not disturb these peripherals.
The MSI advantages are the following:
• low-cost clock source (no external crystals required)
• faster startup time than HSE (a few microseconds)
• very low-power consumption
The MSI provides a clock frequency of 4 MHz (default MSIFREQSEL) or 16 MHz, while the
HSI is able to provide a clock up to 64 MHz.
The MSI frequency, even with frequency calibration, is less accurate than an external crystal
oscillator or ceramic resonator.
MSI controls
The MSI can be switched on and off through the MSION in RCC_CR. The MSIRDY flag
in RCC_SR indicates whether the MSI is stable or not. At startup, the MSI output clock is not
released until MSIRDY is set by hardware.
The MSI can be disabled or not when the system enters Stop mode (see Table 69).
The MSI clock can also be driven to MCOx outputs, and used as clock source for other
application components.
Even if the MSI settling time is faster than the HSI, care must be taken when the MSI is used
as kernel clock for communication peripherals: the application must take into account the
following parameters:
• the interval between the moment when the peripheral generates a kernel clock request,
and the moment when the clock is really available
• the frequency precision
MSI calibration
RC oscillator frequencies can vary because of manufacturing process variations. Each
device is factory calibrated by ST to achieve the specified ACCMSI accuracy (refer to the
product datasheet for more information).
After a power-on or pin reset, the factory calibration value for 4 MHz is loaded
in MSICAL[7:0] in RCC_MSICFGR.
If MSIFREQSEL is set to 16 MHz in RCC_MSICFGR, a different calibration value is
provided by the BSEC.
Voltage or temperature variations can affect the RC oscillator frequency. The user
application can trim the MSI frequency using MSITRIM[4:0] in RCC_MSICFGR.
MSIFREQSEL
BSEC
MSI
Engineering msi_trim_4mhz[7:0]
0 msi_cal[7:0]
option bytes 1
CAL[7:0]
(factory calibration) msi_trim_16mhz[7:0]
MSITRIM[4:0] MSICAL[7:0]
(signed) (unsigned)
RCC_MSICFGR
RCC
MSv70474V2
HSIS oscillator
The HSIS is a 64 MHz RC oscillator to clock only the BSEC. It is always activated after
pwr_por_rstn or app_rstn reset.
When the system goes into Stop or Standby mode, the HSIS clock is disabled by hardware.
Refer to Section 14.6.7 for additional information.
HSIS calibration
RC oscillator frequencies can vary from one device to another, due to manufacturing
process variations. To compensate for this, there is an HSISCAL[8:0] input on the oscillator.
The BSEC provides two calibration values (ambient and not ambient). The RCC selects
between these two values using a select signal from the BSEC.
After a power-on reset, or pad reset, the factory calibration value is loaded in HSISCAL[8:0].
LSI oscillator
The LSI acts as a very low-power clock source that can be kept running when the system
is in Stop or Standby mode for the IWDG and the auto-wake-up unit (AWU). The clock
frequency is around 32 kHz. For more details, refer to the electrical characteristics section
of the datasheet.
The LSI can be switched on and off using LSION. The LSIRDY flag indicates whether the
LSI oscillator is stable or not. If an independent watchdog is started either by hardware or
software, the LSI is forced on, and cannot be disabled.
The LSI remains enabled when the system enters Stop or Standby mode (see Table 69).
At LSI startup, the clock is not provided until the hardware sets LSIRDY. An interrupt can be
generated if enabled in RCC_CIER.
Te LSI clock can also be driven to MCOx outputs, and used as a clock source for other
application components.
CSS on HSE
The CSS can be enabled by software via HSECSSON. This bit can be enabled even when
HSEON = 0.
The CSS on HSE is activated when the HSE is enabled and ready, and when the software
sets HSECSSON = 1. The CSS on HSE does no longer work when the HSE is disabled.
For example, this function does not work when the system is in Stop mode.
HSECSSON cannot be cleared directly by software. It is cleared by hardware when a
system reset occurs, or when the system enters Standby mode (see Section 14.5.2).
On an HSE failure, an HSI injection feature can automatically inject a divided HSI clock in
replacement at the root of the HSE tree. Users of the failed HSE keep running, but
potentially at a slightly lower frequency. The HSI injected clock is adapted to the HSE
frequency by an integer division. The PLLs relocks, but at the same or lower speed.
To enable the automatic HSI injection, first configure HSECSSBPRE in RCC_HSECFGR,
then set HSECSSBYP = 1.
The HSI division ratio is configured with HSECSSBPRE. For instance, with the HSI
at 64 MHz and an HSE at 48 MHz, the division ratio must be configured to 2x
(HSECSSBPRE = 1): a failed HSE is replaced by a clock at 64 / 2 = 32 MHz.
When the CSS on HSE is enabled, the following actions are done by the RCC if a failure is
detected:
• If the HSI injection feature is enabled, the HSI oscillator is forced active, and the HSE
clock is replaced by hsi_css_ck.
• rcc_hsecss_fail is asserted.
• The clock failure event (rcc_hsecss_fail) is also sent to the break inputs of
advanced-control timers (TIM1/8/15/16/17).
• An NMI interrupt is generated to inform the software about the failure (rcc_hsecss_it).
This allows the MCU to perform rescue operations. The NMI interrupt is asserted until
HSECSSF = 0 in RCC_CICR. The HSECSSF flag can be cleared by setting
HSECSSC = 1.
• A tamper event can also be triggered to clear content of backup registers and
BKPSRAM.
CSS on LSE
A CSS on the LSE oscillator can be enabled by software by programming LSECSSON. This
bit is disabled by hardware if one of the following conditions is met:
• after a VSW hardware reset (pwr_vsw_rst)
• after a VSW software reset via VSWRST bit
The software can also disable the CSS after an LSE failure detection.
The CSS on LSE works in all modes (Run, Stop, and Standby modes) including VBAT mode.
The LSECSS provides a re-arm feature, offering the possibility to the software to re-arm
the LSECSS, and to re-enable the LSE clock when a failure has been detected. This feature
allows the application to decide if the LSE must be provided again to the RTC even
if a failure occurred, or if another action must be performed. For example, the application
can decide to reset the VSW domain only if a certain number of consecutive LSE failures
occurred, within a time window.
The LSECSS offers two flag signals:
• the LSECSSD able to retain an LSE failure even in VBAT mode
• the LSECSSF used to generate an interrupt in case of LSE failure (flag not affected
by a failure detected when the product is in VBAT mode)
The sequence hereafter describes the LSE that enables sequence with the CSS enabled:
1. Follow the LSE enable procedure given in LSE programming sequence, except
the last step.
2. Select the LSE clock via RTCSEL[1:0].
3. Set the LSECSSON bit to 1.
4. If no further changes are needed, clear DBP to 0 in PWR_DBPCR to write-protect
accesses.
Note: The LSECSSON bit must be enabled after the LSE is enabled (LSEON set by software) and
ready (LSERDY set by hardware), and after the RTC clock has been selected
through RTCSEL.
If a failure is detected on the LSE, the hardware does the following:
• The LSE clock is no more delivered to the RTC.
• RTCSEL, LSECSSON, and LSEON are not changed by the hardware.
• A failure event is generated (rcc_lsecss_fail). This event allows the system to wake up
from Standby mode, but also to protect the backup registers and BKPSRAM via TAMP.
This event is also generated in VBAT mode.
• The LSECSSF is activated (except in VBAT mode) in order to generate an interrupt
(rcc_lsecss_it, enabled by LSECSSIE).
• The LSECSSD is activated as well, retaining the first LSE failure even in VBAT mode.
On the software side, different actions can be taken according to the application
requirements. Three different cases are described hereafter in order to illustrate the
hardware behavior, they can also be combined. The application can also decide to handle
LSE failure differently.
Case A
The application no longer wants to use LSE when a failure is detected:
1. Unlock registers by setting DBP in PWR_DBPCR to 1.
PLLON PLL
FOUTPOSTDIVEN
Lock detect LOCK
DACEN
MODDSEN
800 to 3200 MHz BYP
5 to 1200 MHz
FREF ÷1..63
PFD CP LPF VCO ÷ 1-7 ÷ 1-7 0
FOUTPOSTDIV
DIVM[5:0] FREF 1
DAC POSTDIV1[2:0]=1
FBDIV[11:0] POSTDIV2[2:0]=1
MODDIV[3:0] SSCG ǻȈmodulator
MODSPR[4:0] FRAC[23:0]
(DSM)
MODSPRDW
÷1..15
DIVN[11:0] [11:0]
DIVNFRAC[23:0]
÷16..640 integer
MODSSDIS ÷20..320 fractional
CLKSSCG
MODSSRST
MSv70475V2
DIVN
F VCO = F REF × ----------------
DIVM
F VCO
F OUTPOSTDIV = ----------------------------------------------------------------
-
POSTDIV1 × POSTDIV2
Using the PLLs in fractional mode
This mode is enabled when DSM ≠ 0, PLLxMODDSEN = 1, and PLLxMODSSDIS = 1.
To load the value into the DSM perform the following sequence:
1. Clear PLLxON to 0.
2. Set DIVN value (valid range 20 to 320).
3. Set DIVNFRAC (in RCC_PLLxCFGR2) to the required value, and set
PLLxMODDSEN = DACEN 1.
4. Set PLLxMODSSRST to 1.
5. Set PLLxON to 1.
Caution: Do not update DIVN and DIVNFRAC after the PLL has been enabled.
The minimum FREF is 10 MHz in fractional mode.
The VCO frequency (FVCO) and output frequency expressions are the following:
⎛ DIVNFRAC⎞
⎜ DIVN + ------------------------------------⎟
⎝ 24 ⎠
2
F
VCO
= F REF × ------------------------------------------------------
DIVM
F VCO
F OUTPOSTDIV = -----------------------------------------------------------------
-
POSTDIV1 × POSTDIV2
MD
FN t
MD
t
MD
Center-spread Down-spread
MSv70476V1
The peak modulation depth (in percentage) is given by the formula MD (%) = MODSPR /10.
3. Compute the MODSPR value according to the desired modulation depth (MD).
4. Set the MODSPRDW value according to the desired modulation type (center-spread or
down-spread).
5. Compute DIVN accordingly (DIVNFRAC=0):
⎛ F N × DIVM⎞
DIVN = ROUND ⎜ ---------------------------⎟
⎝ F REF ⎠
aclks
CT AXI domain CPU/GPU
aclka
sys_bus_ck
ck_timg2
Timer group2
hclkm
÷ 1,2,4,8,16 AHBM main matrix
sys_bus2_ck hclk[5:0]
AHB0/1/2/3/4/5 peripheral clocks
pclk1
÷ 1,2,4,8,16 APB1 peripheral clocks
FBUSmax / 2 PPRE2
pclk2
÷ 1,2,4,8,16 APB2 peripheral clocks
PPRE4
pclk4
hsi_ck 0 ÷ 1,2,4,8,16 APB4 peripheral clocks
msi_ck 1 sysc_ck sys_npu_ck
D PPRE5
hse_ck 2 pclk5
÷ 1,2,4,8,16 APB5 peripheral clocks
ic6_ck 3
hclku
CT USB/SDMMC peripheral clocks
hclke
CT Ethernet peripheral clocks
hsi_ck 0
msi_ck 1 sysd_ck sys_npur_ck
D CT NPU
hse_ck 2
AXISRAM3/4/5/6 clocks
(close to NPU)
MSv70477V2
x Represents the selected value after a system reset. D The switch is dynamic: the transition between two inputs is glitch-free.
CT Represents a cLock tree balancing, with an alignment of the downstream synchronous logic.
1. Dividers values can be changed on-the-fly. All dividers have 50% duty-cycles.
exti_wkup pwr_wkup
EXTI PWR RCC
Wake-up
events ...
rcc_pwrds
sys_ck
MSv70478V1
When the microcontroller exits Standby mode, the HSI is selected as system and kernel
clock. RCC registers are reset to their initial values except for the backup domain
configurations (LSE in RCC_CR/RCC_LSECFGR, RTC in RCC_CCIPR7, RCC_BDCR),
and the reset cause (RCC_RSR, RCC_HWRSR).
Caution: When leaving Stop mode without reset (but not from Standby mode), the RCC returns in the
same state as before, except for the software that has been forced to select the
STOPWUCK source. When leaving Standby mode, the application can restore previous
CPU clock settings, if needed.
Caution: If the system clock switch selection (SYSSW) is HSI or MSI oscillator, STOPWUCK (system
clock selection after a wake-up from system Stop) must select the same oscillator.
hclk2 0(3)
per_ck 1
ic7_ck 2
ic8_ck 3
Kernel ADF1SEL 200 A
ADF1 msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
timg_ck 7
Bus hclk2 - - 200 -
hclk1 0(3)
per_ck 1
ic7_ck 2
ic8_ck 3
Kernel ADC12SEL 125 A
ADC12 msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
timg_ck 7
Bus hclk1 - - 200 -
sys_bus_ck - - 400 -
CACHEAXI Bus
hclk5 - - 200 -
CRC Bus hclk4 - - 200 -
CRYP Bus hclk3 - - 200 -
Kernel sys_cpu_ck - - 800 A
DBG
Bus ck_bus2_dbg - - 200 -
Kernel hsi_div8_ck - - 10 A
DTS
Bus pclk4 - - 100 -
Kernel as DCMIPP - DCMIPPSEL - A
CSI
Bus pclk5 - - 200 -
Kernel ic18_ck - - 27 A
CSIPHY
Bus pclk5 - - 200 -
pclk5 0
per_ck 1
Kernel DCMIPPSEL 333 A
ic17_ck 2
DCMIPP
hsi_div_ck 3
sys_busa_ck - - 400 -
Bus
pclk5 - 200
GPDMA1 Bus hclk1 - - 200 -
hclk5
DMA2D Bus - - 200 -
aclk
Kernel hsi_div8_ck - - 10 A
DTS
Bus pclk4 - - 200 -
ETH1_TX_CLK - - 25 A
ETH1_RX_CLK/ETH1
0(3)
_REF_CLK
ETH1REFCLKSEL 125 A
eth1_clk_fb 1
sys_bus2_ck 0(3)
per_ck 1
Kernel ETH1CLKSEL 125 A
ETH1 ic12_ck 2
hse_ck 3
sys_bus2_ck 0
per_ck 1
ETH1PTPSEL 200 A
ic13_ck 2
hse_ck 3
Bus hclk1 - - 200 -
EXTI Bus pclk4 - - 125 -
pclk1 0(3)
per_ck 1
Kernel FDCANSEL 150 A
FDCAN ic19_ck 2
hse_ck 3
Bus pclk1 - - 200 -
hclk5 0(3)
per_ck 1
Kernel FMCSEL 200 A
ic3_ck 2
FMC
ic4_ck 3
sys_buss_ck -
Bus - 400 -
hclk5
GPIOA-H, GPION-Q Bus hclk4 - - 200 -
sys_buss_ck
GFXMMU Bus - - 400 -
hclk5
GFXTIM Bus pclk5 - - 200 -
HASH Bus hclk3 - - 200 -
pclk1 0(3)
per_ck 1
ic10_ck 2 I2C1SEL, I2C2SEL,
I2C1, I2C2, Kernel 100 A
ic15_ck 3 I2C3SEL
I2C3
msi_ck 4
hsi_div_ck 5
Bus pclk1 - - 100 -
(3)
pclk1 0
per_ck 1
ic10_ck 2
Kernel I2C4SEL 100 A
I2C4 ic15_ck 3
msi_ck 4
hsi_div_ck 5
Bus pclk4 - - 100 -
pclk1 0(3)
per_ck 1
ic10_ck 2
Kernel I3C1SEL, I3C2SEL 100 A
I3C1, I3C2 ic15_ck 3
msi_ck
hsi_div_ck
Bus pclk1 - - 100 -
Kernel lsi_ck - - 1 A
IWDG
Bus pclk4 - - 100 -
JPEG Bus hclk5 - - 200 -
pclk1 0(3)
per_ck 1
ic15_ck 2
Kernel LPTIM1SEL 200 A
LPTIM1 lse_ck 3
lsi_ck 4
timg_ck 5
Bus pclk1 - - 200 -
(3)
pclk4 0
per_ck 1
LPTIM2SEL.
ic15_ck 2 LPTIM3SEL.
LPTIM2, LPTIM3, Kernel 200 A
lse_ck 3 LPTIM4SEL,
LPTIM4, LPTIM5 LPTIM5SEL
lsi_ck 4
timg_ck 5
Bus pclk4 - - 200 -
(3)
pclk4 0
per_ck 1
ic9_ck 2
Kernel ic14_ck 3 LPUART1SEL 100 A
LPUART1
lse_ck 4
msi_ck 5
hsi_div_ck 6
Bus pclk4 - - 100 -
pclk5 0
per_ck 1
Kernel LTDCSEL 86 A
ic16_ck 2
LTDC
hsi_div_ck 3
pclk5 - - 200
Bus -
sys_busa_ck - - 400
As XSPI1, XSPI2,
aclk -
MCE1, MCE2, MCE3 Bus XSPI3 200 -
hclk5 -
aclk - As FMC
MCE4 Bus 200 -
hclk5 -
hclk2 0(4)
per_ck 1
ic7_ck 2
ic8_ck 3
Kernel MDF1SEL 200 A
MDF1 msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
timg_ck 7
Bus hclk2 - - 200 -
MDIOS Bus pclk1 - - 200 -
sys_npu_ck - - 1000 A
Kernel
sys_npur_ck - - 900 A
NPU
sys_bus_ck - - 400
Bus
sys_bus2_ck - - 200 -
hse_div2_ck 0(3)
per_ck 1 OTGPHY1SEL,
Kernel 48 A
ic15_ck 2 OTGPHY2SEL
OTGPHY1,
hse_div2_osc_ck 3
OTGPHY2
otgphy1_ker_ck, OTGPHY1CK
0
otgphy2_ker_ck REFSEL,
Kernel 200 -
OTGPHY2CK
hse_div2_osc_ck 1 REFSEL,
Kernel phyclock - - 60 A
OTG1, OTG2
Bus hclku - - 200 -
PKA Bus hclk3 - - 200 -
PWR Bus hclk4 - - 200 -
(3)
hclk5 0 -
per_ck 1 -
Kernel PSSISEL 40
PSSI ic20_ck 2
hsi_div_ck 3
Bus hclk5 - - 200 -
RCC Bus hclk - - 200 -
Kernel hsis_osc_ck - - 64 A
RNG
Bus hclk3 - - 200 -
no clock 0(3)
lse_ck 1
Kernel lsi_ck 2 RTCSEL 4 A
RTC(5)
hse_ker_ck /
3
(RTCDIV+1)
Bus pclk4 - - 100 -
Kernel hclk3 - - 200 A
SAES
Bus hclk3 - - 200 -
(3)
pclk2 0
per_ck 1
ic7_ck 2
ic8_ck 3
Kernel SAI1SEL, SAI2SEL 200 A
SAI1, SAI2 msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
spdif_symb_ck 7
Bus pclk2 - - 200 -
(3)
sys_bus2_ck 0
per_ck 1
Kernel SDMMC1SEL 208 A
SDMMC1 ic4_ck 2
ic5_ck 3
Bus sys_bus2_ck - - 200 -
(3)
sys_bus2_ck 0
per_ck 1
Kernel SDMMC2SEL 208 A
SDMMC2 ic4_ck 2
ic5_ck 3
Bus sys_bus2_ck - - 200 -
pclk1 0(3)
per_ck 1
ic7_ck 2
Kernel ic8_ck 3 SPDIFRX1SEL 200 A
SPDIFRX1
msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
Bus pclk1 - - 200 -
(3)
pclk2 0
per_ck 1
ic8_ck 2
Kernel ic9_ck 3 SPI1SEL 200 A
SPI1
msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
Bus pclk2 - - 200 -
(3)
pclk1 0
per_ck 1
ic8_ck 2
Kernel ic9_ck 3 SPI2SEL, SPI3SEL 200 A
SPI2, SPI3
msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
Bus pclk1 - - 200 -
pclk2 0(3)
per_ck 1
ic9_ck 2
Kernel ic14_ck 3 SPI4SEL, SPI5SEL 133 A
SPI4, SPI5
msi_ck 4
hsi_div_ck 5
hse_ck 6
Bus pclk2 - - 200 -
pclk4 0(3)
per_ck 1
ic8_ck 2
Kernel ic9_ck 3 SPI1SEL 200 A
SPI6
msi_ck 4
hsi_div_ck 5
I2S_CKIN 6
Bus pclk4 - - 200 -
TIM2, TIM3, TIM4, Kernel timg1_ck - - 400 S
TIM5, TIM6, TIM7,
TIM10, TIM11, Bus pclk1 - - 200 -
TIM12, TIM13, TIM14
TIM1, TIM8, TIM9, Kernel timg2_ck - - 400 S
TIM15, TIM16,
TIM17, TIM18 Bus pclk2 - - 200 -
pclk2 0(3)
per_ck 1
ic9_ck 2
Kernel ic14_ck 3 USART1SEL 100 A
USART1
lse_ck 4
msi_ck 5
hsi_div_cl 6
Bus pclk2 - - 100 -
(3)
pclk1 0
per_ck 1
USART2SEL,
ic9_ck 2 USART3SEL,
USART2, USART3, UART4SEL,
Kernel ic14_ck 3 100 A
UART4, UART5, UART5SEL,
UART7, UART8 lse_ck 4 UART7SEL,
UART8SEL
msi_ck 5
hsi_div_ck 6
Bus pclk1 - - 100 -
pclk2 0(3)
per_ck 1
ic9_ck 2
USART6SEL,
USART6, UART9, Kernel ic14_ck 3 UART9SEL, 100 A
USART10 USART10SEL
lse_ck 4
msi_ck 5
hsi_div_ck 6
Bus pclk2 - - 100 -
Kernel hsi_div4_ck - - 25 A
UCPD1
Bus pclk1 - - 100 -
sys_busa_ck - - 400 -
VENC Bus
pclk5 - - 200 -
VENCRAM Bus sys_buss_ck - - 400 -
VREFBUF Bus pclk4 - - 200 -
WWDG1 Bus pclk1 - - 200 -
hclk5 0(3)
per_ck 1 XSPI1SEL,
Kernel XSPI2SEL, 200 A
XSPI1, XSPI2, XSPI3 ic3_ck 2 XSPI3SEL
ic4_ck 3
RCC RAMCTRLSS
SCGU SCEU axisram3_en AXISRAM3
AXISRAM3EN
Logic
AXISRAM3LPEN
axisram4_en
AXISRAM4
AXISRAM4EN
NPU_NIC
Logic
AXISRAM4LPEN
axisram5_en AXISRAM5
AXISRAM5EN
Logic
AXISRAM5LPEN
axisram6_en
AXISRAM6
AXISRAM6EN
Logic
sys_npur_ck AXISRAM6LPEN
sys_npu_ck
NPU_NOC
Sleep/ noc_en ck_noc_npu
Stop
logic
aclkn_en ck_icn_npu
ACLKNEN Logic
ACLKNLPEN
npu_en NPU
NPUEN
Logic
NPULPEN
ck_icn_m_npu
sys_bus_ck
ck_icn_s_cacheaxi CACHEAXI
CACHEAXIRAMEN CACHEAXI
Logic
CACHEAXIRAMLPEN
NPU_NIC
RAM
sys_bus_ck ck_icn_m_cacheaxi
CACHEAXIEN
Logic
CACHEAXILPEN
sys_bus2_ck ck_icn_p_cacheaxi
aclknc_en ck_icn_npuc
sys_bus_ck
ACLKNCEN
ACLKNCLPEN Logic
NPUSS
MSv70479V2
Clock distribution for graphic blocks (GPU, LTDC, DCMIPP, and PSSI)
RCC PSSI
PKSU PKEU
hclk5 ck_icn_p_pssi
hclk pixclk
PSSISEL PSSIEN
Logic feedback
hclk5 0 PSSILPEN
per_ck 1 ck_ker_pssi PSSI_PXCLK
D
ic20_ck 2
hsi_div_ck 3 DCMI
pclk pixclk
pclk5 ck_icn_p_dcmipp
pclk
DCMIPP
aclk ck_icn_m_dcmipp
aclk
DCMIPPSEL pxclk DCMIPP_PXCLK
DCMIEN
Logic
pclk5 0 DCMILPEN
per_ck 1 ck_ker_dcmipp
clk_proc
ic17_ck 2 D
hsi_div_ck 3
CSI2Host
clk_proc
pclk5 ck_icn_p_csi
pclk
CSIEN
Logic clk_byte
CSILPEN
CSIPHY
clk_byte
ck_ker_csiphy
clk_cfg
RCC PKEU
GPU
hclk5 ck_icn_p_gpu
hclk
aclk ck_icn_m_gpu
aclk
GPUEN
Logic
GPULPEN
ICACHE
hclk
ck_icn_p_icache
aclk
ck_icn_m_icache
GFXMMU
hclk5 ck_icn_p_gfxmmu
hclk
aclk ck_icn_m_gfxmmu
aclk
GFXMMUEN
Logic
GFXMMULPEN Bus interface clocks
Kernel clocks
MSv70480V2
The PSSI receives an AHB clock and a kernel clock (pxclk). The pxclk can be provided
either by an external device via PSSI_PIXCK pin, or by the RCC.
Note: The clock generated by the RCC is provided to pxclk input by the feedback path of the
PSSI_PIXCK pin. The drive of the PSSI_PIXCK is controlled by the PSSI.
RCC
PKSU PKEU LTDC
pclk5 ck_icn_p_ltdc
pclk
aclk ck_icn_m_ltdc
aclk
LTDCSEL LTDCEN ltdc_en
Logic pll_lock
pclk5 0 LTDCLPEN
per_ck 1 ck_ker_ltdc
pixel_ck
ic16_ck 2 D
hsi_div_ck 3
X represents the selected switch input after a system reset. Kernel clocks
MSv70482V1
RCC VENC
PKEU
pclk5 ck_icn_p_venc
pclk
aclka ck_icn_m_venc
aclk
VENCRAMEN
Logic
VENCRAMLPEN
MSv70483V2
ck_icn_p_ucpd1
UCPD1
pclk1 pclk
ucpd1_ker_ck
hsi_osc_ck ÷4 ck_ker_ucpd1
usbpdclk
6 MHz min
UCPD1EN ucpd1_ck_ker_req
Logic clkreq
UCPD1LPEN
OTG1
hclku ck_icn_m_otg1
hclk
otg1_cg_en
utmi_clk
(for utmi+, 8 bit itf)
OTG1EN
Logic
OTG1LPEN
UTMI+
phyclock
OTG1PHYCTL
_CR
OTGPHY1
OTGHSPHYFSEL[2:0]
OTGHSPHYCMN 480 MHz
OTGPHY1EN
Logic
hse_div2_ck 0 OTGPHY1LPEN
otgphy1_cg_en PLL
per_ck 1 CLKCORE
otgphy1_ker_ck
D 0
ic15_ck 2 Allowed freq:
19.2, 20, 24 MHz hse_div2_osc_ck 1
hse_div2_osc_ck 3
FSEL[2:0]
10 REFCLKSEL[1:0]
otg2_cg_en utmi_clk
(for utmi+, 8 bit itf)
OTG2EN
Logic
OTG2LPEN
UTMI+
phyclock
phyclock
OTG2PHYCTL
_CR
OTGPHY2
OTGHSPHYFSEL[2:0]
OTGHSPHYCMN 480 MHz
OTGPHY2EN
Logic
hse_div2_ck 0 OTGPHY2LPEN
otgphy2_cg_en PLL
per_ck 1 CLKCORE
otgphy2_ker_ck
D 0
ic15_ck 2 Allowed freq:
19.2, 20, 24 MHz hse_div2_osc_ck 1
hse_div2_osc_ck 3
FSEL[2:0]
10 REFCLKSEL[1:0]
D The switch is dynamic: the transition between two inputs is glitch-free.
ETH1_MDC
PKSU PKEU
ETH1CLKSEL
ETH1EN
Logic
sys_bus2_ck 0 ETH1LPEN
per_ck 1 ck_ker_eth1
D
ic12_ck 2
hse_ck 3
ETH1TXEN Logic ck_eth1_tx_en
ETH1TXLPEN
ETH1PTPSEL
sys_bus2_ck hclk ETH1_RX_CLK/
sys_bus2_ck 0 ck_icn_p_eth1
ETHPTPDIV ETH1_REF_CLK
per_ck 1 clk_ptp_ref
D ÷ 1 to 16 ck_ker_eth1ptp
ic13_ck 2
hse_ck 3
D The switch is dynamic: the transition between two inputs is glitch-free. Bus interface clocks
X represents the selected switch input after a system reset. Kernel clocks
MSv70485V1
The ETH1 can generate a reference clock to the external PHY via the ETH1_CLK pin. The
ETH1_CLK is generated only if all the following conditions are met:
• ETH1EN is enabled.
• The system is in Run or Sleep mode.
• The clock source for ck_ker_eth1 is available.
The clock management for ETH is very flexible and based on the PHY interface mode (MII,
RMII, or RGMII). All clock signals (enables, selection, and pins) are shown in Figure 54.
GTX1_CLK
ETH1_TX_CLK 2.5 or 25 MHz
(rgmii)
(mii)
1
ETH1_MDC
ETH1_CLK125
(rgmii) 0
mii gmii_mdc_o
0,1 0 ck_eth1_tx_en ETH1
ETH1_CLK_SEL
rgmii clk_tx
div 50 2 1
rmii clk_tx_180
div 5 3 4
phy_intf_sel
ETH1_SEL(2:0)
mac_speed(1)
mac_speed(0) mac_speed(1:0)
ETH1_REF_CLK_SEL
ETH1_SEL(2)
eth_clk_fb
1
div 20 1 ck_eth1_rx_en
ETH1_RX_CLK rmii 1
(mii,rgmii) 0
clk_rx
ETH1_REF_CLK div 2 0
(rmii) rgmii 0
mii clk_rx_180
ck_eth1_mac_en
clk_rmii
1 csysreq
ck_icn_m_eth1 aclk
ck_icn_p_eth1 hclk
ck_ker_eth1ptp clk_ptp_ref
64'b0 ptp_timestamp_i(63:0)
MSv70486V1
RCC
PKEU
MDIOS
RCC_APB1RSTR RESETn
mdios_mdc
mdc
MDC
(from pin)
MDIOSEN Logic mdio
MDIOSLPEN
MDIO
ck_icn_s_mdio pclk
MSv70487V1
FMCRST
RCC
sys_rstn FMC
RISUPhclk MCE4 RISUP
hclk
ck_icn_p_mce4
hclk
MCE4EN RISAF4
fmc_ker_ck
Logic aresetn
MCE4LPEN ck_icn_p_risaf hresetn
hclk
aclk
aclk
aclk
hclk
RISAFEN
Logic
RISAFLPEN
ck_icn_s_fmc
FMCEN
Logic
FMCLPEN ck_icn_p_fmc
FMCSEL
hclk5 0 ck_ker_fmc
per_ck 1
D
ic3_ck 2
ic4_ck 3
D The switch is dynamic: the transition between two inputs is glitch-free. Bus interface clocks
X represents the selected switch input after a system reset. Kernel clocks
MSv70488V2
RCC XSPIPHY1RST
XSPIMRST hresetn
hclk
XSPIMEN hclk
Logic
XSPIMLPEN RISUPXSPIM
XPI1RST
sys_rstn
RISUP MCE1 RISUP XSPI1
hclk hclk
ck_icn_p_mce1
hclk
MCE1EN RISAF1
xspi_ker_ck
Logic aresetn
MCE1LPEN
ck_icn_p_risaf hresetn
hclk
aclk
aclk
aclk
hclk
RISAFEN
Logic XSPI-PHY1
RISAFLPEN
DLL_XSPI1
ck_icn_s_xspi1
XSPI1SEL
XSPI1EN
Logic
XSPI1LPEN
hclk5 0 X
ck_ker_xspi1
per_ck 1
D S
ic3_ck 2
ic4_ck
P
3 XSPI2RST
I
M
RISUP MCE2 RISUP XSPI2
hclk hclk
ck_icn_p_mce2
hclk
MCE2EN RISAF2
xspi_ker_ck
Logic aresetn
MCE2LPEN
hresetn
hclk
aclk
aclk
aclk
hclk
XSPI-PHY2
ck_icn_s_xspi2
XSPI2SEL DLL_XSPI2
XSPI2EN
Logic
hclk5 XSPI2LPEN
0
per_ck ck_ker_xspi2
1
D
ic3_ck 2
ic4_ck 3
XSPI3RST
MCE3EN RISAF3
xspi_ker_ck
aclk
aclk
hclk
ck_icn_s_xspi3
XSPI3SEL
XSPI3EN
Logic
hclk5 XSPI3LPEN
0
per_ck ck_ker_xspi3
1
D
ic3_ck 2 XSPIPHY2RST
ic4_ck 3
D The switch is dynamic: the transition between two inputs is glitch-free. X represents the selected switch input after a system reset. Kernel clocks
MSv70489V2
The SDMMC1 and SDMMC2 have separate kernel clocks. A clock switch allows the
selection between four different sources. Each SDMMC can be enabled independently.
When an SDMMC is enabled via its SDMMCxEN bit, the associated SDMMC_SYSCONF
is also enabled.
The application must configure the SDMMC to match the duty-cycle constraint of the
interface clock.
For example, if the SDMMC works in SDR50, a kernel clock of 50 MHz, with a duty cycle
better than 30-70% is enough. If the SDMMC works in DDR50, it is recommended to
provide a kernel clock of 100 MHz, and to divide the frequency of the kernel clock by two,
using the SDMMC divider, to ensure a duty-cycle very close to 50% for the SDMMC_CK.
SDMMC1_DLL
SDMMC1EN
Logic hresetn
SDMMC1LPEN
SDMMC1
SDMMC1SEL RISUP hresetn
hresetn
hclk
sys_bus2_ck 0
per_ck sdmmc_hclk
1D
ic4_ck 2 RIMU
ic5_ck 3 hresetn
hclk
sdmmc_ker_ck
SDMMC2_DLL
SDMMC2EN
Logic hresetn
SDMMC2LPEN
SDMMC2
SDMMC2SEL RISUP hresetn
hresetn
hclk
sys_bus2_ck 0
per_ck sdmmc_hclk
1 D
ic4_ck 2 RIMU
ic5_ck 3 hresetn
hclk
sdmmc_ker_ck
D The switch is dynamic: the transition between two inputs is glitch-free. Bus interface clocks
X represents the selected switch input after a system reset. Kernel clocks
MSv70490V1
RCC ADC1-2
PKSU PKEU
ADC12SEL[2:0]
hclk1 adc_hclk
hclk1 0 == 7 ADC12EN
per_ck 1 Logic
ADCPRE[7:0] ADC12LPEN
ic7_ck 2
adc_ck
ic8_ck 3 D ÷ 1 to 256
msi_ck 4
hsi_div_ck 5
TIMx
i2s_ckin 6
ck_timg1 Pulse-gen clk_adc_sync
ck_timg1 7
D The switch is dynamic: the transition between two inputs is glitch-free. Bus interface clocks
X represents the selected switch input after a system reset. Kernel clocks
MSv70491V2
RCC RTCAPBEN
Logic
RTCAPBLPEN RTC
RTCSEL rtc_pclk
pclk4
rtc_ker_ck
0 0 RTCEN
lse_ck 1
D
lsi_ck 2
hse_rtc_ck 3
RTCPRE
hse_ck ÷ 2 to 63
PKSU PKEU
D The switch is dynamic: the transition between two inputs is glitch-free. Bus interface clocks
X represents the selected switch input after a system reset. Kernel clocks
MSv70492V1
If the LSE is selected as RTC clock, the RTC works normally even if the backup or the VDD
supply disappears.
The LSE clock is in the backup domain, whereas the other oscillators are not, with the
following consequences:
• If LSE is selected as RTC clock, the RTC continues to work even if the VDD supply
is switched off, provided the VBAT supply is maintained.
• If LSI is selected as the RTC clock, the AWU state is not guaranteed if the VDD supply
is powered off.
• If the HSE clock is used as RTC clock, the RTC state is not guaranteed if the VDD
supply is powered off, or if the VVDDCORE supply is powered off. In addition, the HSE
is not available if the system goes to Stop mode.
rtc_ker_ck is enabled through RTCEN in RCC_APB4ENR.
The RTC bus interface clock (APB clock) is enabled through RTCAPBEN
in RCC_APB4ENR, and RTCAPBLPEN in RCC_APB4LLPENR.
Note: To read the RTC calendar register when the APB clock frequency is less than seven times
the RTC clock frequency (FAPB < 7 x FRTCLCK), the software must read the calendar time
and date registers twice. Data are correct if the second read access to RTC_TR gives the
same result of the first one. Otherwise, a third read access must be performed.
RCC WWDGEN
Logic WWDG
WWDGLPEN
pclk
pclk1
IWDG OTP_IWDG_HW
OTP logic
MSv70493V1
ck_sys_dbg
ck_cpu_tpiu
TRACECLKEN ck_trace (traceclkin)
from DBGMCU
MSv70494V2
Memory handling
The CPU can access all memory areas available in the device:
• AXISRAM1 to AXISRAM6, CACHEAXI RAM, and FLEXRAM
• AHBSRAM1 and AHBSRAM2
• BKPSRAM
CACHEAXI RAM, and VENCRAM are disabled by default, see RCC embedded memories
enable register (RCC_MEMENR). The CPU must enable them before using these
memories.
Read or write accesses to a peripheral register or memory, without the clocks enabled in the
RCC registers, result in a system freeze. A system reset is required to unlock this.
If the access is performed by a debug interface (as an example, from a debug session
inside an IDE), then a power-on reset is required to unlock the device, as the debug
interface is not affected by a system reset.
Note: The memory interface clocks (flash memory and RAM interfaces) can be stopped by
software during Sleep mode (via SRAMyLPEN bits).
Refer to Section 14.6.11 and Section 14.6.12 for details on clock enabling.
PERxSEL ...
1 2
in0_ck ...
PERxSEL
1 2
in1_ck ... in0_ck 0
D
in1_ck 1
rcc_perx_ker_ck ...
(Kernel clock provided to PERx) rcc_perx_ker_ck
In this area, ck_in0 clock can be
disabled
D The switch is dynamic: the transition between two inputs is glitch-free.
MSv70495V1
RCC
SCEU
SCGU (system clock enabling unit)
(system rcc_bus_ck rcc_perx_bus_ck
clock generation)
sync
PERxEN
busif
PERxLPEN
control
CPU_state logic rcc_perx_bus_en
PKSU perx_ker_ckreq PERx
(peripheral kernel clock
selection) When the peripheral
rcc_perx_ker_en offers the feature
Kernel
PERxSEL control
logic sync
rcc_perx_ker_ck
….
PKEU
(peripheral kernel clock enabling)
The clocks for all AHB and APB buses (AHBM, AHB1/2/3/4/5, APB1/2/4/5) are
automatically enabled when a dependent peripheral is active. This may induce a chain:
a peripheral activation activates the APB that activates the AHB, and activates the AHBM.
For instance, the manual UART4 activation induces the automatic APB1 activation (APB1
is used to configure the UART4). This induces the automatic AHB1 bus activation (AHB1 is
needed to drive the APB1). This induces the activation of the central AHBM matrix (AHBM is
needed to drive the AHB1).
High-bandwidth interconnect
The NoC and the two NPU AXI bus clocks (ck_icn_npu and ck_icn_npuc, see Figure 47)
are permanently enabled in Run and Sleep modes, and permanently disabled in Stop and
Standby modes.
An internal automatic clock-gating optimizes the NoC power consumption: when no
transaction is ongoing in a bus section, an automatic clock-gating clocks and gates this bus.
The NPU interconnect clock (ck_icn_npu) can be disabled by setting ACLKNEN = 0
(disabled in Run and Sleep modes), or ACLKNLPEN = 0 (disabled in Sleep mode only).
If the clock is disabled, the NPU cannot work (no interconnect downstream), and the CPU
cannot access AXISRAM3/4/5/6, the CACHEAXI RAM, or the FLEXRAM.
The clock of the NPU interconnect (ck_icn_npuc) can be disabled by setting
ACLKNCEN = 0 (disabled in Run and Sleep modes), or ACLKNCLPEN = 0 (disabled in
Sleep mode only). If the clock is disabled, neither the CPU or NPU can access
AXISRAM3/4/5/6, the CACHEAXI, the CACHEAXI RAM, or the FLEXRAM.
Table 75 gives a detailed description of the enabling logic of the peripheral clocks
for peripherals located in the CPU domain and allocated by the CPU.
CPU state
PERxSEL
PERxEN
Comments
rcc_perx_bus_ck
rcc_perx_ker_ck
perx_ker_ckreq
PERxLPEN
CPU state
PERxSEL
PERxEN
Comments
The kernel clock is provided to the peripherals when one of the following conditions is met:
1. The CPU is in Run mode and the peripheral is enabled.
2. The CPU is in Sleep mode and the peripheral is enabled with PERxLPEN = 1.
3. The CPU is in Stop mode, the peripheral is enabled with PERxLPEN = 1, the peripheral
generates a kernel clock request, and the selected clock is hsi_ker_ck or msi_ker_ck.
4. The CPU is in Stop mode, the peripheral is enabled with PERxLPEN = 1, and the
kernel source clock of the peripheral is lse_ck or lsi_ck.
The bus interface clock is provided to the peripherals only when conditions 1 or 2 are met.
LSE reference
If available, the LSE can trigger TIM16 to count hse_ck ticks. This is crystal accurate (better
than using HSI).
Configure a PLL to generate (HSE * 8) MHz. Then set SYSSW to select ic2_ck for
sysb_ck = ck_timg (TIMPRE = 1). This means sys_bus_ck relates to the HSE frequency.
LSE is connected to TIM16 - TI1_2.
Example: the multiplication by eight of hse_ck gives
(40 × 1000 × 8) / 32.768 = 9765 counts, and (38.4 × 1000 × 8) / 32.768 = 9375 counts.
19.2, 20, 24, 38.4, 40, 48 = 4687, 4882, 5859, 9375, 9765, 11718 counts
sys_bus_ck = 153.6, 160, 192, 307.2, 320, 384 MHz
HSI reference
HSI can be used when LSE is not available. A trimmed HSI can vary by ±4% (at 3 σ) across
the full temperature range. This means that 19.2 and 20 MHz cannot be differentiated
reliably.
If the DTS is available, the user can measure the temperature to compensate for
the HSI drift.
The RCC generates an hse_cal_ck signal, which is HSE divided by 1024. This signal is
connected to TIM17 - TI1_2.
hse_cal_ck has an expected frequency between 19.2 to 50 kHz. The HSI is about 64 MHz.
To get 300 MHz, select HSI as input to a PLL, then ic2_ck for sysb_ck = ck_timg
(TIMPRE = 1).
Example: The division by 1024 of hse_ck gives 300 × 1024 / 40 = 7680 counts, and
300 × 1024 / 38.4 = 8000 counts.
19.2, 20, 24, 38.4, 40, 48 = 16000, 15360, 12800, 8000, 7680, 6400 counts
A less accurate method is to use hse_ck output on MCO divided by 16. This gives, for
example: 300 × 16 / 40 = 120 counts, and 300 × 16 / 38.4 = 125 counts.
19.2, 20, 24, 38.4, 40, 48 = 250, 240, 200, 125, 120, 100 counts
HSI and MSI oscillators have dedicated user-accessible calibration bits for this purpose
(see RCC_HSICFGR and RCC_MSICFGR). When the HSI or MSI is used via a PLL, it is
also possible to fine-tune the sys_bus_ck using the fractional divider of the PLL.
PWR 200
RNG 64
RTC 4
SAES 200
SAI1 200
SAI2 200
SDMMC1 208
SDMMC2 208
SPDIFRX1 200
SPI1 200
SPI2 200
SPI3 200
SPI4 133
SPI5 133
SPI6 200
SYSCFG 200
TIMx 400
LPTIMx 200
DTS 10
USART1 100
USART2 100
USART3 100
UART4 100
UART5 100
USART6 100
UART7 100
UART8 100
UART9 100
USART10 100
LPUART1 100
UCPD1 25
VENC 400
VREFBUF 200
WWDG 200
MREPAIR 64
As an example, the PLL configuration to achieve these frequencies would use HSI as
reference clock (64 MHz), and program the VCO of PLL1, 2, 3, and 4, to respectively, 800,
993.52, 875, and 514.5 MHz.
The RIFSC indicates if an access to the RCC or other peripherals is secure and/or
privileged. Signals are connected from the RIFSC to the RCC to communicate this
information. The notation for these signals is S, P.
The RCC is able to protect register bits from being modified by nonsecure and unprivileged
accesses.
If a peripheral RISUP is programmed as secure (or privileged), the peripheral clock and
reset bits become secure (or privileged).
If the peripheral is TrustZone-aware, the peripheral clock and reset bits become secure (or
privileged) as soon as at least one function is configured as secure (or privileged) by RIFSC.
Peripheral configuration registers inside the RCC can be also be made secure (or
privileged) via a global override bit (PERSEC in RCC_SECCFGR3, PERPRIV in
RCC_PRIVCFGR3).
After an application reset or system reset, the RCC does not filter any access until the
trusted agent has configured the system.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4 PLL3 PLL2 PLL1 HSE HSI MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res.
ON ON ON ON ON ON ON ON ON
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4 PLL3 PLL2 PLL1 HSE HSI MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res.
RDY RDY RDY RDY RDY RDY RDY RDY RDY
r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSIST MSIST
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
OPEN OPEN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. SYSSWS[1:0] Res. Res. SYSSW[1:0] Res. Res. CPUSWS[1:0] Res. Res. CPUSW[1:0]
r r rw rw r r rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
STOP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
WUCK
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. TIMPRE[1:0] Res. HPRE[2:0] Res. PPRE5[2:0]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. PPRE4[2:0] Res. Res. Res. Res. Res. PPRE2[2:0] Res. PPRE1[2:0]
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
VSW
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RST
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
LPWR WWDG IWDGR SFTRS PORR PINRS BORR LCKRS
Res. Res. Res. Res. Res. Res. Res. RMVF
RSTF RSTF STF TF STF TF STF TF
r r r r r r r r w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
LPWR WWDG IWDGR SFTRS PORR PINRS BORR LCKRS
Res. Res. Res. Res. Res. Res. Res. RMVF
RSTF RSTF STF TF STF TF STF TF
r r r r r r r r w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
LSE LSE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. LSEDRV[1:0]
GFON EXT
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LSE LSE LSE LSE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BYP CSSD CSSRA CSSON
rw r rw w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. MSICAL[7:0] Res. Res. MSITRIM[4:0]
r r r r r r r r rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MSIFR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EQSEL
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
HSICAL[8:0] HSITRIM[6:0]
r r r r r r r r r rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. HSIDIV[1:0] Res. Res. Res. Res. Res. Res. Res.
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
HSI
Res. Res. Res. Res. Res. Res. Res. Res. Res. HSIDEV[5:0]
MONEN
rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. HSIREF[10:0]
rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. HSIVAL[10:0]
r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
HSE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EXT
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSE HSE HSE HSE HSE
HSECSSBPRE[3:0] Res. Res. Res. Res. Res. Res. Res.
BYP CSSBYP CSSD CSSON DIV2SEL
rw rw rw rw rw rw r rs rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL1B
Res. PLL1SEL[2:0] Res. PLL1DIVM[5:0] PLL1DIVN[11:8]
YP
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL1DIVN[7:0] Res. Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. PLL1DIVNFRAC[23:16]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL1DIVNFRAC[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL1P
Res. PLL1PDIV1[2:0] PLL1PDIV2[2:0] Res. Res. Res. PLL1MODSPR[4:0]
DIVEN
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL1M PLL1M PLL1M PLL1M
PLL1D
Res. Res. Res. Res. PLL1MODDIV[3:0] Res. Res. Res. ODSP ODDS ODSS ODSS
ACEN
RDW EN DIS RST
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL2B
Res. PLL2SEL[2:0] Res. PLL2DIVM[5:0] PLL2DIVN[11:8]
YP
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL2DIVN[7:0] Res. Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. PLL2DIVNFRAC[23:16]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL2DIVNFRAC[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL2P
Res. PLL2PDIV1[2:0] PLL2PDIV2[2:0] Res. Res. Res. PLL2MODSPR[4:0]
DIVEN
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL2M PLL2M PLL2M PLL2M
PLL2D
Res. Res. Res. Res. PLL2MODDIV[3:0] Res. Res. Res. ODSP ODDS ODSS ODSS
ACEN
RDW EN DIS RST
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL3B
Res. PLL3SEL[2:0] Res. PLL3DIVM[5:0] PLL3DIVN[11:8]
YP
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL3DIVN[7:0] Res. Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. PLL3DIVNFRAC[23:16]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL3DIVNFRAC[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL3P
Res. PLL3PDIV1[2:0] PLL3PDIV2[2:0] Res. Res. Res. PLL3MODSPR[4:0]
DIVEN
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL3M PLL3M PLL3M PLL3M
PLL3D
Res. Res. Res. Res. PLL3MODDIV[3:0] Res. Res. Res. ODSP ODDS ODSS ODSS
ACEN
RDW EN DIS RST
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL4B
Res. PLL4SEL[2:0] Res. PLL4DIVM[5:0] PLL4DIVN[11:8]
YP
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4DIVN[7:0] Res. Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. PLL4DIVNFRAC[23:16]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4DIVNFRAC[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PLL4P
Res. PLL4PDIV1[2:0] PLL4PDIV2[2:0] Res. Res. Res. PLL4MODSPR[4:0]
DIVEN
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4M PLL4M PLL4M PLL4M
PLL4D
Res. Res. Res. Res. PLL4MODDIV[3:0] Res. Res. Res. ODSP ODDS ODSS ODSS
ACEN
RDW EN DIS RST
rw rw rw rw rw rw rw rw rw
Bit 3 PLL4MODDSEN: PLL4 modulation spread spectrum (and fractional divide) enable
This bitfield is set and cleared by software to enable the delta-sigma modulator.
0: Modulation spread spectrum and fractional divide not active (default after reset)
1: Modulation spread spectrum and fractional divide active
Bit 2 PLL4MODSSDIS: PLL4 modulation spread spectrum disable
This bit is set and cleared by software to enable the clock spreading generator of PLL4.
0: Modulation spread spectrum active (and fractional divide inactive)
1: Fractional divide active (and modulation spread spectrum inactive) (default after reset)
Bit 1 PLL4DACEN: PLL4 noise canceling DAC enable in fractional mode
This bit is set and cleared by software to enable the noise cancellation in fractional mode.
0: DAC not active (default after reset)
1: DAC active
Bit 0 PLL4MODSSRST: PLL4 modulation spread spectrum reset
This bit is set and cleared by software.
0: PLL4 modulation spread spectrum reset module released
1: PLL4 modulation spread spectrum reset module asserted (default after reset)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC1SEL[1:0] Res. Res. Res. Res. IC1INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC2SEL[1:0] Res. Res. Res. Res. IC2INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC3SEL[1:0] Res. Res. Res. Res. IC3INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC4SEL[1:0] Res. Res. Res. Res. IC4INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC5SEL[1:0] Res. Res. Res. Res. IC5INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC6SEL[1:0] Res. Res. Res. Res. IC6INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC7SEL[1:0] Res. Res. Res. Res. IC7INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC8SEL[1:0] Res. Res. Res. Res. IC8INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC9SEL[1:0] Res. Res. Res. Res. IC9INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC10SEL[1:0] Res. Res. Res. Res. IC10INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
This register is used to configure the IC11 divider. It is reset by int_sys_rstn, and is in the
VCORE voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC11SEL[1:0] Res. Res. Res. Res. IC11INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC12SEL[1:0] Res. Res. Res. Res. IC12INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC13SEL[1:0] Res. Res. Res. Res. IC13INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC14SEL[1:0] Res. Res. Res. Res. IC14INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC15SEL[1:0] Res. Res. Res. Res. IC15INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC16SEL[1:0] Res. Res. Res. Res. IC16INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC17SEL[1:0] Res. Res. Res. Res. IC17INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC18SEL[1:0] Res. Res. Res. Res. IC18INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC19SEL[1:0] Res. Res. Res. Res. IC19INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. IC20SEL[1:0] Res. Res. Res. Res. IC20INT[7:0]
rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WKUPI HSECS LSECS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
E SIE SIE
rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4R PLL3R PLL2R PLL1R HSERD HSIRD MSIRD LSERD LSIRD
Res. Res. Res. Res. Res. Res. Res.
DYIE DYIE DYIE DYIE YIE YIE YIE YIE YIE
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WKUP HSECS LSECS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
F SF SF
r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4R PLL3R PLL2R PLL1R HSERD HSIRD MSIRD LSERD LSIRD
Res. Res. Res. Res. Res. Res. Res.
DYF DYF DYF DYF YF YF YF YF YF
r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
WKUP HSECS LSECS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
FC SC SC
w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4R PLL3R PLL2R PLL1R HSERD HSIRD MSIRD LSERD LSIRD
Res. Res. Res. Res. Res. Res. Res.
DYC DYC DYC DYC YC YC YC YC YC
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DCMIPPSEL[1:0] Res. Res. Res. Res.
rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADCPRE[7:0] Res. ADC12SEL[2:0] Res. ADF1SEL[2:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Bits 2:0 ADF1SEL[2:0]: Source selection for the ADF1 kernel clock
This bitfield is set and reset by software.
000: hclk2 selected as reference clock
001: per_ck selected as reference clock
010: ic7_ck selected as reference clock
011: ic8_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: I2S_CKIN selected as reference clock
111: timg_ck selected as reference clock
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ETH1G ETH1R
Res. Res. Res. Res. Res. Res. Res. TXCLKS Res. Res. Res. EFCLK Res. ETH1SEL[2:0]
EL SEL
rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ETH1P
ETH1CLKSEL ETH1PTPSEL
Res. Res. Res. Res. Res. WRDO ETH1PTPDIV[3:0] Res. Res.
[1:0] [1:0]
WNACK
rw rw r rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. FMCSEL[1:0] Res. Res. FDCANSEL[1:0]
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. LTDCSEL[1:0] Res. I3C2SEL[2:0] Res. I3C1SEL[2:0]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. I2C4SEL[2:0] Res. I2C3SEL[2:0] Res. I2C2SEL[2:0] Res. I2C1SEL[2:0]
rw rw rw rw rw rw rw rw rw rw rw rw
Bits 10:8 I2C3SEL[2:0]: Source selection for the I2C3 kernel clock
This bitfield is set and reset by software.
000: pclk1 selected as reference clock
001: per_ck selected as reference clock
010: ic10_ck selected as reference clock
011: ic15_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 7 Reserved, must be kept at reset value.
Bits 6:4 I2C2SEL[2:0]: Source selection for the I2C2 kernel clock
This bitfield is set and reset by software.
000: pclk1 selected as reference clock
001: per_ck selected as reference clock
010: ic10_ck selected as reference clock
011: ic15_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 3 Reserved, must be kept at reset value.
Bits 2:0 I2C1SEL[2:0]: Source selection for the I2C1 kernel clock
This bitfield is set and reset by software.
000: pclk1 selected as reference clock
001: per_ck selected as reference clock
010: ic10_ck selected as reference clock
011: ic15_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. MDF1SEL[2:0]
rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MCO2PRE[3:0] Res. MCO2SEL[2:0] MCO1PRE[3:0] Res. MCO1SEL[2:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Bits 18:16 MDF1SEL[2:0]: Source selection for the MDF1 kernel clock
This bitfield is set and reset by software.
000: hclk2 selected as reference clock
001: per_ck selected as reference clock
010: ic7_ck selected as reference clock
011: ic8_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: I2S_CKIN selected as reference clock
111: timg_ck selected as reference clock
Bits 15:12 MCO2PRE[3:0]: MCO2 Kernel clock divider selection (for clock MCO2)
This bitfield is set and reset by software. The division ratio is linear.
0000: MCO2 divided by 1
0001: MCO2 divided by 2
0010: MCO2 divided by 3
0011: MCO2 divided by 4
0100: MCO2 divided by 5
0101: MCO2 divided by 6
0110: MCO2 divided by 7
0111: MCO2 divided by 8
1000: MCO2 divided by 9
1001: MCO2 divided by 10
1010: MCO2 divided by 11
1011: MCO2 divided by 12
1100: MCO2 divided by 13
1101: MCO2 divided by 14
1110: MCO2 divided by 15
1111: MCO2 divided by 16
Bit 11 Reserved, must be kept at reset value.
Bits 10:8 MCO2SEL[2:0]: Source selection for the MCO2 kernel clock
This bitfield is set and reset by software.
000: hsi_div_ck selected as reference clock (default after reset)
001: lse_ck selected as reference clock
010: msi_ck selected as reference clock
011: lsi_ck selected as reference clock
100: hse_ck selected as reference clock
101: ic15_ck selected as reference clock
110: ic20_ck selected as reference clock
111: sysb_ck selected as reference clock
Bits 7:4 MCO1PRE[3:0]: MCO1 Kernel clock divider selection (for clock MCO1)
This bitfield is set and reset by software. The division ratio is linear.
0000: MCO1 divided by 1
0001: MCO1 divided by 2
0010: MCO1 divided by 3
0011: MCO1 divided by 4
0100: MCO1 divided by 5
0101: MCO1 divided by 6
0110: MCO1 divided by 7
0111: MCO1 divided by 8
1000: MCO1 divided by 9
1001: MCO1 divided by 10
1010: MCO1 divided by 11
1011: MCO1 divided by 12
1100: MCO1 divided by 13
1101: MCO1 divided by 14
1110: MCO1 divided by 15
1111: MCO1 divided by 16
Bit 3 Reserved, must be kept at reset value.
Bits 2:0 MCO1SEL[2:0]: Source selection for the MCO1 kernel clock
This bitfield is set and reset by software.
000: hsi_div_ck selected as reference clock (default after reset)
001: lse_ck selected as reference clock
010: msi_ck selected as reference clock
011: lsi_ck selected as reference clock
100: hse_ck selected as reference clock
101: ic5_ck selected as reference clock
110: ic10_ck selected as reference clock
111: sysa_ck selected as reference clock
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
OTG OTG
PHY2CK OTGPHY2 PHY1CK
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
REF SEL[1:0] REF
SEL SEL
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. OTGPHY1SEL[1:0] Res. Res. XSPI3SEL[1:0] Res. Res. XSPI2SEL[1:0] Res. Res. XSPI1SEL[1:0]
rw rw rw rw rw rw rw rw
Bit 24 OTGPHY2CKREFSEL:
This bitfield is set and reset by software.
0: otgphy2_ker_ck selected
1: hse_div2_osc_ck selected
Bits 23:22 Reserved, must be kept at reset value.
Bits 21:20 OTGPHY2SEL[1:0]: Source selection for the OTGPHY2 kernel clock
This bitfield is set and reset by software.
00: hse_div2_ck selected as reference clock
01: per_ck selected as reference clock
10: ic15_ck selected as reference clock
11: hse_div2_osc_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bits 19:17 Reserved, must be kept at reset value.
Bit 16 OTGPHY1CKREFSEL:
This bitfield is set and reset by software.
0: otgphy1_ker_ck selected
1: hse_div2_osc_ck selected
Bits 15:14 Reserved, must be kept at reset value.
Bits 13:12 OTGPHY1SEL[1:0]: Source selection for the OTGPHY1 kernel clock
This bitfield is set and reset by software.
00: hse_div2_ck selected as reference clock
01: per_ck selected as reference clock
10: ic15_ck selected as reference clock
11: hse_div2_osc_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bits 11:10 Reserved, must be kept at reset value.
Bits 9:8 XSPI3SEL[1:0]: Source selection for the XSPI3 kernel clock
This bitfield is set and reset by software.
00: hclk5 selected as reference clock
01: per_ck selected as reference clock
10: ic3_ck selected as reference clock
11: ic4_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bits 7:6 Reserved, must be kept at reset value.
Bits 5:4 XSPI2SEL[1:0]: Source selection for the XSPI2 kernel clock
This bitfield is set and reset by software.
00: hclk5 selected as reference clock
01: per_ck selected as reference clock
10: ic3_ck selected as reference clock
11: ic4_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bits 3:2 Reserved, must be kept at reset value.
Bits 1:0 XSPI1SEL[1:0]: Source selection for the XSPI1 kernel clock
This bitfield is set and reset by software.
00: hclk5 selected as reference clock
01: per_ck selected as reference clock
10: ic3_ck selected as reference clock
11: ic4_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. SAI2SEL[2:0] Res. SAI1SEL[2:0] Res. Res. RTCPRE[5:4]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RTCPRE[3:0] Res. Res. RTCSEL[1:0] Res. Res. PSSISEL[1:0] Res. PERSEL[2:0]
rw rw rw rw rw rw rw rw rw rw rw
Bits 17:12 RTCPRE[5:0]: RTC OSC clock divider selection (for clock hse_ck)
This bitfield is set and reset by software. The division ratio is linear: {v}: hse_ck / {v+1}.
0x00: hse_ck divided by 1
0x01: hse_ck divided by 2
Bits 11:10 Reserved, must be kept at reset value.
Bits 9:8 RTCSEL[1:0]: Source selection for the RTC kernel clock
This bitfield is write-protected by the pwr_lock_backup_n signal. It is security-protected by a
SEC signal from RIFSC, the PERSEC bit, a PRIV signal from RIFSC, or the PERPRIV bit.
This bitfield is set and reset by software.
01: lse_ck selected as reference clock
10: lsi_ck selected as reference clock
11: hse_rtc_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bits 7:6 Reserved, must be kept at reset value.
Bits 5:4 PSSISEL[1:0]: Source selection for the PSSI kernel clock
This bitfield is set and reset by software.
00: hclk5 selected as reference clock
01: per_ck selected as reference clock
10: ic20_ck selected as reference clock
11: hsi_div_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 3 Reserved, must be kept at reset value.
Bits 2:0 PERSEL[2:0]: Source selection for the PER kernel clock
This bitfield is set and reset by software.
000: hsi_ck selected as reference clock
001: msi_ck selected as reference clock
010: hse_ck selected as reference clock
011: ic19_ck selected as reference clock
100: ic5_ck selected as reference clock
101: ic10_ck selected as reference clock
110: ic15_ck selected as reference clock
111: ic20_ck selected as reference clock
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMMC2SEL SDMMC1SEL
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
[1:0] [1:0]
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. SPI6SEL[2:0] Res. SPI5SEL[2:0] Res. SPI4SEL[2:0]
rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. SPI3SEL[2:0] Res. SPI2SEL[2:0] Res. SPI1SEL[2:0] Res. SPDIFRX1SEL[2:0]
rw rw rw rw rw rw rw rw rw rw rw rw
Bits 22:20 SPI5SEL[2:0]: Source selection for the SPI5 kernel clock
This bitfield is set and reset by software.
000: pclk2 selected as reference clock
001: per_ck selected as reference clock
010: ic9_ck selected as reference clock
011: ic14_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: hse_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 19 Reserved, must be kept at reset value.
Bits 18:16 SPI4SEL[2:0]: Source selection for the SPI4 kernel clock
This bitfield is set and reset by software.
000: pclk2 selected as reference clock
001: per_ck selected as reference clock
010: ic9_ck selected as reference clock
011: ic14_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: hse_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 15 Reserved, must be kept at reset value.
Bits 14:12 SPI3SEL[2:0]: Source selection for the SPI3 kernel clock
This bitfield is set and reset by software.
000: pclk1 selected as reference clock
001: per_ck selected as reference clock
010: ic8_ck selected as reference clock
011: ic9_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: I2S_CKIN selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 11 Reserved, must be kept at reset value.
Bits 10:8 SPI2SEL[2:0]: Source selection for the SPI2 kernel clock
This bitfield is set and reset by software.
000: pclk1 selected as reference clock
001: per_ck selected as reference clock
010: ic8_ck selected as reference clock
011: ic9_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: I2S_CKIN selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 7 Reserved, must be kept at reset value.
Bits 6:4 SPI1SEL[2:0]: Source selection for the SPI1 kernel clock
This bitfield is set and reset by software.
000: pclk2 selected as reference clock
001: per_ck selected as reference clock
010: ic8_ck selected as reference clock
011: ic9_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: I2S_CKIN selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 3 Reserved, must be kept at reset value.
Bits 2:0 SPDIFRX1SEL[2:0]: Source selection for the SPDIFRX1 kernel clock
This bitfield is set and reset by software.
000: pclk1 selected as reference clock
001: per_ck selected as reference clock
010: ic7_ck selected as reference clock
011: ic8_ck selected as reference clock
100: msi_ck selected as reference clock
101: hsi_div_ck selected as reference clock
110: I2S_CKIN selected as reference clock
Others: Reserved, no clock provided as reference clock
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. LPTIM5SEL[2:0] Res. LPTIM4SEL[2:0] Res. LPTIM3SEL[2:0]
rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. LPTIM2SEL[2:0] Res. LPTIM1SEL[2:0] Res. Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw
Bits 22:20 LPTIM4SEL[2:0]: Source selection for the LPTIM4 kernel clock
This bitfield is set and reset by software.
000: pclk4 selected as reference clock
001: per_ck selected as reference clock
010: ic15_ck selected as reference clock
011: lse_ck selected as reference clock
100: lsi_ck selected as reference clock
101: timg_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 19 Reserved, must be kept at reset value.
Bits 18:16 LPTIM3SEL[2:0]: Source selection for the LPTIM3 kernel clock
This bitfield is set and reset by software.
000: pclk4 selected as reference clock
001: per_ck selected as reference clock
010: ic15_ck selected as reference clock
011: lse_ck selected as reference clock
100: lsi_ck selected as reference clock
101: timg_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 15 Reserved, must be kept at reset value.
Bits 14:12 LPTIM2SEL[2:0]: Source selection for the LPTIM2 kernel clock
This bitfield is set and reset by software.
000: pclk4 selected as reference clock
001: per_ck selected as reference clock
010: ic15_ck selected as reference clock
011: lse_ck selected as reference clock
100: lsi_ck selected as reference clock
101: timg_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bit 11 Reserved, must be kept at reset value.
Bits 10:8 LPTIM1SEL[2:0]: Source selection for the LPTIM1 kernel clock
This bitfield is set and reset by software.
000: pclk1 selected as reference clock
001: per_ck selected as reference clock
010: ic15_ck selected as reference clock
011: lse_ck selected as reference clock
100: lsi_ck selected as reference clock
101: timg_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
Bits 7:0 Reserved, must be kept at reset value.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. UART8SEL[2:0] Res. UART7SEL[2:0] Res. USART6SEL[2:0] Res. UART5SEL[2:0]
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. UART4SEL[2:0] Res. USART3SEL[2:0] Res. USART2SEL[2:0] Res. USART1SEL[2:0]
rw rw rw rw rw rw rw rw rw rw rw rw
Bits 2:0 USART1SEL[2:0]: Source selection for the USART1 kernel clock
This bitfield is set and reset by software.
000: pclk2 selected as reference clock
001: per_ck selected as reference clock
010: ic9_ck selected as reference clock
011: ic14_ck selected as reference clock
100: lse_ck selected as reference clock
101: msi_ck selected as reference clock
110: hsi_div_ck selected as reference clock
Others: Reserved, no clock provided as reference clock
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. LPUART1SEL[2:0] Res. USART10SEL[2:0] Res. UART9SEL[2:0]
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM XSPIP XSPIP
DBG
Res. Res. Res. Res. Res. Res. Res. C2DLL C1DLL Res. HY2 HY1 Res. Res. Res.
RST
RST RST RST RST
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT CACHE AXISR AXISR AHBSR AHBSR AXISR AXISR AXISR AXISR
VENCR FLEXR
Res. Res. Res. ROMR AXIRA AM2RS AM1RS Res. AM2RS AM1RS AM6RS AM5RS AM4RS AM3RS
AMRST AMRST
ST MRST T T T T T T T T
rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADC12 GPDM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RST A1RST
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1R MDF1R
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ST ST
rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
FGRST
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IAC PKA SAES CRYP HASH RNG
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RST RST RST RST RST RST
rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCR PWRR GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ST ST RST
rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
RST RST RST RST RST RST RST RST RST RST RST
rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTGP OTGP OTG2P OTG1P GFXM
NPU OTG2R OTG1 ETH1 GPU2D XSPI3
AXI HY2 HY1 HYCTL HYCTL Res. Res. MU Res. Res.
RST ST RST RST RST RST
RST RST RST RST RST RST
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM HP
XSPIM XSPI2 PSSI XSPI1 FMC JPEG DMA2D
Res. Res. Res. Res. Res. C1 C2 Res. DMA1
RST RST RST RST RST RST RST
RST RST RST
rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SPDIF
UART8 UART7 I3C2 I3C1 I2C3 I2C2 I2C1 UART5 UART4 USART3 USART2
Res. Res. Res. Res. RX1
RST RST RST RST RST RST RST RST RST RST RST
RST
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3 SPI2 TIM11 TIM10 WWDG LPTIM1 TIM14 TIM13 TIM12 TIM7 TIM6 TIM5 TIM4 TIM3 TIM2
Res.
RST RST RST RST RST RST RST RST RST RST RST RST RST RST RST
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RST
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RST RST
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2R SAI1R SPI5R TIM9R TIM17 TIM16 TIM15
Res. Res. Res. Res. Res. Res. Res. Res. Res.
ST ST ST ST RST RST RST
rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TIM18 SPI4R SPI1R USART UART9 USART USART TIM8R TIM1R
Res. Res. Res. Res. Res. Res. Res.
RST ST ST 10RST RST 6RST 1RST ST ST
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCRS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
T
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4RS SPI6R LPUAR HDPRS
Res. Res. Res. Res. Res. Res. Res.
UFRST RST RST RST RST T ST T1RST T
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTSRS SYSCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
T GRST
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSIRS VENCR GFXTI DCMIP LTDCR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
T ST MRST PRST ST
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. IC20EN IC19EN IC18EN IC17EN
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16EN IC15EN IC14EN IC13EN IC12EN IC11EN IC10EN IC9EN IC8EN IC7EN IC6EN IC5EN IC4EN IC3EN IC2EN IC1EN
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
APB5 APB4 APB3 APB2 APB1 AHB5 AHB4 AHB3 AHB2 AHB1 AHBM ACLKNC ACLKN
Res. Res. Res.
EN EN EN EN EN EN EN EN EN EN EN EN EN
rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XSPIP
MCO2 MCO1 DBGE
Res. Res. Res. Res. Res. Res. Res. Res. Res. PEREN Res. Res. HYCO
EN EN N
MPEN
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT CACHE
VENCR FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
Res. Res. Res. ROME AXIRA
AMEN AMEN AM2EN AM1EN AMEN AM2EN AM1EN AM6EN AM5EN AM4EN AM3EN
N MEN
rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADC12 GPDMA1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN EN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1E MDF1E
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
N N
rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
FGEN
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RISAF RIFSC SAESE CRYPE HASHE RNGE
Res. Res. Res. Res. IACEN PKAEN Res. Res. Res. Res.
EN EN N N N N
rw rw rw rw rw rw rw rw
This register is used to enable the AHB4 in Run and Sleep modes (in Sleep mode, each bit
of this register is AND-ed with the LPEN bit). It is reset by sys_rstn, and is in the VCORE
voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRC PWR GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN EN EN
rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
EN EN EN EN EN EN EN EN EN EN EN
rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTG OTG ETH1 ETH1 ETH1 GFX
NPU OTG2 OTG1 ETH1 GPU2D MCE4 XSPI3 MCE3
AXI PHY2 PHY1 RX TX MAC Res. MMU
EN EN EN EN EN EN EN EN
EN EN EN EN EN EN EN
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM HP
MCE2 MCE1 XSPIM XSPI2 PSSI XSPI1 FMC JPEG DMA2D
Res. Res. Res. C1 C2 Res. DMA1
EN EN EN EN EN EN EN EN EN
EN EN EN
rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UART8 UART7 UART5 UART4 USART USART SPDIF
Res. Res. Res. Res. I3C2EN I3C1EN I2C3EN I2C2EN I2C1EN
EN EN EN EN 3EN 2EN RX1EN
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3E SPI2E TIM11E TIM10E WWDG LPTIM1 TIM14E TIM13E TIM12E TIM7E TIM6E TIM5E TIM4E TIM3E TIM2E
Res.
N N N N EN EN N N N N N N N N N
rw rw rw rw rs rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN EN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2E SAI1E SPI5E TIM9E TIM17E TIM16E TIM15E
Res. Res. Res. Res. Res. Res. Res. Res. Res.
N N N N N N N
rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TIM18E SPI4E SPI1E USART UART9 USART USART TIM8E TIM1E
Res. Res. Res. Res. Res. Res. Res.
N N N 10EN EN 6EN 1EN N N
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DFTEN Res. Res.
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCAP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. RTCEN
BEN
rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPTIM5 LPTIM4 LPTIM3 LPTIM2 SPI6E LPUAR
Res. Res. Res. I2C4EN Res. Res. HDPEN Res. Res.
UFEN EN EN EN EN N T1EN
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BSECE SYSCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DTSEN
N GEN
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VENCE GFXTI DCMIP LTDCE
Res. Res. Res. Res. Res. Res. Res. Res. Res. CSIEN Res. Res.
N MEN PEN N
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ACLKN ACLKN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
CLPEN LPEN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XSPIP
PERLP HYCO DBGLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN MPLPE EN
N
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT VENCR CACHE FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
Res. Res. Res. ROML AMLPE AXIRA AMLPE AM2LP AM1LP AMLPE AM2LP AM1LP AM6LP AM5LP AM4LP AM3LP
PEN N MLPEN N EN EN N EN EN EN EN EN EN
rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPDM
ADC12
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. A1LPE Res. Res. Res. Res.
LPEN
N
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1 MDF1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPEN LPEN
rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMCFG
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPEN
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RISAFL IACLP RIFSC PKALP SAESL CRYPL HASHL RNGLP
Res. Res. Res. Res. Res. Res. Res. Res.
PEN EN LPEN EN PEN PEN PEN EN
rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCLP PWRL GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN PEN LPEN
rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
LPEN LPEN LPEN LPEN LPEN LPEN LPEN LPEN LPEN LPEN LPEN
rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTGP OTGP ETH1M GFXM
NPULP OTG2L OTG1L ETH1L ETH1R ETH1T GPU2D MCE4L XSPI3L MCE3L
AXILPE HY2LP HY1LP ACLPE Res. MULPE
EN PEN PEN PEN XLPEN XLPEN LPEN PEN PEN PEN
N EN EN N N
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM HPDM
MCE2L MCE1L XSPIM XSPI2L PSSILP XSPI1L FMCLP JPEGL DMA2D
Res. Res. Res. C1LPE C2LPE Res. A1LPE
PEN PEN LPEN PEN EN PEN EN PEN LPEN
N N N
rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SPDIF
UART8 UART7 I3C2LP I3C1LP I2C3LP I2C2LP I2C1LP UART5 UART4 USART USART
Res. Res. Res. Res. RX1LP
LPEN LPEN EN EN EN EN EN LPEN LPEN 3LPEN 2LPEN
EN
rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3LP SPI2LP TIM11L TIM10L WWDG LPTIM1 TIM14L TIM13L TIM12L TIM7LP TIM6LP TIM5LP TIM4LP TIM3LP TIM2LP
Res.
EN EN PEN PEN LPEN LPEN PEN PEN PEN EN EN EN EN EN EN
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPEN
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPEN LPEN
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2LP SAI1LP SPI5LP TIM9LP TIM17L TIM16L TIM15L
Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN EN EN EN PEN PEN PEN
rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
USART
TIM18L SPI4LP SPI1LP UART9 USART USART TIM8LP TIM1LP
Res. Res. Res. Res. Res. 10LPE Res. Res.
PEN EN EN LPEN 6LPEN 1LPEN EN EN
N
rw rw rw rw rw rw rw rw rw
This register is used to enable the APB3 in Sleep mode (each bit of this register is AND-ed
with the EN bit). It is reset by sys_rstn, and is in the VCORE voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DFTLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCAP RTCLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BLPEN EN
rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPUAR
LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4LP SPI6LP HDPLP
UFLPE Res. Res. Res. Res. Res. T1LPE Res. Res.
LPEN LPEN LPEN LPEN EN EN EN
N N
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTSLP BSECL SYSCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN PEN GLPEN
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSILP VENCL GFXTI DCMIP LTDCL
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
EN PEN MLPEN PLPEN PEN
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. EADLY[3:0] Res. Res. Res. MRD[4:0]
rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSE HSI MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SEC SEC SEC SEC SEC
rw rw rw rw rw
defines the privileged protection for the configuration registers of the oscillator: a write
access is denied if the access is unprivileged while the respective bit is set.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSEPR HSIPRI MSIPRI LSEPR LSIPRI
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
IV V V IV V
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSE HSI MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LOCK LOCK LOCK LOCK LOCK
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSE HSI MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PUB PUB PUB PUB PUB
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4 PLL3 PLL2 PLL1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SEC SEC SEC SEC
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4P PLL3P PLL2P PLL1P
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RIV RIV RIV RIV
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4 PLL3 PLL2 PLL1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LOCK LOCK LOCK LOCK
w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4 PLL3 PLL2 PLL1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PUB PUB PUB PUB
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20 IC19 IC18 IC17
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SEC SEC SEC SEC
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16 IC15 IC14 IC13 IC12 IC11 IC10 IC9 IC8 IC7 IC6 IC5 IC4 IC3 IC2 IC1
SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20 IC19 IC18 IC17
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PRIV PRIV PRIV PRIV
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16 IC15 IC14 IC13 IC12 IC11 IC10 IC9 IC8 IC7 IC6 IC5 IC4 IC3 IC2 IC1
PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20LO IC19LO IC18LO IC17LO
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
CK CK CK CK
w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16LO IC15LO IC14LO IC13LO IC12LO IC11LO IC10LO IC9LO IC8LO IC7LO IC6LO IC5LO IC4LO IC3LO IC2LO IC1LO
CK CK CK CK CK CK CK CK CK CK CK CK CK CK CK CK
w w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20PU IC19PU IC18PU IC17PU
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
B B B B
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16PU IC15PU IC14PU IC13PU IC12PU IC11PU IC10PU IC9PU IC8PU IC7PU IC6PU IC5PU IC4PU IC3PU IC2PU IC1PU
B B B B B B B B B B B B B B B B
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RST INT PER BUS SYS MOD
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SEC SEC SEC SEC SEC SEC
rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RST INT PER BUS SYS MOD
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PRIV PRIV PRIV PRIV PRIV PRIV
rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RST INT PER BUS SYS MOD
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LOCK LOCK LOCK LOCK LOCK LOCK
w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RST INT PER BUS SYS MOD
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PUB PUB PUB PUB PUB PUB
rw rw rw rw rw rw
This register is used to control the secure access rights to the configuration register of the
buses. It is reset by sys_rstn, and is in the VCORE voltage domain. Each xxSEC pub defines
the secure protection for the configuration registers of the bus: a write access is denied if the
access is nonsecure while the respective bit is set.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NOC APB5 APB4 APB3 APB2 APB1 AHB5 AHB4 AHB3 AHB2 AHB1 AHBM ACLKNC ACLKN
Res. Res.
SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC SEC
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NOC APB5 APB4 APB3 APB2 APB1 AHB5 AHB4 AHB3 AHB2 AHB1 AHBM ACLKNC ACLKN
Res. Res.
PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV PRIV
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NOCL APB5L APB4L APB3L APB2L APB1L AHB5L AHB4L AHB3L AHB2L AHB1L AHBML ACLKN ACLKN
Res. Res.
OCK OCK OCK OCK OCK OCK OCK OCK OCK OCK OCK OCK CLOCK LOCK
w w w w w w w w w w w w w w
This register is used to control the public access rights to the configuration register of the
bus. It is reset by sys_rstn, and is in the VCORE voltage domain. Each xxPUB defines the
public protection for the configuration registers of the bus: a write access is denied if the
access is non-public while the respective bit is set.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NOCP APB5P APB4P APB3P APB2P APB1P AHB5P AHB4P AHB3P AHB2P AHB1P AHBM ACLKN ACLKN
Res. Res.
UB UB UB UB UB UB UB UB UB UB UB PUB CPUB PUB
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VENCR CACHE FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
Res. Res. Res. Res. AMPU AXIRA AMPU AM2PU AM1PU AMPU AM2PU AM1PU AM6PU AM5PU AM4PU AM3PU
B MPUB B B B B B B B B B B
rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4O PLL3O PLL2O PLL1O HSEO HSION MSION LSEON LSION
Res. Res. Res. Res. Res. Res. Res.
NS NS NS NS NS S S S S
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSIST MSIST
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
OPENS OPENS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM XSPIP XSPIP
DBGR
Res. Res. Res. Res. Res. Res. Res. C2DLL C1DLL Res. HY2RS HY1RS Res. Res. Res.
STS
RSTS RSTS TS TS
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT VENCR CACHE FLEXR AXISR AXISR AHBSR AHBSR AXISR AXISR AXISR AXISR
Res. Res. Res. ROMR AMRST AXIRA AMRST AM2RS AM1RS Res. AM2RS AM1RS AM6RS AM5RS AM4RS AM3RS
STS S MRSTS S TS TS TS TS TS TS TS TS
w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPDM
ADC12
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. A1RST Res. Res. Res. Res.
RSTS
S
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1 MDF1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTS RSTS
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMCFG
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTS
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IACRS PKARS SAESR CRYPR HASHR RNGR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
TS TS STS STS STS STS
w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCR PWRR GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
STS STS RSTS
w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
RSTS RSTS RSTS RSTS RSTS RSTS RSTS RSTS RSTS RSTS RSTS
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTGP OTGP OTG2P OTG1P GFXM
NPURS OTG2R OTG1R ETH1R GPU2D XSPI3
AXIRS HY2RS HY1RS HYCTL HYCTL Res. Res. MURS Res. Res.
TS STS STS STS RSTS RSTS
TS TS TS RSTS RSTS TS
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM HPDM
XSPIM XSPI2 PSSIR XSPI1 FMCR JPEGR DMA2D
Res. Res. Res. Res. Res. C1RST C2RST Res. A1RST
RSTS RSTS STS RSTS STS STS RSTS
S S S
w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SPDIF
UART8 UART7 I3C2RS I3C1RS I2C3RS I2C2RS I2C1RS UART5 UART4 USART USART
Res. Res. Res. Res. RX1RS
RSTS RSTS TS TS TS TS TS RSTS RSTS 3RSTS 2RSTS
TS
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3R SPI2R TIM11R TIM10 WWDG LPTIM1 TIM14 TIM13 TIM12 TIM7R TIM6R TIM5R TIM4R TIM3R TIM2R
Res.
STS STS STS RSTS RSTS RSTS RSTS RSTS RSTS STS STS STS STS STS STS
w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTS
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTS RSTS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2R SAI1R SPI5R TIM9R TIM17 TIM16 TIM15
Res. Res. Res. Res. Res. Res. Res. Res. Res.
STS STS STS STS RSTS RSTS RSTS
w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
USART
TIM18 SPI4R SPI1R UART9 USART USART TIM8R TIM1R
Res. Res. Res. Res. Res. 10RST Res. Res.
RSTS STS STS RSTS 6RSTS 1RSTS STS STS
S
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCRS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
TS
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPUAR
LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4RS SPI6R HDPRS
UFRST Res. Res. Res. Res. Res. T1RST Res. Res.
RSTS RSTS RSTS RSTS TS STS TS
S S
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTSRS SYSCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
TS GRSTS
w w
This register is used to reset the RCC APB5. It is reset by sys_rstn, and is in the VCORE
voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSIRS VENCR GFXTI DCMIP LTDCR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
TS STS MRSTS PRSTS STS
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20 IC19 IC18 IC17
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS ENS ENS ENS
w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16 IC15 IC14 IC13 IC12 IC11 IC10 IC9 IC8 IC7 IC6 IC5 IC4 IC3 IC2 IC1
ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS
w w w w w w w w w w w w w w w w
This register is used to enable the RCC bus in Run and Sleep modes (in Sleep mode, each
bit of this register is AND-ed with the LPEN bit). It is reset by sys_rstn, and is in the VCORE
voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ACLKN ACLKN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
CENS ENS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XSPIP
PEREN HYCO MCO2 MCO1 DBGE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
S MPEN ENS ENS NS
S
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT VENCR CACHE FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
Res. Res. Res. ROME AMEN AXIRA AMEN AM2EN AM1EN AMEN AM2EN AM1EN AM6EN AM5EN AM4EN AM3EN
NS S MENS S S S S S S S S S S
w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADC12 GPDM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS A1ENS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1E MDF1E
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
NS NS
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
FGENS
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RISAF IACEN RIFSC PKAEN SAESE CRYPE HASHE RNGE
Res. Res. Res. Res. Res. Res. Res. Res.
ENS S ENS S NS NS NS NS
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCE PWRE GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
NS NS ENS
w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS ENS
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTGP OTGP GFXM
NPUEN OTG2E OTG1E ETH1E ETH1R ETH1T ETH1M GPU2D MCE4E XSPI3E MCE3E
AXIEN HY2EN HY1EN Res. MUEN
S NS NS NS XENS XENS ACENS ENS NS NS NS
S S S S
w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MCE2E MCE1E XSPIM XSPI2E SDMM SDMM PSSIE XSPI1E FMCE JPEGE DMA2D HPDM
Res. Res. Res. Res.
NS NS ENS NS C1ENS C2ENS NS NS NS NS ENS A1ENS
w w w w w w w w w w w w
This register is used to enable the RCC APB1L in Run and Sleep modes (in Sleep mode,
each bit of this register is AND-ed with the LPEN bit). It is reset by sys_rstn, and is in the
VCORE voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SPDIF
UART8 UART7 I3C2EN I3C1EN I2C3EN I2C2EN I2C1EN UART5 UART4 USART USART
Res. Res. Res. Res. RX1EN
ENS ENS S S S S S ENS ENS 3ENS 2ENS
S
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3E SPI2E TIM11E TIM10E WWDG LPTIM1 TIM14E TIM13E TIM12E TIM7E TIM6E TIM5E TIM4E TIM3E TIM2E
Res.
NS NS NS NS ENS ENS NS NS NS NS NS NS NS NS NS
w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS ENS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2E SAI1E SPI5E TIM9E TIM17E TIM16E TIM15E
Res. Res. Res. Res. Res. Res. Res. Res. Res.
NS NS NS NS NS NS NS
w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TIM18E SPI4E SPI1E USART UART9 USART USART TIM8E TIM1E
Res. Res. Res. Res. Res. Res. Res.
NS NS NS 10ENS ENS 6ENS 1ENS NS NS
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DFTEN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
S
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCAP RTCEN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BENS S
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4EN SPI6E LPUAR HDPEN
Res. Res. Res. Res. Res. Res. Res.
UFENS ENS ENS ENS ENS S NS T1ENS S
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTSEN BSECE SYSCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
S NS GENS
w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSIEN VENCE GFXTI DCMIP LTDCE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
S NS MENS PENS NS
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ACLKNC ACLKN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPENS LPENS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XSPIPH
PERLP DBGLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. YCOMP Res. Res.
ENS ENS
LPENS
w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CACHE
BOOT VENCR FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
AXIRA
Res. Res. Res. ROML AMLPE AMLPE AM2LP AM1LP AMLPE AM2LP AM1LP AM6LP AM5LP AM4LP AM3LP
MLPEN
PENS NS NS ENS ENS NS ENS ENS ENS ENS ENS ENS
S
w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADC12 GPDMA1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPENS LPENS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1L MDF1L
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PENS PENS
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
GLPENS
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RISAFL IACLP RIFSC PKALP SAESL CRYPL HASHL RNGLP
Res. Res. Res. Res. Res. Res. Res. Res.
PENS ENS LPENS ENS PENS PENS PENS ENS
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCLP PWRL GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS PENS LPENS
w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
LPENS LPENS LPENS LPENS LPENS LPENS LPENS LPENS LPENS LPENS LPENS
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTGP OTGP ETH1R ETH1T ETH1M GFXM
NPULP OTG2L OTG1L ETH1L GPU2D MCE4L XSPI3L MCE3L
AXILPE HY2LP HY1LP XLPEN XLPEN ACLPE Res. MULPE
ENS PENS PENS PENS LPENS PENS PENS PENS
NS ENS ENS S S NS NS
w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM HPDM
MCE2L MCE1L XSPIM XSPI2L PSSILP XSPI1L FMCLP JPEGL DMA2D
Res. Res. Res. C1LPE C2LPE Res. A1LPE
PENS PENS LPENS PENS ENS PENS ENS PENS LPENS
NS NS NS
w w w w w w w w w w w w
This register is used to enable the RCC APB1L in Sleep mode (each bit of this register is
AND-ed with the EN bit). It is reset by sys_rstn, and is in the VCORE voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
USART USART SPDIF
UART8 UART7 I3C2LP I3C1LP I2C3LP I2C2LP I2C1LP UART5 UART4
Res. Res. Res. Res. 3LPEN 2LPEN RX1LP
LPENS LPENS ENS ENS ENS ENS ENS LPENS LPENS
S S ENS
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3LP SPI2LP TIM11L TIM10L WWDG LPTIM1 TIM14L TIM13L TIM12L TIM7LP TIM6LP TIM5LP TIM4LP TIM3LP TIM2LP
Res.
ENS ENS PENS PENS LPENS LPENS PENS PENS PENS ENS ENS ENS ENS ENS ENS
w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPENS
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPENS LPENS
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2LP SAI1LP SPI5LP TIM9LP TIM17L TIM16L TIM15L
Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS ENS ENS ENS PENS PENS PENS
w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
USART USART USART
TIM18L SPI4LP SPI1LP UART9 TIM8LP TIM1LP
Res. Res. Res. Res. Res. 10LPE 6LPEN 1LPEN Res. Res.
PENS ENS ENS LPENS ENS ENS
NS S S
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DFTLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS
w
This register is used to enable the RCC APB4L in Sleep mode (each bit of this register is
AND-ed with the EN bit). It is reset by sys_rstn, and is in the VCORE voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCAP RTCLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BLPENS ENS
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPUAR
LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4LP SPI6LP HDPLP
UFLPE Res. Res. Res. Res. Res. T1LPE Res. Res.
LPENS LPENS LPENS LPENS ENS ENS ENS
NS NS
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTSLP BSECL SYSCFG
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENS PENS LPENS
w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSI VENC GFXTIM DCMIPP LTDC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPENS LPENS LPENS LPENS LPENS
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSE HSIP MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PRIVS RIVS PRIVS PRIVS PRIVS
w w w w w
This register is used to control the public access rights to the configuration register of the
oscillators. It is reset by sys_rstn, and is in the VCORE voltage domain. Each xxPUB bit
defines the public protection for the configuration registers of the oscillator: a write access is
denied if the access is non-public while the respective bit is set.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSE HSI MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PUBS PUBS PUBS PUBS PUBS
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4P PLL3P PLL2P PLL1P
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RIVS RIVS RIVS RIVS
w w w w
Bit 3 PLL4PRIVS: Privileged protection of PLL4 configuration bits (enable, ready, divider)
Written at 1 to set PLL4PRIV by secure privileged software only. It can be read by any
software.
Bit 2 PLL3PRIVS: Privileged protection of PLL3 configuration bits (enable, ready, divider)
Written at 1 to set PLL3PRIV by secure privileged software only. It can be read by any
software.
Bit 1 PLL2PRIVS: Privileged protection of PLL2 configuration bits (enable, ready, divider)
Written at 1 to set PLL2PRIV by secure privileged software only. It can be read by any
software.
Bit 0 PLL1PRIVS: Privileged protection of PLL1 configuration bits (enable, ready, divider)
Written at 1 to set PLL1PRIV by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4P PLL3P PLL2P PLL1P
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
UBS UBS UBS UBS
w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20PR IC19PR IC18PR IC17PR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
IVS IVS IVS IVS
w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16PR IC15PR IC14PR IC13PR IC12PR IC11PR IC10PR IC9PRI IC8PRI IC7PRI IC6PRI IC5PRI IC4PRI IC3PRI IC2PRI IC1PRI
IVS IVS IVS IVS IVS IVS IVS VS VS VS VS VS VS VS VS VS
w w w w w w w w w w w w w w w w
Bit 10 IC11PRIVS: Privileged protection of IC11 configuration bits (enable, ready, divider)
Written at 1 to set IC11PRIV by secure privileged software only. It can be read by any
software.
Bit 9 IC10PRIVS: Privileged protection of IC10 configuration bits (enable, ready, divider)
Written at 1 to set IC10PRIV by secure privileged software only. It can be read by any
software.
Bit 8 IC9PRIVS: Privileged protection of IC9 configuration bits (enable, ready, divider)
Written at 1 to set IC9PRIV by secure privileged software only. It can be read by any
software.
Bit 7 IC8PRIVS: Privileged protection of IC8 configuration bits (enable, ready, divider)
Written at 1 to set IC8PRIV by secure privileged software only. It can be read by any
software.
Bit 6 IC7PRIVS: Privileged protection of IC7 configuration bits (enable, ready, divider)
Written at 1 to set IC7PRIV by secure privileged software only. It can be read by any
software.
Bit 5 IC6PRIVS: Privileged protection of IC6 configuration bits (enable, ready, divider)
Written at 1 to set IC6PRIV by secure privileged software only. It can be read by any
software.
Bit 4 IC5PRIVS: Privileged protection of IC5 configuration bits (enable, ready, divider)
Written at 1 to set IC5PRIV by secure privileged software only. It can be read by any
software.
Bit 3 IC4PRIVS: Privileged protection of IC4 configuration bits (enable, ready, divider)
Written at 1 to set IC4PRIV by secure privileged software only. It can be read by any
software.
Bit 2 IC3PRIVS: Privileged protection of IC3 configuration bits (enable, ready, divider)
Written at 1 to set IC3PRIV by secure privileged software only. It can be read by any
software.
Bit 1 IC2PRIVS: Privileged protection of IC2 configuration bits (enable, ready, divider)
Written at 1 to set IC2PRIV by secure privileged software only. It can be read by any
software.
Bit 0 IC1PRIVS: Privileged protection of IC1 configuration bits (enable, ready, divider)
Written at 1 to set IC1PRIV by secure privileged software only. It can be read by any
software.
the public protection for the configuration registers of the divider: a write access is denied if
the access is non-public while the respective bit is set.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20PU IC19PU IC18PU IC17PU
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BS BS BS BS
w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16PU IC15PU IC14PU IC13PU IC12PU IC11PU IC10PU IC9PU IC8PU IC7PU IC6PU IC5PU IC4PU IC3PU IC2PU IC1PU
BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS BS
w w w w w w w w w w w w w w w w
Bit 8 IC9PUBS: Public protection of IC9 configuration bits (enable, ready, divider)
Written at 1 to set IC9PUB by secure privileged software only. It can be read by any software.
Bit 7 IC8PUBS: Public protection of IC8 configuration bits (enable, ready, divider)
Written at 1 to set IC8PUB by secure privileged software only. It can be read by any software.
Bit 6 IC7PUBS: Public protection of IC7 configuration bits (enable, ready, divider)
Written at 1 to set IC7PUB by secure privileged software only. It can be read by any software.
Bit 5 IC6PUBS: Public protection of IC6 configuration bits (enable, ready, divider)
Written at 1 to set IC6PUB by secure privileged software only. It can be read by any software.
Bit 4 IC5PUBS: Public protection of IC5 configuration bits (enable, ready, divider)
Written at 1 to set IC5PUB by secure privileged software only. It can be read by any software.
Bit 3 IC4PUBS: Public protection of IC4 configuration bits (enable, ready, divider)
Written at 1 to set IC4PUB by secure privileged software only. It can be read by any software.
Bit 2 IC3PUBS: Public protection of IC3 configuration bits (enable, ready, divider)
Written at 1 to set IC3PUB by secure privileged software only. It can be read by any software.
Bit 1 IC2PUBS: Public protection of IC2 configuration bits (enable, ready, divider)
Written at 1 to set IC2PUB by secure privileged software only. It can be read by any software.
Bit 0 IC1PUBS: Public protection of IC1 configuration bits (enable, ready, divider)
Written at 1 to set IC1PUB by secure privileged software only. It can be read by any software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DFTPR RSTPR INTPRI PERPR BUSPR SYSPR MODP
Res. Res. Res. Res. Res. Res. Res. Res. Res.
IVS IVS VS IVS IVS IVS RIVS
w w w w w w w
Bit 4 INTPRIVS: Privileged protection of INT configuration bits (enable, ready, divider)
Written at 1 to set INTPRIV by secure privileged software only. It can be read by any
software.
Bit 3 PERPRIVS: Privileged protection of PER configuration bits (enable, ready, divider)
Written at 1 to set PERPRIV by secure privileged software only. It can be read by any
software.
Bit 2 BUSPRIVS: Privileged protection of BUS configuration bits (enable, ready, divider)
Written at 1 to set BUSPRIV by secure privileged software only. It can be read by any
software.
Bit 1 SYSPRIVS: Privileged protection of SYS configuration bits (enable, ready, divider)
Written at 1 to set SYSPRIV by secure privileged software only. It can be read by any
software.
Bit 0 MODPRIVS: Privileged protection of MOD configuration bits (enable, ready, divider)
Written at 1 to set MODPRIV by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RSTPU INTPU PERPU BUSPU SYSPU MODP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BS BS BS BS BS UBS
w w w w w w
Bit 1 SYSPUBS: Public protection of SYS configuration bits (enable, ready, divider)
Written at 1 to set SYSPUB by secure privileged software only. It can be read by any
software.
Bit 0 MODPUBS: Public protection of MOD configuration bits (enable, ready, divider)
Written at 1 to set MODPUB by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NOCP APB5P APB4P APB3P APB2P APB1P AHB5P AHB4P AHB3P AHB2P AHB1P AHBM ACLKNC ACLKN
Res. Res.
RIVS RIVS RIVS RIVS RIVS RIVS RIVS RIVS RIVS RIVS RIVS PRIVS PRIVS PRIVS
w w w w w w w w w w w w w w
Bit 6 AHB4PRIVS: Privileged protection of AHB4 configuration bits (enable, ready, divider)
Written at 1 to set AHB4PRIV by secure privileged software only. It can be read by any
software.
Bit 5 AHB3PRIVS: Privileged protection of AHB3 configuration bits (enable, ready, divider)
Written at 1 to set AHB3PRIV by secure privileged software only. It can be read by any
software.
Bit 4 AHB2PRIVS: Privileged protection of AHB2 configuration bits (enable, ready, divider)
Written at 1 to set AHB2PRIV by secure privileged software only. It can be read by any
software.
Bit 3 AHB1PRIVS: Privileged protection of AHB1 configuration bits (enable, ready, divider)
Written at 1 to set AHB1PRIV by secure privileged software only. It can be read by any
software.
Bit 2 AHBMPRIVS: Privileged protection of AHBM configuration bits (enable, ready, divider)
Written at 1 to set AHBMPRIV by secure privileged software only. It can be read by any
software.
Bit 1 ACLKNCPRIVS: Privileged protection of th ACLKNC configuration bits (enable, ready, divider)
Written at 1 to set ACLKNCPRIV by secure privileged software only. It can be read by any
software.
Bit 0 ACLKNPRIVS: Privileged protection of ACLKN configuration bits (enable, ready, divider)
Written at 1 to set ACLKNPRIV by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NOCP APB5P APB4P APB3P APB2P APB1P AHB5P AHB4P AHB3P AHB2P AHB1P AHBM ACLKN ACLKN
Res. Res.
UBS UBS UBS UBS UBS UBS UBS UBS UBS UBS UBS PUBS CPUBS PUBS
w w w w w w w w w w w w w w
Bit 11 APB4PUBS: Public protection of APB4 configuration bits (enable, ready, divider)
Written at 1 to set APB4PUB by secure privileged software only. It can be read by any
software.
Bit 10 APB3PUBS: Public protection of APB3 configuration bits (enable, ready, divider)
Written at 1 to set APB3PUB by secure privileged software only. It can be read by any
software.
Bit 9 APB2PUBS: Public protection of APB2 configuration bits (enable, ready, divider)
Written at 1 to set APB2PUB by secure privileged software only. It can be read by any
software.
Bit 8 APB1PUBS: Public protection of APB1 configuration bits (enable, ready, divider)
Written at 1 to set APB1PUB by secure privileged software only. It can be read by any
software.
Bit 7 AHB5PUBS: Public protection of AHB5 configuration bits (enable, ready, divider)
Written at 1 to set AHB5PUB by secure privileged software only. It can be read by any
software.
Bit 6 AHB4PUBS: Public protection of AHB4 configuration bits (enable, ready, divider)
Written at 1 to set AHB4PUB by secure privileged software only. It can be read by any
software.
Bit 5 AHB3PUBS: Public protection of AHB3 configuration bits (enable, ready, divider)
Written at 1 to set AHB3PUB by secure privileged software only. It can be read by any
software.
Bit 4 AHB2PUBS: Public protection of AHB2 configuration bits (enable, ready, divider)
Written at 1 to set AHB2PUB by secure privileged software only. It can be read by any
software.
Bit 3 AHB1PUBS: Public protection of AHB1 configuration bits (enable, ready, divider)
Written at 1 to set AHB1PUB by secure privileged software only. It can be read by any
software.
Bit 2 AHBMPUBS: Public protection of AHBM configuration bits (enable, ready, divider)
Written at 1 to set AHBMPUB by secure privileged software only. It can be read by any
software.
Bit 1 ACLKNCPUBS: Public protection of ACLKNC configuration bits (enable, ready, divider)
Written at 1 to set ACLKNCPUB by secure privileged software only. It can be read by any
software.
Bit 0 ACLKNPUBS: Public protection of ACLKN configuration bits (enable, ready, divider)
Written at 1 to set ACLKNPUB by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CACHE
VENCR FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
AXIRA
Res. Res. Res. Res. AMPU AMPU AM2PU AM1PU AMPU AM2PU AM1PU AM6PU AM5PU AM4PU AM3PU
MPUB
BS BS BS BS BS BS BS BS BS BS BS
S
w w w w w w w w w w w w
Bit 0 AXISRAM3PUBS: Public protection of AXISRAM3 configuration bits (enable, ready, divider)
Written at 1 to set AXISRAM3PUB by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4 PLL3 PLL2 PLL1 HSE HSI MSI LSE LSI
Res. Res. Res. Res. Res. Res. Res.
ONC ONC ONC ONC ONC ONC ONC ONC ONC
w w w w w w w w w
This register is used to enable the RCC oscillators and PLLs in Stop mode. It is reset by
sys_rstn, and is in the VCORE voltage domain.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSISTO MSISTO
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PENC PENC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM XSPIP XSPIP
DBGR
Res. Res. Res. Res. Res. Res. Res. C2DLL C1DLL Res. HY2RS HY1RS Res. Res. Res.
STC
RSTC RSTC TC TC
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT VENCR CACHE FLEXR AXISR AXISR AHBSR AHBSR AXISR AXISR AXISR AXISR
Res. Res. Res. ROMR AMRST AXIRAM AMRST AM2RS AM1RS Res. AM2RS AM1RS AM6RS AM5RS AM4RS AM3RS
STC C RSTC C TC TC TC TC TC TC TC TC
w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADC12 GPDMA1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTC RSTC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1R MDF1R
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
STC STC
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMC
Res. Res. Res. FGRST Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
C
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IACRS PKARS SAESR CRYPR HASHR RNGR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
TC TC STC STC STC STC
w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCR PWRR GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
STC STC RSTC
w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
RSTC RSTC RSTC RSTC RSTC RSTC RSTC RSTC RSTC RSTC RSTC
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
OTG2 OTG1
CACHE OTG OTG GFX
NPU OTG2 OTG1 ETH1 PHY PHY GPU2D XSPI3
AXI PHY2 PHY1 Res. Res. MMU Res. Res.
RSTC RSTC RSTC RSTC CTL CTL RSTC RSTC
RSTC RSTC RSTC RSTC
RSTC RSTC
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM HPD
XSPIM XSPI2 PSSI XSPI1 FMC JPEG DMA2D
Res. Res. Res. Res. Res. C1 C2 Res. MA1
RSTC RSTC RSTC RSTC RSTC RSTC RSTC
RSTC RSTC RSTC
w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SPDIF
UART8 UART7 I3C2RS I3C1RS I2C3RS I2C2RS I2C1RS UART5 UART4 USART USART
Res. Res. Res. Res. RX1RS
RSTC RSTC TC TC TC TC TC RSTC RSTC 3RSTC 2RSTC
TC
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3R SPI2R TIM11R TIM10 WWDG LPTIM1 TIM14 TIM13 TIM12 TIM7R TIM6R TIM5R TIM4R TIM3R TIM2R
Res.
STC STC STC RSTC RSTC RSTC RSTC RSTC RSTC STC STC STC STC STC STC
w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTC
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTC RSTC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2R SAI1R SPI5R TIM9R TIM17 TIM16 TIM15
Res. Res. Res. Res. Res. Res. Res. Res. Res.
STC STC STC STC RSTC RSTC RSTC
w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
USART
TIM18 SPI4R SPI1R UART9 USART USART TIM8R TIM1R
Res. Res. Res. Res. Res. 10RST Res. Res.
RSTC STC STC RSTC 6RSTC 1RSTC STC STC
C
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RSTC
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFBUF LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4 SPI6 LPUART1 HDP
Res. Res. Res. Res. Res. Res. Res.
RSTC RSTC RSTC RSTC RSTC RSTC RSTC RSTC RSTC
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTSRS SYSCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
TC GRSTC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSIRS VENCR GFXTIM DCMIP LTDCR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
TC STC RSTC PRSTC STC
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20EN IC19EN IC18EN IC17EN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
C C C C
w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16EN IC15EN IC14EN IC13EN IC12EN IC11EN IC10EN IC9EN IC8EN IC7EN IC6EN IC5EN IC4EN IC3EN IC2EN IC1EN
C C C C C C C C C C C C C C C C
w w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ACLKN ACLKN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
CENC ENC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XSPIPHY
PER MCO2 MCO1 DBG
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. COMP
ENC ENC ENC ENC
ENC
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT VENCR CACHE FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
Res. Res. Res. ROME AMEN AXIRA AMEN AM2EN AM1EN AMEN AM2EN AM1EN AM6EN AM5EN AM4EN AM3EN
NC C MENC C C C C C C C C C C
w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ADC12 GPDM
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENC A1ENC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1E MDF1E
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
NC NC
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
FGENC
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RISAF IACEN RIFSC PKAEN SAESE CRYPE HASHE RNGE
Res. Res. Res. Res. Res. Res. Res. Res.
ENC C ENC C NC NC NC NC
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCE PWRE GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
NC NC ENC
w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
ENC ENC ENC ENC ENC ENC ENC ENC ENC ENC ENC
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTGP OTGP GFXM
NPUEN OTG2E OTG1E ETH1E ETH1R ETH1T ETH1M GPU2D MCE4E XSPI3E MCE3E
AXIEN HY2EN HY1EN Res. MUEN
C NC NC NC XENC XENC ACENC ENC NC NC NC
C C C C
w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MCE2E MCE1E XSPIM XSPI2E SDMM SDMM PSSIE XSPI1E FMCE JPEGE DMA2D HPDM
Res. Res. Res. Res.
NC NC ENC NC C1ENC C2ENC NC NC NC NC ENC A1ENC
w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SPDIF
UART8 UART7 I3C2EN I3C1EN I2C3EN I2C2EN I2C1EN UART5 UART4 USART USART
Res. Res. Res. Res. RX1EN
ENC ENC C C C C C ENC ENC 3ENC 2ENC
C
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3E SPI2E TIM11E TIM10E LPTIM1 TIM14E TIM13E TIM12E TIM7E TIM6E TIM5E TIM4E TIM3E TIM2E
Res. Res.
NC NC NC NC ENC NC NC NC NC NC NC NC NC NC
w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENC
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENC ENC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2E SAI1E SPI5E TIM9E TIM17E TIM16E TIM15E
Res. Res. Res. Res. Res. Res. Res. Res. Res.
NC NC NC NC NC NC NC
w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
TIM18E SPI4E SPI1E USART UART9 USART USART TIM8E TIM1E
Res. Res. Res. Res. Res. Res. Res.
NC NC NC 10ENC ENC 6ENC 1ENC NC NC
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DFTENC Res. Res.
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCAP RTCEN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BENC C
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4EN SPI6E LPUAR HDPEN
Res. Res. Res. Res. Res. Res. Res.
UFENC ENC ENC ENC ENC C NC T1ENC C
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DTSEN BSECE SYSCF
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
C NC GENC
w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CSIEN VENCE GFXTI DCMIP LTDCE
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
C NC MENC PENC NC
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ACLKN
ACLKN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. CLPEN
LPENC
C
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
XSPIP
PERLP HYCO DBGLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENC MPLPE ENC
NC
w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CACHE
BOOT VENCR FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
AXIRA
Res. Res. Res. ROML AMLPE AMLPE AM2LP AM1LP AMLPE AM2LP AM1LP AM6LP AM5LP AM4LP AM3LP
MLPEN
PENC NC NC ENC ENC NC ENC ENC ENC ENC ENC ENC
C
w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPDM
ADC12
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. A1LPE Res. Res. Res. Res.
LPENC
NC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
ADF1L MDF1L
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
PENC PENC
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RAMC
Res. Res. Res. FGLPE Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
NC
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RISAFL IACLP RIFSC PKALP SAESL CRYPL HASHL RNGLP
Res. Res. Res. Res. Res. Res. Res. Res.
PENC ENC LPENC ENC PENC PENC PENC ENC
w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CRCLP PWRL GPIOQ
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENC PENC LPENC
w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GPIOP GPIOO GPION GPIOH GPIOG GPIOF GPIOE GPIOD GPIOC GPIOB GPIOA
Res. Res. Res. Res. Res.
LPENC LPENC LPENC LPENC LPENC LPENC LPENC LPENC LPENC LPENC LPENC
w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CACHE OTGP OTGP ETH1R ETH1T ETH1M GFXM
NPULP OTG2L OTG1L ETH1L GPU2D MCE4L XSPI3L MCE3L
AXILPE HY2LP HY1LP XLPEN XLPEN ACLPE Res. MULPE
ENC PENC PENC PENC LPENC PENC PENC PENC
NC ENC ENC C C NC NC
w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM HPDM
MCE2L MCE1L XSPIM XSPI2L PSSILP XSPI1L FMCLP JPEGL DMA2D
Res. Res. Res. C1LPE C2LPE Res. A1LPE
PENC PENC LPENC PENC ENC PENC ENC PENC LPENC
NC NC NC
w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
USART USART SPDIF
UART8 UART7 I3C2LP I3C1LP I2C3LP I2C2LP I2C1LP UART5 UART4
Res. Res. Res. Res. 3LPEN 2LPEN RX1LP
LPENC LPENC ENC ENC ENC ENC ENC LPENC LPENC
C C ENC
w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SPI3LP SPI2LP TIM11L TIM10L WWDG LPTIM1 TIM14L TIM13L TIM12L TIM7LP TIM6LP TIM5LP TIM4LP TIM3LP TIM2LP
Res.
ENC ENC PENC PENC LPENC LPENC PENC PENC PENC ENC ENC ENC ENC ENC ENC
w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UCPD1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPENC
w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
FDCAN MDIOS
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
LPENC LPENC
w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SAI2LP SAI1LP SPI5LP TIM9LP TIM17L TIM16L TIM15L
Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENC ENC ENC ENC PENC PENC PENC
w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
USART USART USART
TIM18L SPI4LP SPI1LP UART9 TIM8LP TIM1LP
Res. Res. Res. Res. Res. 10LPE 6LPEN 1LPEN Res. Res.
PENC ENC ENC LPENC ENC ENC
NC C C
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DFTLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
ENC
w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RTCAP
RTCLP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. BLPEN
ENC
C
w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VREFB LPUAR
LPTIM5 LPTIM4 LPTIM3 LPTIM2 I2C4LP SPI6LP HDPLP
UFLPE Res. Res. Res. Res. Res. T1LPE Res. Res.
LPENC LPENC LPENC LPENC ENC ENC ENC
NC NC
w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SYSCF
DTSLP BSECL
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. GLPEN
ENC PENC
C
w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
GFXTI DCMIP
CSILP VENCL LTDCL
Res. Res. Res. Res. Res. Res. Res. Res. Res. MLPEN Res. PLPEN Res.
ENC PENC PENC
C C
w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSEPR HSIPRI MSIPRI LSEPR LSIPRI
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
IVC VC VC IVC VC
w w w w w
Bit 0 LSIPRIVC: Privileged protection of LSI configuration bits (enable, ready, divider)
Written at 1 to clear LSIPRIV by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
HSEPU HSIPU MSIPU LSEPU LSIPU
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BC BC BC BC BC
w w w w w
This register is used to control the privileged access rights to the configuration register of
the PLLs. It is reset by sys_rstn and is in VCORE voltage domain. Each xxPRIV bit defines
the privileged protection for the configuration registers of the PLL: a write access is denied if
the access is unprivileged while the respective bit is set.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4P PLL3P PLL2P PLL1P
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
RIVC RIVC RIVC RIVC
w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PLL4P PLL3P PLL2P PLL1P
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
UBC UBC UBC UBC
w w w w
Bit 2 PLL3PUBC: Public protection of PLL3 configuration bits (enable, ready, divider)
Written at 1 to clear PLL3PUB by secure privileged software only. It can be read by any
software.
Bit 1 PLL2PUBC: Public protection of te PLL2 configuration bits (enable, ready, divider)
Written at 1 to clear PLL2PUB by secure privileged software only. It can be read by any
software.
Bit 0 PLL1PUBC: Public protection of th PLL1 configuration bits (enable, ready, divider)
Written at 1 to clear PLL1PUB by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20PR IC19PR IC18PR IC17PR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
IVC IVC IVC IVC
w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16PR IC15PR IC14PR IC13PR IC12PR IC11PR IC10PR IC9PRI IC8PRI IC7PRI IC6PRI IC5PRI IC4PRI IC3PRI IC2PRI IC1PRI
IVC IVC IVC IVC IVC IVC IVC VC VC VC VC VC VC VC VC VC
w w w w w w w w w w w w w w w w
Bit 14 IC15PRIVC: Privileged protection of IC15 configuration bits (enable, ready, divider)
Written at 1 to clear IC15PRIV by secure privileged software only. It can be read by any
software.
Bit 13 IC14PRIVC: Privileged protection of IC14 configuration bits (enable, ready, divider)
Written at 1 to clear IC14PRIV by secure privileged software only. It can be read by any
software.
Bit 12 IC13PRIVC: Privileged protection of IC13 configuration bits (enable, ready, divider)
Written at 1 to clear IC13PRIV by secure privileged software only. It can be read by any
software.
Bit 11 IC12PRIVC: Privileged protection of IC12 configuration bits (enable, ready, divider)
Written at 1 to clear IC12PRIV by secure privileged software only. It can be read by any
software.
Bit 10 IC11PRIVC: Privileged protection of IC11 configuration bits (enable, ready, divider)
Written at 1 to clear IC11PRIV by secure privileged software only. It can be read by any
software.
Bit 9 IC10PRIVC: Privileged protection of IC10 configuration bits (enable, ready, divider)
Written at 1 to clear IC10PRIV by secure privileged software only. It can be read by any
software.
Bit 8 IC9PRIVC: Privileged protection of IC9 configuration bits (enable, ready, divider)
Written at 1 to clear IC9PRIV by secure privileged software only. It can be read by any
software.
Bit 7 IC8PRIVC: Privileged protection of IC8 configuration bits (enable, ready, divider)
Written at 1 to clear IC8PRIV by secure privileged software only. It can be read by any
software.
Bit 6 IC7PRIVC: Privileged protection of IC7 configuration bits (enable, ready, divider)
Written at 1 to clear IC7PRIV by secure privileged software only. It can be read by any
software.
Bit 5 IC6PRIVC: Privileged protection of IC6 configuration bits (enable, ready, divider)
Written at 1 to clear IC6PRIV by secure privileged software only. It can be read by any
software.
Bit 4 IC5PRIVC: Privileged protection of the IC5 configuration bits (enable, ready, divider).
Written at 1 to clear IC5PRIV by secure privileged software only. It can read by any software.
Bit 3 IC4PRIVC: Privileged protection of the IC4 configuration bits (enable, ready, divider).
Written at 1 to clear IC4PRIV by secure privileged software only. It can read by any software.
Bit 2 IC3PRIVC: Privileged protection of the IC3 configuration bits (enable, ready, divider).
Written at 1 to clear IC3PRIV by secure privileged software only. It can read by any software.
Bit 1 IC2PRIVC: Privileged protection of the IC2 configuration bits (enable, ready, divider).
Written at 1 to clear IC2PRIV by secure privileged software only. It can read by any software.
Bit 0 IC1PRIVC: Privileged protection of the IC1 configuration bits (enable, ready, divider).
Written at 1 to clear IC1PRIV by secure privileged software only. It can read by any software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
IC20PU IC19PU IC18PU IC17PU
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BC BC BC BC
w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IC16PU IC15PU IC14PU IC13PU IC12PU IC11PU IC10PU IC9PU IC8PU IC7PU IC6PU IC5PU IC4PU IC3PU IC2PU IC1PU
BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC BC
w w w w w w w w w w w w w w w w
Bit 9 IC10PUBC: Public protection of IC10 configuration bits (enable, ready, divider)
Written at 1 to clear IC10PUB by secure privileged software only. It can be read by any
software.
Bit 8 IC9PUBC: Public protection of IC9 configuration bits (enable, ready, divider)
Written at 1 to clear IC9PUB by secure privileged software only. It can be read by any
software.
Bit 7 IC8PUBC: Public protection of IC8 configuration bits (enable, ready, divider)
Written at 1 to clear IC8PUB by secure privileged software only. It can be read by any
software.
Bit 6 IC7PUBC: Public protection of IC7 configuration bits (enable, ready, divider)
Written at 1 to clear IC7PUB by secure privileged software only. It can be read by any
software.
Bit 5 IC6PUBC: Public protection of IC6 configuration bits (enable, ready, divider)
Written at 1 to clear IC6PUB by secure privileged software only. It can be read by any
software.
Bit 4 IC5PUBC: Public protection of IC5 configuration bits (enable, ready, divider)
Written at 1 to clear IC5PUB by secure privileged software only. It can be read by any
software.
Bit 3 IC4PUBC: Public protection of IC4 configuration bits (enable, ready, divider)
Written at 1 to clear IC4PUB by secure privileged software only. It can be read by any
software.
Bit 2 IC3PUBC: Public protection of IC3 configuration bits (enable, ready, divider)
Written at 1 to clear IC3PUB by secure privileged software only. It can be read by any
software.
Bit 1 IC2PUBC: Public protection of IC2 configuration bits (enable, ready, divider)
Written at 1 to clear IC2PUB by secure privileged software only. It can be read by any
software.
Bit 0 IC1PUBC: Public protection of IC1 configuration bits (enable, ready, divider)
Written at 1 to clear IC1PUB by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DFTPR RSTPR INTPRI PERPR BUSPR SYSPR MODP
Res. Res. Res. Res. Res. Res. Res. Res. Res.
IVC IVC VC IVC IVC IVC RIVC
w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RSTPU INTPU PERPU BUSPU SYSPU MODP
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
BC BC BC BC BC UBC
w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ACLKN
NOCP APB5P APB4P APB3P APB2P APB1P AHB5P AHB4P AHB3P AHB2P AHB1P AHBM ACLKN
Res. Res. CPRIV
RIVC RIVC RIVC RIVC RIVC RIVC RIVC RIVC RIVC RIVC RIVC PRIVC PRIVC
C
w w w w w w w w w w w w w w
Bit 13 NOCPRIVC: Privileged protection of NOC configuration bits (enable, ready, divider)
Written at 1 to clear NOCPRIV by secure privileged software only. It can be read by any
software.
Bit 12 APB5PRIVC: Privileged protection of APB5 configuration bits (enable, ready, divider)
Written at 1 to clear APB5PRIV by secure privileged software only. It can be read by any
software.
Bit 11 APB4PRIVC: Privileged protection of APB4 configuration bits (enable, ready, divider)
Written at 1 to clear APB4PRIV by secure privileged software only. It can be read by any
software.
Bit 10 APB3PRIVC: Privileged protection of APB3 configuration bits (enable, ready, divider)
Written at 1 to clear APB3PRIV by secure privileged software only. It can be read by any
software.
Bit 9 APB2PRIVC: Privileged protection of APB2 configuration bits (enable, ready, divider)
Written at 1 to clear APB2PRIV by secure privileged software only. It can be read by any
software.
Bit 8 APB1PRIVC: Privileged protection of APB1 configuration bits (enable, ready, divider)
Written at 1 to clear APB1PRIV by secure privileged software only. It can be read by any
software.
Bit 7 AHB5PRIVC: Privileged protection of AHB5 configuration bits (enable, ready, divider)
Written at 1 to clear AHB5PRIV by secure privileged software only. It can be read by any
software.
Bit 6 AHB4PRIVC: Privileged protection of AHB4 configuration bits (enable, ready, divider)
Written at 1 to clear AHB4PRIV by secure privileged software only. It can be read by any
software.
Bit 5 AHB3PRIVC: Privileged protection of AHB3 configuration bits (enable, ready, divider)
Written at 1 to clear AHB3PRIV by secure privileged software only. It can be read by any
software.
Bit 4 AHB2PRIVC: Privileged protection of AHB2 configuration bits (enable, ready, divider)
Written at 1 to clear AHB2PRIV by secure privileged software only. It can be read by any
software.
Bit 3 AHB1PRIVC: Privileged protection of AHB1 configuration bits (enable, ready, divider)
Written at 1 to clear AHB1PRIV by secure privileged software only. It can be read by any
software.
Bit 2 AHBMPRIVC: Privileged protection of AHBM configuration bits (enable, ready, divider)
Written at 1 to clear AHBMPRIV by secure privileged software only. It can be read by any
software.
Bit 1 ACLKNCPRIVC: Privileged protection of ACLKNC configuration bits (enable, ready, divider)
Written at 1 to clear ACLKNCPRIV by secure privileged software only. It can read by any
software.
Bit 0 ACLKNPRIVC: Privileged protection of ACLKN configuration bits (enable, ready, divider)
Written at 1 to clear ACLKNPRIV by secure privileged software only. It can read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NOCP APB5P APB4P APB3P APB2P APB1P AHB5P AHB4P AHB3P AHB2P AHB1P AHBM ACLKN ACLKN
Res. Res.
UBC UBC UBC UBC UBC UBC UBC UBC UBC UBC UBC PUBC CPUBC PUBC
w w w w w w w w w w w w w w
Bit 4 AHB2PUBC: Public protection of AHB2 configuration bits (enable, ready, divider)
Written at 1 to clear AHB2PUB by secure privileged software only. It can be read by any
software.
Bit 3 AHB1PUBC: Public protection of AHB1 configuration bits (enable, ready, divider)
Written at 1 to clear AHB1PUB by secure privileged software only. It can be read by any
software.
Bit 2 AHBMPUBC: Public protection of AHBM configuration bits (enable, ready, divider)
Written at 1 to clear AHBMPUB by secure privileged software only. It can be read by any
software.
Bit 1 ACLKNCPUBC: Public protection of ACLKNC configuration bits (enable, ready, divider)
Written at 1 to clear ACLKNCPUB by secure privileged software only. It can be read by any
software.
Bit 0 ACLKNPUBC: Public protection of ACLKN configuration bits (enable, ready, divider)
Written at 1 to clear ACLKNPUB by secure privileged software only. It can be read by any
software.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CACHE
VENCR FLEXR AXISR AXISR BKPSR AHBSR AHBSR AXISR AXISR AXISR AXISR
AXIRA
Res. Res. Res. Res. AMPU AMPU AM2PU AM1PU AMPU AM2PU AM1PU AM6PU AM5PU AM4PU AM3PU
MPUB
BC BC BC BC BC BC BC BC BC BC BC
C
w w w w w w w w w w w w
Bit 8 AXISRAM2PUBC: Public protection of AXISRAM2 configuration bits (enable, ready, divider)
This bit is written to 1 to clear AXISRAM2PUB by secure privileged software only. It can be
read by any software.
Bit 7 AXISRAM1PUBC: Public protection of AXISRAM1 configuration bits (enable, ready, divider)
This bit is written to 1 to clear AXISRAM1PUB by secure privileged software only. It can be
read by any software.
Bit 6 BKPSRAMPUBC: Public protection of BKPSRAM configuration bits (enable, ready, divider)
This bit is written to 1 to clear BKPSRAMPUB by secure privileged software only. It can be
read by any software.
Bit 5 AHBSRAM2PUBC: Public protection of AHBSRAM2 configuration bits (enable, ready, divider)
This bit is written to 1 to clear AHBSRAM2PUB by secure privileged software only. It can be
read by any software.
Bit 4 AHBSRAM1PUBC: Public protection of AHBSRAM1 configuration bits (enable, ready, divider)
This bit is written to 1 to clear AHBSRAM1PUB by secure privileged software only. It can be
read by any software.
Bit 3 AXISRAM6PUBC: Public protection of AXISRAM6 configuration bits (enable, ready, divider)
This bit is written to 1 to clear AXISRAM6PUB by secure privileged software only. It can be
read by any software.
Bit 2 AXISRAM5PUBC: Public protection of AXISRAM5 configuration bits (enable, ready, divider)
Written at 1 to clear AXISRAM5PUB by secure privileged software only. It can be read by any
software.
Bit 1 AXISRAM4PUBC: Public protection of AXISRAM4 configuration bits (enable, ready, divider)
Written at 1 to clear AXISRAM4PUB by secure privileged software only. It can be read by any
software.
Bit 0 AXISRAM3PUBC: Public protection of AXISRAM3 configuration bits (enable, ready, divider)
Written at 1 to clear AXISRAM3PUB by secure privileged software only. It can be read by any
software.
0x028
0x03C
0x02C
0x01C
Offset
0x038-
0x00C-
RM0486
RCC_SR
RCC_CR
Reserved
Reserved
Reserved
RCC_RSR
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
RCC_BDCR
RCC_CFGR2
RCC_CFGR1
RCC_HWRSR
RCC_STOPCR
Register name
0
Res. Res. VSWRST Res. Res. Res. Res. Res. 31
0
0
LPWRRSTF LPWRRSTF Res. Res. Res. Res. Res. Res. 30
0
Res. Res. Res. Res. SYSSWS Res. Res. Res. 29
[1:0]
0
0
0
WWDGRSTF WWDGRSTF Res. Res. Res. Res. Res. 28
14.10.242 RCC register map
0
0
IWDGRSTF IWDGRSTF Res. Res. Res. Res. Res. Res. 26
0
0
Res. Res. Res. TIMPRE SYSSW Res. Res. Res. 25
[1:0] [1:0]
0
0
0
0
SFTRSTF SFTRSTF Res. Res. Res. Res. 24
1
1
PORRSTF PORRSTF Res. Res. Res. Res. Res. Res. 23
0
0
0
PINRSTF PINRSTF Res. Res. Res. Res. Res. 22
1
1
0
0
BORRSTF BORRSTF Res. CPUSWS Res. Res. Res. 21
[2:0]
HPRE
[1:0]
1
0
Res. Res. Res. Res. Res. Res. 20
Res. Res. Res. Res. Res. Res. Res. Res. 19
RM0486 Rev 2
Res. Res. Res. Res. Res. Res. Res. 18
0
0
0
0
LCKRSTF LCKRSTF Res. CPUSW Res. Res. Res. 17
[2:0]
PPRE5
[1:0]
0
0
0
0
RMVF RMVF Res. Res. Res. Res. 16
Res. Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Reserved
Reserved
0
Res. Res. Res. Res. Res. Res. Res. 14
0
Res. Res. Res. Res. Res. Res. Res. 13
[2:0]
PPRE4
0
Res. Res. Res. Res. Res. Res. Res. 12
Table 78. RCC register map and reset values
0
0
0
0
0
0
0
0
0
751/4691
779
0x090
0x088
0x084
0x080
0x054
0x050
0x048
0x044
0x040
0x08C
0x07C
0x04C
Offset
0x058-
752/4691
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
RCC_HSIMSR
RCC_HSIMCR
Register name
RCC_HSICFGR
RCC_MSICFGR
RCC_LSECFGR
RCC_HSECFGR
RCC_PLL2CFGR1
RCC_PLL1CFGR3
RCC_PLL1CFGR2
RCC_PLL1CFGR1
0
0
Res. Res. Res. Res. Res. Res. HSIMONEN Res. Res. 31
0
1
0
0
0
PLL1PDIVEN Res. Res. Res. Res. Res. 30
PLL2SEL PLL1SEL
0
0
0
0
0
[2:0] Res. [2:0] Res. Res. Res. Res. 29
Reset and clock control (RCC)
PLL1PDIV1
0
0
0
0
0
[2:0] Res. Res. Res. Res. Res. 28
1
1
1
0
0
PLL2BYP Res. PLL1BYP Res. Res. Res. Res. 27
0
0
Res. Res. Res. Res. Res. Res. 0 Res. 26
HSICAL[8:0]
PLL1PDIV2
0
0
0
0
0
MSICAL[7:0]
0
1
0
0
0
0
1
0
0
0
0
0
0
0
Res. Res. Res. Res. Res. Res. 22
0
0
0
1
0
Res. Res. Res. Res. Res. 21
PLL2DIVM[5:0]
PLL1DIVM[5:0]
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
RM0486 Rev 2
[4:0] Res. 18
HSITRIM[6:0]
0
0
0
0
0
0
1
0
0
HSIDEV[5:0]
0
0
0
0
0
0
1
0
0
0
0
0
0
0
Reserved
Reserved
0
0
0
0
Res. Res. Res. Res. Res. Res. 14
0
0
1
0
Res. HSECSSBPRE Res. Res. Res. Res. Res. 13
[3:0]
0
0
0
0
Res. Res. Res. Res. Res. Res. 12
PLL2DIVN[11:0]
PLL1DIVN[11:0]
0
0
0
0
1
Res. Res. Res. Res. Res. 11
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
PLL1DIVNFRAC[23:0]
Table 78. RCC register map and reset values (continued)
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0x0B8
0x0B4
0x0B0
0x0A8
0x0A4
0x0A0
0x0C4
0x0C0
0x09C
Offset
0x0AC
0x0BC-
RM0486
Reserved
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_IC1CFGR
RCC_PLL4CFGR3
RCC_PLL4CFGR2
RCC_PLL4CFGR1
RCC_PLL3CFGR3
RCC_PLL3CFGR2
RCC_PLL3CFGR1
RCC_PLL2CFGR3
RCC_PLL2CFGR2
1
0
1
0
1
Res. PLL4PDIVEN Res. PLL3PDIVEN Res. PLL2PDIVEN Res. 30
PLL4SEL PLL3SEL
0
0
0
0
0
0
IC1SEL[1:0] Res. [2:0] Res. [2:0] Res. 29
PLL4PDIV1 PLL3PDIV1 PLL2PDIV1
0
0
0
0
0
0
[2:0] Res. [2:0] Res. [2:0] Res. 28
1
1
1
1
Res. Res. PLL4BYP Res. PLL3BYP 1 Res. 27
0
0
0
Res. Res. Res. Res. Res. Res. 26
PLL4PDIV2 PLL3PDIV2 PLL2PDIV2
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
PLL4DIVM[5:0]
PLL3DIVM[5:0]
0
0
0
0
0
0
0
0
0
20
0
0
0
0
0
0
0
0
0
19
PLL4MODSPR PLL3MODSPR PLL2MODSPR
IC1INT[7:0]
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
[4:0] [4:0] [4:0] 18
1
0
0
0
0
0
0
0
0
17
0
0
0
0
0
0
0
0
0
16
0
0
0
0
0
Reserved
Reserved
Reserved
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
PLL4DIVN[11:0]
PLL3DIVN[11:0]
0
0
0
0
0
0
0
0
Res. 11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Res. 9
PLL4DIVNFRAC[23:0]
PLL3DIVNFRAC[23:0]
PLL2DIVNFRAC[23:0]
Table 78. RCC register map and reset values (continued)
0
0
0
0
0
0
0
0
Res. 8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
753/4691
779
0x0E8
0x0E4
0x0E0
0x0D8
0x0D4
0x0D0
0x0C8
Offset
0x0EC
0x0DC
0x0CC
754/4691
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_IC9CFGR
RCC_IC8CFGR
RCC_IC7CFGR
RCC_IC6CFGR
RCC_IC5CFGR
RCC_IC4CFGR
RCC_IC3CFGR
RCC_IC2CFGR
RCC_IC11CFGR
RCC_IC10CFGR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
0
0
0
0
0
0
0
0
0
0
IC11SEL IC10SEL
Reset and clock control (RCC)
0
1
1
1
1
0
0
0
0
0
28
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 27
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 25
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 24
0
0
0
0
0
0
0
0
0
0
23
0
0
0
0
0
0
0
0
0
0
22
0
0
0
0
0
0
0
0
0
0
21
0
0
0
0
0
0
0
0
0
0
20
0
0
0
0
0
0
0
0
0
0
19
IC9INT[7:0]
IC8INT[7:0]
IC7INT[7:0]
IC6INT[7:0]
IC5INT[7:0]
IC4INT[7:0]
IC3INT[7:0]
IC2INT[7:0]
0
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
IC11INT[7:0]
IC10INT[7:0]
18
1
0
0
0
0
1
0
0
0
1
17
1
0
0
0
0
1
0
0
0
1
16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 15
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 14
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 13
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 12
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 11
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 10
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 9
Table 78. RCC register map and reset values (continued)
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 8
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 7
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 6
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 5
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 4
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 3
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 2
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 1
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 0
RM0486
0x110
0x128
0x124
0x120
0x108
0x104
0x100
0x0F8
0x0F4
0x0F0
0x10C
Offset
0x0FC
0x114-
RM0486
Reserved
RCC_CIFR
RCC_CIER
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_IC20CFGR
RCC_IC19CFGR
RCC_IC18CFGR
RCC_IC17CFGR
RCC_IC16CFGR
RCC_IC15CFGR
RCC_IC14CFGR
RCC_IC13CFGR
RCC_IC12CFGR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
1
1
1
1
1
1
1
1
1
Res. Res. IC20SEL IC19SEL IC18SEL IC17SEL IC16SEL IC15SEL IC14SEL IC13SEL IC12SEL 29
[1:0] [1:0] [1:0] [1:0] [1:0] [1:0] [1:0] [1:0] [1:0]
1
1
1
1
1
0
0
0
0
Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 27
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 25
0
0
WKUPF WKUPIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 24
0
0
0
0
0
0
0
0
0
Res. Res. 23
0
0
0
0
0
0
0
0
0
Res. Res. 22
0
0
0
0
0
0
0
0
0
Res. Res. 21
0
0
0
0
0
0
0
0
0
Res. Res. 20
0
0
0
0
0
0
0
0
0
Res. Res. 19
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
IC20INT[7:0]
IC19INT[7:0]
IC18INT[7:0]
IC17INT[7:0]
IC16INT[7:0]
IC15INT[7:0]
IC14INT[7:0]
IC13INT[7:0]
IC12INT[7:0]
Res. Res. 18
0
1
0
0
0
0
0
0
0
0
0
HSECSSF HSECSSIE 17
0
0
0
0
0
0
0
0
0
0
0
LSECSSF LSECSSIE 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 14
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 13
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 12
0
0
PLL4RDYF PLL4RDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 11
0
0
PLL3RDYF PLL3RDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 10
0
0
PLL2RDYF PLL2RDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
PLL1RDYF PLL1RDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 8
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 7
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 6
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 5
0
0
HSERDYF HSERDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 4
0
0
HSIRDYF HSIRDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 3
0
0
MSIRDYF MSIRDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 2
0
0
LSERDYF LSERDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 1
0
0
LSIRDYF LSIRDYIE Res. Res. Res. Res. Res. Res. Res. Res. Res. 0
Reset and clock control (RCC)
755/4691
779
0x158
0x154
0x150
0x148
0x144
0x140
0x15C
0x14C
0x12C
Offset
0x130-
756/4691
Reserved
RCC_CICR
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
RCC_CCIPR7
RCC_CCIPR6
RCC_CCIPR5
RCC_CCIPR4
RCC_CCIPR3
RCC_CCIPR2
RCC_CCIPR1
Register name
0
Res. Res. Res. Res. Res. Res. Res. 26
SAI2SEL
0
0
[2:0] Res. Res. LTDCSEL Res. Res. Res. Res. 25
[1:0]
0
0
0
0
0
0
0
Res. Res. Res. Res. Res. Res. 22
SAI1SEL I3C2SEL
0
0
0
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
Res. Res. Res. Res. Res. 18
MDF1SEL I3C1SEL
ETH1SEL[2:0]
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
Res. Res. 13
RTCPRE[5:0]
OTGPHY1SEL[1:0] [2:0] ETH1CLKSEL[1:0]
0
0
1
0
0
0
Res. Res. 12
0
0
0
0
0
0
MCO2SEL I2C3SEL
1
0
0
0
0
0
[1:0]
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
HSERDYC 4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
LSIRDYC 0
RM0486
0x208
0x204
0x178
0x174
0x170
0x164
0x160
0x20C
0x16C
Offset
0x168-
0x17C-
RM0486
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
RCC_CCIPR9
RCC_CCIPR8
Register name
RCC_CCIPR14
RCC_CCIPR13
RCC_CCIPR12
RCC_MEMRSTR
RCC_MISCRSTR
Res. Res. Res. Res. Res. Res. Res. 31
0
Res. Res. Res. Res. Res. Res. 30
UART8SEL[2:0]
0
Res. Res. Res. Res. Res. Res. 29
0
Res. Res. Res. Res. Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. 27
0
0
0
Res. Res. Res. Res. 26
UART7SEL[2:0] LPTIM5SEL[2:0] SPI6SEL[2:0]
0
0
0
Res. Res. Res. Res. 25
0
0
0
Res. Res. Res. Res. 24
Res. Res. Res. Res. Res. Res. Res. 23
0
0
0
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
Res. Res. Res. Res. 18
UART5SEL[2:0] LPTIM3SEL[2:0] SPI4SEL[2:0]
0
0
0
0
0
0
Reserved
Reserved
0
0
0
0
0
0
0
0
0
0
BOOTROMRST Res. Res. Res. 12
0
VENCRAMRST Res. Res. Res. Res. Res. Res. 11
0
0
0
0
0
CACHEAXIRAMRST Res. Res. 10
LPUART1SEL[2:0] USART3SEL[2:0] LPTIM1SEL[2:0] SPI2SEL[2:0]
0
0
0
0
0
FLEXRAMRST Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
0
0
0
AXISRAM2RST SDMMC2DLLRS Res. 8
0
0
AXISRAM1RST SDMMC1DLLRS Res. Res. Res. Res. Res. 7
0
0
0
Res. Res. Res. Res. 6
USART10SEL[2:0] USART2SEL[2:0] SPI1SEL[2:0]
0
0
0
0
0
0
0
0
0
0
0
AXISRAM6RST Res. Res. Res. Res. Res. Res. 3
0
0
0
0
AXISRAM5RST Res. Res. Res. 2
UART9SEL[2:0] USART1SEL[2:0] SPDIFRX1SEL[2:0]
0
0
0
0
0
0
0
0
0
757/4691
779
0x228
0x224
0x220
0x218
0x214
0x210
0x230
0x22C
0x21C
Offset
758/4691
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_APB2RSTR
RCC_AHB5RSTR
RCC_AHB4RSTR
RCC_AHB3RSTR
RCC_AHB2RSTR
RCC_AHB1RSTR
RCC_APB1LRSTR
RCC_APB1HRSTR
0
0
Res. Res. UART8RST NPURST Res. Res. Res. Res. 31
0
0
Res. Res. UART7RST CACHEAXIRST Res. Res. Res. Res. 30
0
Res. Res. Res. OTG2RST Res. Res. Res. Res. 29
Reset and clock control (RCC)
0
Res. Res. Res. OTGPHY2RST Res. Res. Res. Res. 28
0
Res. Res. Res. OTGPHY1RST Res. Res. Res. Res. 27
0
Res. Res. Res. OTG1RST Res. Res. Res. Res. 26
0
0
Res. Res. I3C2RST ETH1RST Res. Res. Res. Res. 25
0
0
Res. Res. I3C1RST OTG2PHYCTLRST Res. Res. Res. Res. 24
0
0
Res. Res. I2C3RST OTG1PHYCTLRST Res. Res. Res. Res. 23
0
0
SAI2RST Res. I2C2RST Res. Res. Res. Res. Res. 22
0
0
SAI1RST Res. I2C1RST Res. Res. Res. Res. Res. 21
0
0
0
SPI5RST Res. UART5RST GPU2DRST Res. Res. Res. Res. 20
0
0
0
0
TIM9RST Res. UART4RST GFXMMURST CRCRST Res. Res. Res. 19
0
0
0
RM0486 Rev 2
TIM17RST UCPD1RST USART3RST Res. PWRRST Res. Res. Res. 18
0
0
0
0
0
0
0
0
0
0
0
TIM18RST Res. SPI3RST Res. GPIOPRST Res. Res. Res. 15
Reserved
0
0
0
0
0
0
0
0
0
0
0
Res. Res. WWDGRST Res. Res. Res. Res. Res. 11
0
0
Res. Res. LPTIM1RST Res. Res. Res. Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x24C
0x23C
Offset
RM0486
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
RCC_DIVENR
RCC_BUSENR
Register name
RCC_MEMENR
RCC_MISCENR
RCC_AHB2ENR
RCC_AHB1ENR
RCC_APB5RSTR
RCC_APB4LRSTR
RCC_APB4HRSTR
Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
Res. Res. Res. Res. Res. Res. Res. Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. Res. Res. 27
Res. Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. Res. 25
Res. Res. Res. Res. Res. Res. Res. Res. Res. 24
Res. Res. Res. Res. Res. Res. Res. Res. Res. 23
Res. Res. Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. Res. 21
Res. Res. Res. Res. Res. Res. Res. Res. Res. 20
0
Res. Res. Res. Res. Res. IC20EN Res. Res. Res. 19
RM0486 Rev 2
Res. Res. Res. Res. Res. IC19EN Res. Res. Res. 18
0
ADF1EN Res. Res. Res. Res. IC18EN Res. Res. Res. 17
0
0
0
MDF1EN Res. Res. Res. Res. 0 IC17EN Res. Res. RTCRST 16
0
1
1
0
0
0
0
0
1
0
1
Res. Res. AXISRAM2EN Res. Res. IC9EN Res. Res. Res. 8
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
759/4691
779
0x278
0x274
0x270
0x268
0x264
0x260
0x258
0x280
0x27C
0x26C
0x25C
Offset
760/4691
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_APB5ENR
RCC_APB3ENR
RCC_APB2ENR
RCC_AHB5ENR
RCC_AHB4ENR
RCC_AHB3ENR
RCC_APB4LENR
RCC_APB1LENR
RCC_APB4HENR
RCC_APB1HENR
0
0
Res. Res. Res. Res. Res. Res. UART8EN NPUEN Res. Res. 31
0
0
Res. Res. Res. Res. Res. Res. UART7EN CACHEAXIEN Res. Res. 30
0
Res. Res. Res. Res. Res. Res. Res. OTG2EN Res. Res. 29
Reset and clock control (RCC)
0
Res. Res. Res. Res. Res. Res. Res. OTGPHY2EN Res. Res. 28
0
Res. Res. Res. Res. Res. Res. Res. OTGPHY1EN Res. Res. 27
0
Res. Res. Res. Res. Res. Res. Res. OTG1EN Res. Res. 26
0
0
Res. Res. Res. Res. Res. Res. I3C2EN ETH1EN Res. Res. 25
0
0
Res. Res. Res. Res. Res. Res. I3C1EN ETH1RXEN Res. Res. 24
0
0
Res. Res. Res. Res. Res. Res. I2C3EN ETH1TXEN Res. Res. 23
0
0
0
Res. Res. Res. Res. SAI2EN Res. I2C2EN ETH1MACEN Res. Res. 22
0
0
Res. Res. Res. Res. SAI1EN Res. I2C1EN Res. Res. Res. 21
0
0
0
Res. Res. Res. Res. SPI5EN Res. UART5EN GPU2DEN Res. Res. 20
0
0
0
0
Res. Res. Res. Res. TIM9EN Res. UART4EN GFXMMUEN CRCEN Res. 19
0
0
0
1
RM0486 Rev 2
Res. Res. Res. Res. TIM17EN UCPD1EN USART3EN MCE4EN PWREN Res. 18
0
0
0
0
Res. Res. RTCAPBEN Res. TIM16EN Res. USART2EN XSPI3EN Res. Res. 17
0
0
0
0
0
Res. Res. RTCEN Res. TIM15EN Res. 0 SPDIFRX1EN MCE3EN GPIOQEN Res. 16
0
0
0
0
Res. Res. VREFBUFEN Res. TIM18EN Res. SPI3EN MCE2EN GPIOPEN Res. 15
Reserved
0
0
0
1
Res. Res. Res. Res. Res. Res. SPI2EN MCE1EN GPIOOEN RISAFEN 14
0
0
0
0
Res. Res. Res. Res. SPI4EN Res. TIM11EN XSPIMEN GPIONEN Res. 13
0
0
0
0
Res. Res. LPTIM5EN Res. SPI1EN Res. TIM10EN XSPI2EN Res. Res. 12
0
0
Res. Res. LPTIM4EN Res. Res. Res. WWDGEN Res. Res. Res. 11
0
1
Res. Res. LPTIM3EN Res. Res. Res. Res. Res. Res. IACEN 10
0
0
1
Res. Res. LPTIM2EN Res. Res. Res. LPTIM1EN Res. Res. RIFSCEN 9
Table 78. RCC register map and reset values (continued)
0
0
0
0
Res. Res. Res. Res. Res. FDCANEN TIM14EN SDMMC1EN Res. PKAEN 8
0
0
0
0
0
Res. Res. I2C4EN Res. USART10EN Res. TIM13EN SDMMC2EN GPIOHEN Res. 7
0
0
0
0
0
CSIEN Res. Res. Res. UART9EN Res. TIM12EN PSSIEN GPIOGEN Res. 6
0
0
0
0
0
0
0
VENCEN Res. SPI6EN Res. USART6EN MDIOSEN TIM7EN XSPI1EN GPIOFEN Res. 5
0
0
0
0
0
0
GFXTIMEN Res. Res. Res. USART1EN Res. TIM6EN FMCEN GPIOEEN SAESEN 4
0
0
0
0
Res. Res. LPUART1EN Res. Res. Res. TIM5EN JPEGEN GPIODEN Res. 3
0
0
0
0
0
0
0
DCMIPPEN DTSEN HDPEN DFTEN Res. Res. TIM4EN Res. GPIOCEN CRYPEN 2
0
0
0
0
0
1
0
LTDCEN BSECEN Res. Res. TIM8EN Res. TIM3EN DMA2DEN GPIOBEN HASHEN 1
0
0
0
0
0
0
Res. SYSCFGEN Res. Res. TIM1EN Res. TIM2EN HPDMA1EN GPIOAEN RNGEN 0
RM0486
0x298
0x294
0x290
0x288
0x284
0x2A0
0x29C
0x28C
Offset
RM0486
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_BUSLPENR
RCC_MEMLPENR
RCC_MISCLPENR
RCC_AHB5LPENR
RCC_AHB4LPENR
RCC_AHB3LPENR
RCC_AHB2LPENR
RCC_AHB1LPENR
0
NPULPEN Res. Res. Res. Res. Res. Res. Res. 31
0
CACHEAXILPEN Res. Res. Res. Res. Res. Res. Res. 30
0
OTG2LPEN Res. Res. Res. Res. Res. Res. Res. 29
0
OTGPHY2LPEN Res. Res. Res. Res. Res. Res. Res. 28
0
OTGPHY1LPEN Res. Res. Res. Res. Res. Res. Res. 27
0
OTG1LPEN Res. Res. Res. Res. Res. Res. Res. 26
0
ETH1LPEN Res. Res. Res. Res. Res. Res. Res. 25
0
ETH1RXLPEN Res. Res. Res. Res. Res. Res. Res. 24
0
ETH1TXLPEN Res. Res. Res. Res. Res. Res. Res. 23
0
ETH1MACLPEN Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. 21
0
GPU2DLPEN Res. Res. Res. Res. Res. Res. Res. 20
0
0
GFXMMULPEN CRCLPEN Res. Res. Res. Res. Res. Res. 19
0
1
RM0486 Rev 2
MCE4LPEN PWRLPEN Res. Res. Res. Res. Res. Res. 18
0
0
XSPI3LPEN Res. Res. ADF1LPEN Res. Res. Res. Res. 17
0
0
0
MCE3LPEN GPIOQLPEN Res. MDF1LPEN Res. Res. Res. Res. 16
0
0
MCE2LPEN GPIOPLPEN Res. Res. Res. Res. Res. Res. 15
0
0
0
MCE1LPEN GPIOOLPEN RISAFLPEN Res. Res. Res. Res. Res. 14
0
0
XSPIMLPEN GPIONLPEN Res. Res. Res. Res. Res. Res. 13
0
0
0
1
Res. Res. IACLPEN Res. Res. CACHEAXIRAMLPEN Res. Res. 10
0
0
Res. Res. RIFSCLPEN Res. Res. FLEXRAMLPEN Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
SDMMC1LPEN Res. PKALPEN Res. Res. AXISRAM2LPEN Res. Res. 8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
FMCLPEN GPIOELPEN SAESLPEN Res. GPDMA1LPEN AHBSRAM1LPEN Res. Res. 4
0
0
0
0
0
0
0
Res. GPIOCLPEN CRYPLPEN Res. Res. AXISRAM5LPEN Res. Res. 2
0
0
0
0
1
0
0
0
0
0
1
761/4691
779
0x780
0x448
0x2B8
0x2B4
0x2B0
0x2A8
0x2A4
0x77C
0x44C
Offset
0x2BC
0x2AC
0x450-
0x2C0-
762/4691
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
RCC_RDCR
Register name
RCC_SECCFGR0
RCC_APB5LPENR
RCC_APB3LPENR
RCC_APB2LPENR
RCC_APB4LLPENR
RCC_APB1LLPENR
RCC_APB4HLPENR
RCC_APB1HLPENR
Res. Res. Res. Res. Res. Res. Res. Res. 0
0 UART8LPEN 31
Res. Res. Res. Res. Res. Res. Res. Res. UART7LPEN 30
Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
Reset and clock control (RCC)
0
Res. Res. Res. Res. Res. Res. Res. Res. 27
0
Res. Res. Res. Res. Res. Res. Res. Res. 26
0
0
EADLY[3:0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
Res. Res. Res. Res. Res. TIM17LPEN UCPD1LPEN USART3LPEN 18
0
0
0
0
MRD[4:0]
0
0
0
0
0
0
Reserved
Reserved
0
0
0
0
0
Res. Res. Res. Res. LPTIM4LPEN Res. Res. Res. WWDGLPEN 11
0
Res. Res. Res. Res. LPTIM3LPEN Res. Res. Res. Res. 10
0
0
Res. Res. Res. Res. LPTIM2LPEN Res. Res. Res. LPTIM1LPEN 9
Table 78. RCC register map and reset values (continued)
0
0
0
Res. Res. CSILPEN Res. Res. Res. UART9LPEN Res. TIM12LPEN 6
0
0
0
0
0
0
0
HSESEC Res. GFXTIMLPEN Res. Res. Res. USART1LPEN Res. TIM6LPEN 4
0
0
HSISEC Res. Res. Res. LPUART1LPEN Res. Res. Res. TIM5LPEN 3
0
0
0
0
0
0
0
LSESEC Res. LTDCLPEN 1 BSECLPEN Res. Res. TIM8LPEN Res. TIM3LPEN 1
0
0
0
LSISEC Res. Res. SYSCFGLPEN Res. Res. TIM1LPEN Res. TIM2LPEN 0
RM0486
0x798
0x794
0x790
0x788
0x784
0x7A8
0x7A4
0x7A0
0x79C
0x78C
Offset
0x7AC
RM0486
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_PUBCFGR2
RCC_PUBCFGR1
RCC_PUBCFGR0
RCC_SECCFGR2
RCC_SECCFGR1
RCC_PRIVCFGR2
RCC_PRIVCFGR1
RCC_PRIVCFGR0
RCC_LOCKCFGR2
RCC_LOCKCFGR1
RCC_LOCKCFGR0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 27
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 25
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 24
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 23
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 21
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 20
0
0
0
0
IC20PUB IC20LOCK IC20PRIV IC20SEC Res. Res. Res. Res. Res. Res. Res. 19
0
0
0
0
RM0486 Rev 2
IC19PUB IC19LOCK IC19PRIV IC19SEC Res. Res. Res. Res. Res. Res. Res. 18
0
0
0
0
IC18PUB IC18LOCK IC18PRIV IC18SEC Res. Res. Res. Res. Res. Res. Res. 17
0
0
0
0
IC17PUB IC17LOCK IC17PRIV IC17SEC Res. Res. Res. Res. Res. Res. Res. 16
0
0
0
0
IC16PUB IC16LOCK IC16PRIV IC16SEC Res. Res. Res. Res. Res. Res. Res. 15
0
0
0
0
IC15PUB IC15LOCK IC15PRIV IC15SEC Res. Res. Res. Res. Res. Res. Res. 14
0
0
0
0
IC14PUB IC14LOCK IC14PRIV IC14SEC Res. Res. Res. Res. Res. Res. Res. 13
0
0
0
0
IC13PUB IC13LOCK IC13PRIV IC13SEC Res. Res. Res. Res. Res. Res. Res. 12
0
0
0
0
IC12PUB IC12LOCK IC12PRIV IC12SEC Res. Res. Res. Res. Res. Res. Res. 11
0
0
0
0
IC11PUB IC11LOCK IC11PRIV IC11SEC Res. Res. Res. Res. Res. Res. Res. 10
0
0
0
0
IC10PUB IC10LOCK IC10PRIV IC10SEC Res. Res. Res. Res. Res. Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
0
IC9PUB IC9LOCK IC9PRIV IC9SEC Res. Res. Res. Res. Res. Res. Res. 8
0
0
0
0
IC8PUB IC8LOCK IC8PRIV IC8SEC Res. Res. Res. Res. Res. Res. Res. 7
0
0
0
0
IC7PUB IC7LOCK IC7PRIV IC7SEC Res. Res. Res. Res. Res. Res. Res. 6
0
0
0
0
IC6PUB IC6LOCK IC6PRIV IC6SEC Res. Res. Res. Res. Res. Res. Res. 5
0
0
0
0
0
0
0
IC5PUB IC5LOCK IC5PRIV IC5SEC Res. Res. Res. Res. HSEPUB HSELOCK HSEPRIV 4
0
0
0
0
0
0
0
0
0
0
0
IC4PUB IC4LOCK IC4PRIV IC4SEC PLL4PUB PLL4LOCK PLL4PRIV PLL4SEC HSIPUB HSILOCK HSIPRIV 3
0
0
0
0
0
0
0
0
0
0
0
IC3PUB IC3LOCK IC3PRIV IC3SEC PLL3PUB PLL3LOCK PLL3PRIV PLL3SEC MSIPUB MSILOCK MSIPRIV 2
0
0
0
0
0
0
0
0
0
0
0
IC2PUB IC2LOCK IC2PRIV IC2SEC PLL2PUB PLL2LOCK PLL2PRIV PLL2SEC LSEPUB LSELOCK LSEPRIV 1
0
0
0
0
0
0
0
0
0
0
0
IC1PUB IC1LOCK IC1PRIV IC1SEC PLL1PUB PLL1LOCK PLL1PRIV PLL1SEC LSIPUB LSILOCK LSIPRIV 0
Reset and clock control (RCC)
763/4691
779
0x7B8
0x7B4
0x7B0
0x7D0
0x7C8
0x7C4
0x7C0
Offset
0x7FC
0x7BC
0x7CC
0x7D4-
764/4691
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_PUBCFGR5
RCC_PUBCFGR4
RCC_PUBCFGR3
RCC_SECCFGR4
RCC_SECCFGR3
RCC_PRIVCFGR4
RCC_PRIVCFGR3
RCC_LOCKCFGR4
RCC_LOCKCFGR3
Res. Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
Reset and clock control (RCC)
RM0486 Rev 2
Res. Res. Res. Res. Res. Res. Res. Res. Res. 18
Res. Res. Res. Res. Res. Res. Res. Res. Res. 17
Res. Res. Res. Res. Res. Res. Res. Res. Res. 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Res. Res. Res. Res. Res. Res. Res. Res. Res. 14
0
0
0
0
Res. NOCPUB NOCLOCK NOCPRIV NOCSEC Res. Res. Res. Res. 13
0
0
0
Res. APB5PUB APB5LOCK APB5PRIV 0 APB5SEC Res. Res. Res. Res. 12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x804
0xA18
0xA14
0xA10
0xA08
0xA04
Offset
0xA1C
0xA0C
0x80C-
RM0486
Reserved
Reserved
RCC_CSR
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_STOPCSR
RCC_MEMRSTSR
RCC_MISCRSTSR
RCC_AHB4RSTSR
RCC_AHB3RSTSR
RCC_AHB2RSTSR
RCC_AHB1RSTSR
Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. 29
Res. Res. Res. Res. Res. Res. Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. Res. 27
Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. 25
Res. Res. Res. Res. Res. Res. Res. Res. 24
Res. Res. Res. Res. Res. Res. Res. Res. 23
Res. Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. 21
Res. Res. Res. Res. Res. Res. Res. Res. 20
0
CRCRSTS Res. Res. Res. Res. Res. Res. Res. 19
RM0486 Rev 2
PWRRSTS Res. Res. Res. Res. Res. Res. Res. 18
0
Res. Res. ADF1RSTS Res. Res. Res. Res. Res. 17
0
0
GPIOQRSTS Res. MDF1RSTS Res. Res. Res. Res. Res. 16
0
GPIOPRSTS Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Reserved
0
GPIOORSTS Res. Res. Res. Res. Res. Res. Res. 14
0
GPIONRSTS Res. Res. Res. Res. Res. Res. Res. 13
0
0
Res. Res. RAMCFGRSTS Res. BOOTROMRSTS Res. Res. Res. 12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
GPIOGRSTS Res. Res. Res. Res. Res. Res. Res. 6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
765/4691
779
0xA30
0xA40
0xA38
0xA34
0xA28
0xA24
0xA20
Offset
0xA3C
0xA2C
766/4691
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_DIVENSR
RCC_APB5RSTSR
RCC_APB2RSTSR
RCC_AHB5RSTSR
RCC_APB4LRSTSR
RCC_APB1LRSTSR
RCC_APB4HRSTSR
RCC_APB1HRSTSR
0
0
Res. Res. Res. Res. Res. Res. UART8RSTS NPURSTS 31
0
Res. Res. Res. Res. Res. Res. UART7RSTS 0
0 CACHEAXIRSTS 30
Res. Res. Res. Res. Res. Res. Res. OTG2RSTS 29
Reset and clock control (RCC)
0
0
0
0
0
0
Res. Res. Res. Res. SAI2RSTS Res. I2C2RSTS Res. 22
0
0
0
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
IC19ENS Res. Res. Res. TIM17RSTS UCPD1RSTS USART3RSTS Res. 18
0
0
0
0
0
0
0
0
0
0
0
0
Reserved
0
0
0
0
0
0
0
0
0
0
0
IC13ENS Res. Res. LPTIM5RSTS SPI1RSTS Res. TIM10RSTS XSPI2RSTS 12
0
0
0
IC12ENS Res. Res. LPTIM4RSTS Res. Res. WWDGRSTS Res. 11
0
0
IC11ENS Res. Res. LPTIM3RSTS Res. Res. Res. Res. 10
0
0
0
IC10ENS Res. Res. LPTIM2RSTS Res. Res. LPTIM1RSTS Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
0
0
0
0
0
0
0
0
0
0
IC7ENS CSIRSTS Res. Res. UART9RSTS Res. TIM12RSTS PSSIRSTS 6
0
0
0
0
0
0
0
0
0
0
0
0
IC5ENS GFXTIMRSTS Res. Res. USART1RSTS Res. TIM6RSTS FMCRSTS 4
0
0
0
0
0
0
0
IC3ENS DCMIPPRSTS DTSRSTS HDPRSTS Res. Res. TIM4RSTS Res. 2
0
0
0
0
0
IC2ENS LTDCRSTS Res. Res. TIM8RSTS Res. TIM3RSTS DMA2DRSTS 1
0
0
0
0
0
IC1ENS Res. SYSCFGRSTS Res. TIM1RSTS Res. TIM2RSTS HPDMA1RSTS 0
RM0486
0xA60
0xA58
0xA54
0xA50
0xA48
0xA44
Offset
0xA5C
0xA4C
RM0486
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_BUSENSR
RCC_MEMENSR
RCC_MISCENSR
RCC_AHB5ENSR
RCC_AHB4ENSR
RCC_AHB3ENSR
RCC_AHB2ENSR
RCC_AHB1ENSR
0
NPUENS Res. Res. Res. Res. Res. Res. Res. 31
0
CACHEAXIENS Res. Res. Res. Res. Res. Res. Res. 30
0
OTG2ENS Res. Res. Res. Res. Res. Res. Res. 29
0
OTGPHY2ENS Res. Res. Res. Res. Res. Res. Res. 28
0
OTGPHY1ENS Res. Res. Res. Res. Res. Res. Res. 27
0
OTG1ENS Res. Res. Res. Res. Res. Res. Res. 26
0
ETH1ENS Res. Res. Res. Res. Res. Res. Res. 25
0
ETH1RXENS Res. Res. Res. Res. Res. Res. Res. 24
0
ETH1TXENS Res. Res. Res. Res. Res. Res. Res. 23
0
ETH1MACENS Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. 21
0
GPU2DENS Res. Res. Res. Res. Res. Res. Res. 20
0
0
GFXMMUENS CRCENS Res. Res. Res. Res. Res. Res. 19
0
0
RM0486 Rev 2
MCE4ENS PWRENS Res. Res. Res. Res. Res. Res. 18
0
0
XSPI3ENS Res. Res. ADF1ENS Res. Res. Res. Res. 17
0
0
0
MCE3ENS GPIOQENS Res. MDF1ENS Res. Res. Res. Res. 16
0
0
MCE2ENS GPIOPENS Res. Res. Res. Res. Res. Res. 15
0
0
0
MCE1ENS GPIOOENS RISAFENS Res. Res. Res. Res. Res. 14
0
0
XSPIMENS GPIONENS Res. Res. Res. Res. Res. Res. 13
0
0
0
0
Res. Res. IACENS Res. Res. CACHEAXIRAMENS Res. Res. 10
0
0
Res. Res. RIFSCENS Res. Res. FLEXRAMENS Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
SDMMC1ENS Res. PKAENS Res. Res. AXISRAM2ENS Res. Res. 8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
767/4691
779
0xA80
0xA84
0xA78
0xA74
0xA70
0xA68
0xA64
Offset
0xA7C
0xA6C
768/4691
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_APB5ENSR
RCC_APB3ENSR
RCC_APB2ENSR
RCC_APB4LENSR
RCC_APB1LENSR
RCC_BUSLPENSR
RCC_APB4HENSR
RCC_APB1HENSR
0
Res. Res. Res. Res. Res. Res. Res. UART8ENS 31
0
0
0
0
0
RM0486 Rev 2
Res. Res. Res. Res. Res. TIM17ENS UCPD1ENS USART3ENS 18
0
0
0
0
0
0
0
Reserved
0
0
0
0
Res. Res. Res. LPTIM4ENS Res. Res. Res. WWDGENS 11
0
Res. Res. Res. LPTIM3ENS Res. Res. Res. Res. 10
0
0
0
0
Res. CSIENS Res. Res. Res. UART9ENS Res. TIM12ENS 6
0
0
0
0
0
0
Res. GFXTIMENS Res. Res. Res. USART1ENS Res. TIM6ENS 4
0
0
0
0
0
0
0
0
0
0xAA0
0xA9C
0xA8C
RM0486
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_MEMLPENSR
RCC_MISCLPENSR
RCC_AHB5LPENSR
RCC_AHB4LPENSR
RCC_AHB3LPENSR
RCC_AHB2LPENSR
RCC_AHB1LPENSR
0
NPULPENS Res. Res. Res. Res. Res. Res. 31
0
CACHEAXILPENS Res. Res. Res. Res. Res. Res. 30
0
OTG2LPENS Res. Res. Res. Res. Res. Res. 29
0
OTGPHY2LPENS Res. Res. Res. Res. Res. Res. 28
0
OTGPHY1LPENS Res. Res. Res. Res. Res. Res. 27
0
OTG1LPENS Res. Res. Res. Res. Res. Res. 26
0
ETH1LPENS Res. Res. Res. Res. Res. Res. 25
0
ETH1RXLPENS Res. Res. Res. Res. Res. Res. 24
0
ETH1TXLPENS Res. Res. Res. Res. Res. Res. 23
0
ETH1MACLPENS Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. 21
0
GPU2DLPENS Res. Res. Res. Res. Res. Res. 20
0
0
GFXMMULPENS CRCLPENS Res. Res. Res. Res. Res. 19
0
0
RM0486 Rev 2
MCE4LPENS PWRLPENS Res. Res. Res. Res. Res. 18
0
0
XSPI3LPENS Res. Res. ADF1LPENS Res. Res. Res. 17
0
0
0
MCE3LPENS GPIOQLPENS Res. MDF1LPENS Res. Res. Res. 16
0
0
MCE2LPENS GPIOPLPENS Res. Res. Res. Res. Res. 15
0
0
0
MCE1LPENS GPIOOLPENS RISAFLPENS Res. Res. Res. Res. 14
0
0
XSPIMLPENS GPIONLPENS Res. Res. Res. Res. Res. 13
0
0
0
0
Res. Res. IACLPENS Res. Res. CACHEAXIRAMLPENS Res. 10
0
0
Res. Res. RIFSCLPENS Res. Res. FLEXRAMLPENS Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
SDMMC1LPENS Res. PKALPENS Res. Res. AXISRAM2LPENS Res. 8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Res. GPIOCLPENS CRYPLPENS Res. Res. AXISRAM5LPENS Res. 2
0
0
0
0
DMA2DLPENS GPIOBLPENS HASHLPENS Res. Res. AXISRAM4LPENS Res. 1
0
0
0
0
0
769/4691
779
0xF88
0xF84
0xF80
Offset
0xAB8
0xAB4
0xAB0
0xAA8
0xAA4
0xABC
0xAAC
0xAC0-
770/4691
RCC_
RCC_
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
APB4HLPENSR
APB1HLPENSR
RCC_PRIVCFGSR0
RCC_APB5LPENSR
RCC_APB3LPENSR
RCC_APB2LPENSR
RCC_APB4LLPENSR
RCC_APB1LLPENSR
0
Res. Res. Res. Res. Res. Res. Res. UART8LPENS 31
0
Res. Res. Res. Res. Res. Res. Res. UART7LPENS 30
Res. Res. Res. Res. Res. Res. Res. Res. 29
Reset and clock control (RCC)
0
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
Res. Res. Res. Res. Res. TIM17LPENS UCPD1LPENS USART3LPENS 18
0
0
0
Res. Res. Res. RTCAPBLPENS Res. TIM16LPENS Res. USART2LPENS 17
0
0
0
0
0
Reserved
Reserved
0
0
0
0
Res. Res. Res. LPTIM4LPENS Res. Res. Res. WWDGLPENS 11
0
Res. Res. Res. LPTIM3LPENS Res. Res. Res. Res. 10
0
0
Res. Res. Res. LPTIM2LPENS Res. Res. Res. LPTIM1LPENS 9
Table 78. RCC register map and reset values (continued)
0
0
0
Res. CSILPENS Res. Res. Res. UART9LPENS Res. TIM12LPENS 6
0
0
0
0
0
0
0
HSEPRIVS GFXTIMLPENS Res. Res. Res. USART1LPENS Res. TIM6LPENS 4
0
0
HSIPRIVS Res. Res. LPUART1LPENS Res. Res. Res. TIM5LPENS 3
0
0
0
0
0
0
0
0
LSEPRIVS LTDCLPENS BSECLPENS Res. Res. TIM8LPENS Res. TIM3LPENS 1
0
0
0
LSIPRIVS Res. SYSCFGLPENS Res. Res. TIM1LPENS Res. TIM2LPENS 0
RM0486
0xF98
0xF94
0xF90
0xFA8
0xFA4
0xFA0
0xFB8
0xFB4
0xFB0
Offset
0xFC4
0xFC8
0xFC0
0xF9C
0xF8C
0xFAC
0xFBC
RM0486
RCC_
RCC_
RCC_
RCC_
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
PUBCFGSR3
PUBCFGSR2
PRIVCFGSR4
PRIVCFGSR3
Register name
RCC_PUBCFGSR1
RCC_PUBCFGSR0
RCC_PRIVCFGSR2
RCC_PRIVCFGSR1
Res. Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. Res. 29
Res. Res. Res. Res. Res. Res. Res. Res. 28
Res. Res. Res. Res. Res. Res. Res. Res. 27
Res. Res. Res. Res. Res. Res. Res. Res. 26
Res. Res. Res. Res. Res. Res. Res. Res. 25
Res. Res. Res. Res. Res. Res. Res. Res. 24
Res. Res. Res. Res. Res. Res. Res. Res. 23
Res. Res. Res. Res. Res. Res. Res. Res. 22
Res. Res. Res. Res. Res. Res. Res. Res. 21
Res. Res. Res. Res. Res. Res. Res. Res. 20
0
0
Res. Res. Res. IC20PUBS IC20PRIVS Res. Res. Res. 19
0
0
RM0486 Rev 2
Res. Res. Res. IC19PUBS IC19PRIVS Res. Res. Res. 18
0
0
Res. Res. Res. IC18PUBS IC18PRIVS Res. Res. Res. 17
0
0
Res. Res. Res. IC17PUBS IC17PRIVS Res. Res. Res. 16
0
0
Res. Res. Res. IC16PUBS IC16PRIVS Res. Res. Res. 15
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
0
0
Res. Res. Res. IC15PUBS IC15PRIVS Res. Res. Res. 14
0
0
NOCPRIVS Res. Res. IC14PUBS 0 IC14PRIVS Res. Res. Res. 13
0
0
0
APB5PRIVS Res. Res. IC13PUBS IC13PRIVS Res. Res. Res. 12
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
AHB4PRIVS Res. DFTPRIVS IC7PUBS IC7PRIVS Res. Res. Res. 6
0
0
0
0
0
AHB3PRIVS RSTPUBS RSTPRIVS IC6PUBS IC6PRIVS Res. Res. Res. 5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
771/4691
779
Offset
0xFD0
0xFFC
0xFCC
0xFD4-
0x1004
0x1210
0x1208
0x1204
0x1008
0x1000
0x120C
0x100C-
772/4691
RCC_
RCC_
Reserved
Reserved
Reserved
RCC_CCR
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
PUBCFGSR5
PUBCFGSR4
Register name
RCC_STOPCCR
RCC_MEMRSTCR
RCC_MISCRSTCR
RCC_AHB1RSTCR
Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. 29
Reset and clock control (RCC)
RM0486 Rev 2
Res. Res. Res. Res. Res. Res. Res. 18
Res. Res. Res. Res. Res. Res. Res. 17
Res. Res. Res. Res. Res. Res. Res. 16
Res. Res. Res. Res. Res. Res. Res. 15
Reserved
Reserved
Reserved
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x1230
0x1234
0x1228
0x1224
0x1220
0x1218
0x1214
0x122C
0x121C
RM0486
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_APB2RSTCR
RCC_AHB5RSTCR
RCC_AHB4RSTCR
RCC_AHB3RSTCR
RCC_AHB2RSTCR
RCC_APB4LRSTCR
RCC_APB1LRSTCR
RCC_APB1HRSTCR
0
0
Res. Res. Res. UART8RSTC NPURSTC Res. Res. Res. 31
0
0
Res. Res. Res. UART7RSTC CACHEAXIRSTC Res. Res. Res. 30
0
Res. Res. Res. Res. OTG2RSTC Res. Res. Res. 29
0
Res. Res. Res. Res. OTGPHY2RSTC Res. Res. Res. 28
0
Res. Res. Res. Res. OTGPHY1RSTC Res. Res. Res. 27
0
Res. Res. Res. Res. OTG1RSTC Res. Res. Res. 26
0
0
Res. Res. Res. I3C2RSTC ETH1RSTC Res. Res. Res. 25
0
0
Res. Res. Res. I3C1RSTC OTG2PHYCTLRSTC Res. Res. Res. 24
0
0
Res. Res. Res. I2C3RSTC OTG1PHYCTLRSTC Res. Res. Res. 23
0
0
Res. SAI2RSTC Res. I2C2RSTC Res. Res. Res. Res. 22
0
0
Res. SAI1RSTC Res. I2C1RSTC Res. Res. Res. Res. 21
0
0
0
Res. SPI5RSTC Res. UART5RSTC GPU2DRSTC Res. Res. Res. 20
0
0
0
0
Res. TIM9RSTC Res. UART4RSTC GFXMMURSTC CRCRSTC Res. Res. 19
0
0
0
RM0486 Rev 2
Res. TIM17RSTC UCPD1RSTC USART3RSTC Res. PWRRSTC Res. Res. 18
0
0
0
0
0
0
0
0
0
0
0
0
Reserved
0
0
0
0
0
0
0
0
0
0
0
0
LPTIM4RSTC Res. Res. WWDGRSTC Res. Res. Res. Res. 11
0
0
0
LPTIM2RSTC Res. Res. LPTIM1RSTC Res. Res. Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
SPI6RSTC USART6RSTC MDIOSRSTC 0 TIM7RSTC XSPI1RSTC GPIOFRSTC Res. Res. 5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
773/4691
779
Offset
0x1254
0x1250
0x1248
0x1244
0x1240
0x1238
0x124C
0x123C
774/4691
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_DIVENCR
RCC_BUSENCR
RCC_MEMENCR
RCC_MISCENCR
RCC_AHB2ENCR
RCC_AHB1ENCR
RCC_APB5RSTCR
RCC_APB4HRSTCR
RM0486 Rev 2
Res. Res. Res. Res. Res. IC19ENC Res. Res. 18
0
0
ADF1ENC Res. Res. Res. Res. IC18ENC Res. Res. 17
0
0
MDF1ENC Res. Res. Res. Res. IC17ENC Res. Res. 16
0
0
0
RAMCFGENC Res. BOOTROMENC Res. Res. IC13ENC Res. Res. 12
0
0
Res. Res. VENCRAMENC Res. Res. IC12ENC Res. Res. 11
0
0
Res. Res. CACHEAXIRAMENC Res. Res. IC11ENC Res. Res. 10
0
0
Res. Res. FLEXRAMENC Res. Res. IC10ENC Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
Res. Res. AXISRAM2ENC Res. Res. IC9ENC Res. Res. 8
0
0
Res. Res. AXISRAM1ENC Res. Res. IC8ENC Res. Res. 7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x1278
0x1274
0x1270
0x1268
0x1264
0x1260
0x1258
0x126C
0x125C
RM0486
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_APB3ENCR
RCC_APB2ENCR
RCC_AHB5ENCR
RCC_AHB4ENCR
RCC_AHB3ENCR
RCC_APB4LENCR
RCC_APB1LENCR
RCC_APB4HENCR
RCC_APB1HENCR
0
0
Res. Res. Res. Res. Res. UART8ENC NPUENC Res. Res. 31
0
0
Res. Res. Res. Res. Res. UART7ENC CACHEAXIENC Res. Res. 30
0
Res. Res. Res. Res. Res. Res. OTG2ENC Res. Res. 29
0
Res. Res. Res. Res. Res. Res. OTGPHY2ENC Res. Res. 28
0
Res. Res. Res. Res. Res. Res. OTGPHY1ENC Res. Res. 27
0
Res. Res. Res. Res. Res. Res. OTG1ENC Res. Res. 26
0
0
Res. Res. Res. Res. Res. I3C2ENC ETH1ENC Res. Res. 25
0
0
Res. Res. Res. Res. Res. I3C1ENC ETH1RXENC Res. Res. 24
0
0
Res. Res. Res. Res. Res. I2C3ENC ETH1TXENC Res. Res. 23
0
0
0
Res. Res. Res. SAI2ENC Res. I2C2ENC ETH1MACENC Res. Res. 22
0
0
Res. Res. Res. SAI1ENC Res. I2C1ENC Res. Res. Res. 21
0
0
0
Res. Res. Res. SPI5ENC Res. UART5ENC GPU2DENC Res. Res. 20
0
0
0
0
0
0
0
0
RM0486 Rev 2
Res. Res. Res. TIM17ENC UCPD1ENC USART3ENC MCE4ENC PWRENC Res. 18
0
0
0
0
Res. RTCAPBENC Res. TIM16ENC Res. USART2ENC XSPI3ENC Res. Res. 17
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Res. LPTIM5ENC Res. SPI1ENC Res. TIM10ENC XSPI2ENC Res. Res. 12
0
Res. LPTIM4ENC Res. Res. Res. Res. Res. Res. Res. 11
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
775/4691
779
Offset
0x1280
0x1298
0x1294
0x1290
0x1288
0x1284
0x128C
0x127C
776/4691
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_APB5ENCR
RCC_BUSLPENCR
RCC_MEMLPENCR
RCC_MISCLPENCR
RCC_AHB3LPENCR
RCC_AHB2LPENCR
RCC_AHB1LPENCR
Res. Res. Res. Res. Res. Res. Res. 31
Res. Res. Res. Res. Res. Res. Res. 30
Res. Res. Res. Res. Res. Res. Res. 29
Reset and clock control (RCC)
RM0486 Rev 2
Res. Res. Res. Res. Res. Res. Res. 18
0
Res. ADF1LPENC Res. Res. Res. Res. Res. 17
0
Res. MDF1LPENC Res. Res. Res. Res. Res. 16
Res. Res. Res. Res. Res. Res. Res. 15
Reserved
0
RISAFLPENC Res. Res. Res. Res. Res. Res. 14
Res. Res. Res. Res. Res. Res. Res. 13
0
0
Res. RAMCFGLPENC Res. BOOTROMLPENC Res. Res. Res. 12
0
Res. Res. Res. VENCRAMLPENC Res. Res. Res. 11
0
IACLPENC Res. Res. CACHEAXIRAMLPENC Res. Res. Res. 10
0
RIFSCLPENC Res. Res. FLEXRAMLPENC Res. Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
PKALPENC Res. Res. AXISRAM2LPENC Res. Res. Res. 8
0
Res. Res. Res. AXISRAM1LPENC Res. Res. Res. 7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x12B8
0x12B4
0x12B0
0x12A8
0x12A4
0x12A0
0x129C
0x12AC
RM0486
RCC_
RCC_
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
APB4HLPENCR
APB1HLPENCR
RCC_APB3LPENCR
RCC_APB2LPENCR
RCC_AHB5LPENCR
RCC_AHB4LPENCR
RCC_APB4LLPENCR
RCC_APB1LLPENCR
0
0
Res. Res. Res. Res. Res. UART8LPENC NPULPENC Res. 31
0
0
Res. Res. Res. Res. Res. UART7LPENC CACHEAXILPENC Res. 30
0
Res. Res. Res. Res. Res. Res. OTG2LPENC Res. 29
0
Res. Res. Res. Res. Res. Res. OTGPHY2LPENC Res. 28
0
Res. Res. Res. Res. Res. Res. OTGPHY1LPENC Res. 27
0
Res. Res. Res. Res. Res. Res. OTG1LPENC Res. 26
0
0
Res. Res. Res. Res. Res. I3C2LPENC ETH1LPENC Res. 25
0
Res. Res. Res. Res. Res. I3C1LPENC 0 ETH1RXLPENC Res. 24
0
0
Res. Res. Res. Res. Res. I2C3LPENC ETH1TXLPENC Res. 23
0
0
0
0
0
Res. Res. Res. SAI1LPENC Res. I2C1LPENC Res. Res. 21
0
0
0
0
0
0
0
0
0
0
0
RM0486 Rev 2
Res. Res. Res. TIM17LPENC UCPD1LPENC USART3LPENC MCE4LPENC PWRLPENC 18
0
0
0
0
Res. RTCAPBLPENC Res. TIM16LPENC Res. USART2LPENC XSPI3LPENC Res. 17
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Res. LPTIM5LPENC Res. SPI1LPENC Res. TIM10LPENC XSPI2LPENC Res. 12
0
0
Res. LPTIM4LPENC Res. Res. Res. WWDGLPENC Res. Res. 11
0
Res. LPTIM3LPENC Res. Res. Res. Res. Res. Res. 10
0
0
Res. LPTIM2LPENC Res. Res. Res. LPTIM1LPENC Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
DTSLPENC HDPLPENC DFTLPENC Res. Res. TIM4LPENC Res. GPIOCLPENC 2
0
0
0
0
0
BSECLPENC Res. Res. TIM8LPENC Res. TIM3LPENC DMA2DLPENC GPIOBLPENC 1
0
0
0
0
0
SYSCFGLPENC Res. Res. TIM1LPENC Res. TIM2LPENC HPDMA1LPENC GPIOALPENC 0
Reset and clock control (RCC)
777/4691
779
Offset
0x1798
0x1790
0x1788
0x1794
0x1784
0x1780
0x17B8
0x17B0
0x17A8
0x17A0
0x17B4
0x17A4
0x179C
0x178C
0x17AC
0x12BC
0x12C0-
778/4691
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Register name
RCC_PUBCFGCR2
RCC_PUBCFGCR1
RCC_PUBCFGCR0
RCC_PRIVCFGCR3
RCC_PRIVCFGCR2
RCC_PRIVCFGCR1
RCC_PRIVCFGCR0
RCC_APB5LPENCR
0
0
Res. IC20PUBC IC20PRIVC Res. Res. Res. Res. Res. 19
0
0
RM0486 Rev 2
Res. IC19PUBC IC19PRIVC Res. Res. Res. Res. Res. 18
0
0
Res. IC18PUBC IC18PRIVC Res. Res. Res. Res. Res. 17
0
0
Res. IC17PUBC IC17PRIVC Res. Res. Res. Res. Res. 16
0
0
Res. IC16PUBC IC16PRIVC Res. Res. Res. Res. Res. 15
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
0
0
Res. IC15PUBC IC15PRIVC Res. Res. Res. Res. Res. 14
0
0
Res. IC14PUBC IC14PRIVC Res. Res. Res. Res. Res. 13
0
0
Res. IC13PUBC IC13PRIVC Res. Res. Res. Res. Res. 12
0
0
Res. IC12PUBC IC12PRIVC Res. Res. Res. Res. Res. 11
0
0
Res. IC11PUBC IC11PRIVC Res. Res. Res. Res. Res. 10
0
0
Res. IC10PUBC IC10PRIVC Res. Res. Res. Res. Res. 9
Table 78. RCC register map and reset values (continued)
0
0
Res. IC9PUBC IC9PRIVC Res. Res. Res. Res. Res. 8
0
0
Res. IC8PUBC IC8PRIVC Res. Res. Res. Res. Res. 7
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0x17D0
0x17C4
0x17C8
0x17C0
0x17BC
0x17CC
RM0486
Reserved
Reserved
Reset value
Reset value
Reset value
Reset value
Register name
RCC_PUBCFGCR5
RCC_PUBCFGCR4
RCC_PUBCFGCR3
RCC_PRIVCFGCR4
Res. Res. Res. Res. 31
Res. Res. Res. Res. 30
Res. Res. Res. Res. 29
Res. Res. Res. Res. 28
Res. Res. Res. Res. 27
Res. Res. Res. Res. 26
Res. Res. Res. Res. 25
Res. Res. Res. Res. 24
Res. Res. Res. Res. 23
Res. Res. Res. Res. 22
Res. Res. Res. Res. 21
Res. Res. Res. Res. 20
Res. Res. Res. Res. 19
RM0486 Rev 2
Res. Res. Res. Res. 18
Res. Res. Res. Res. 17
Res. Res. Res. Res. 16
Res. Res. Res. Res. 15
Reserved
Reserved
0
0
0
0
0
0
0
0
0
0
0
0
779/4691
779
General-purpose I/Os (GPIO) RM0486
15.1 Introduction
Each general-purpose I/O port has four 32-bit configuration registers (GPIOx_MODER,
GPIOx_OTYPER, GPIOx_OSPEEDR, and GPIOx_PUPDR), two 32-bit data registers
(GPIOx_IDR and GPIOx_ODR), a 16-bit reset register (GPIOx_BRR), and a 32-bit set/reset
register (GPIOx_BSRR).
In addition, all GPIOs have a 32-bit locking register (GPIOx_LCKR), two couples of 32-bit
advanced configuration registers (GPIOx_DELAYRL/H, GPIOx_ADVCFGRL/H), and two
32-bit alternate function selection registers (GPIOx_AFRH and GPIOx_AFRL).
Access to each general-purpose I/O configuration bit can be restricted to secure-only and/or
privileged-only.
on/off
Input data
V
VDDIOx DDIOx
register
Read
pull-up
Trigger on/off Protection diode
I/O pin
Bit set/reset
registers
pull-down
Write VDDIOx Output driver
Output data
Output P-MOS
control VSS
VSS
Read/write N-MOS
VSS Push-pull
From on-chip Alternate function output open-drain
peripheral or disabled
MSv71156V1
0 0 PP
0 1 GP output PP + PU
0
1 0 PP + PD
1 1 Reserved (GP output PP)
01 SPEED[1:0]
0 0 OD
GP output
0 1 OD + PU
1 (open drain)
1 0 OD + PD
1 1 Reserved (GP output OD)
0 0 PP
0 1 AF PP + PU
0
1 0 PP + PD
1 1 Reserved (AF PP)
10 SPEED[1:0]
0 0 OD
0 1 AF (open drain) OD + PU
1
1 0 OD + PD
1 1 Reserved (AF OD)
x x x 0 0 Floating
x x x 0 1 Input PU
00
x x x 1 0 PD
x x x 1 1 Reserved (input floating)
x x x 0 0 Analog
x x x 0 1 Analog
11 Input/output
x x x 1 0 Analog + PD
x x x 1 1 Analog
1. GP = general-purpose, PP = push-pull, PU = pull-up, PD = pull-down, OD = open-drain, AF = alternate function.
on/off
Input data
V
VDDIOx DDIOx
register
Read
pull-up
I/O pin
registers
pull-down
Write
Output data
VSS
Output driver VSS
Read/write
MSv71157V1
Input driver
on
Input data
V
VDDIOx DDIOx
register
Read
pull-up
Trigger on/off Protection diode
I/O pin
Bit set/reset
pull-down
registers
Output P-MOS
control VSS
VSS
N-MOS
Read/write
VSS Push-pull or
open-drain
MSv71158V1
15.3.11 AF configuration
When the I/O port is programmed as AF:
• the output buffer can be configured in open-drain or push-pull mode
• the output buffer is driven by the signals coming from the peripheral (transmitter enable
and data)
• the Schmitt trigger input is activated
• the weak pull-up and pull-down resistors are activated or not, depending on the value
in GPIOx_PUPDR
• data present on the I/O pin are sampled into the input data register every AHB clock
cycle
• aread access to the input data register gets the I/O state.
Input data
V
VDDIOx DDIOx
register
Read
pull-up
Trigger on/off Protection diode
I/O pin
Bit set/reset
registers
pull-down
Write VDDIOx Output driver
Output data
on/off Protection diode
register
Output P-MOS
control VSS
VSS
Read/write N-MOS
VDDIOx
register
Read
I/O pin
registers
pull-down
Write
Output driver
Output data
on/off
register
Protection diode
VSS
VSS
Read/write
Analog
From on-chip peripheral
MSv71160V1
information leak through nonsecure I/Os. TrustZone-aware logic around GPIO ports is
summarized in Table 80.
• Peripherals (like ADC) with embedded analog functions that directly select/enable its
allocated I/O ports using analog switches
If the I/O is secure, this analog switch cannot be controlled by a nonsecure peripheral.
If the peripheral is configured as nonsecure and the I/O is secure, the switch remains
open. This prevents the redirection of secure data to a nonsecure peripheral or I/O
through analog path. Refer to Section 3: System security for the list of peripherals
using this security.
• The list of I/Os without a hardware protection linked to TrustZone is given in Section 3:
System security. More specifically, the listed signals (input and/or outputs) are not
blocked when the I/O is set as secure, and the associated peripheral is non secure. For
each of these listed I/Os, a secure application must decide if a potential effect on data
integrity or confidentiality is critical or not.
Refer to the pins definitions table in the datasheet for more information about AFs and
additional functions mapping.
Secure -
Secure I/O data Peripheral data
Nonsecure Out of reset configuration
Secure Zero Zero
Nonsecure -
Nonsecure I/O data Peripheral data
Table 81 gives a summary of the I/O port y secured bits, following the setting of SECy
in GPIOx_SECCFGR. The following is valid for each register in the table:
• When a bit is secured, read/write operations are only allowed by a secure access.
Non-secure read or write accesses on secured bits are RAZ/WI, with no illegal access
event generated.
• When a bit is nonsecure, there is no TrustZone restriction. Read/write operations are
allowed by both secure and nonsecure accesses.
MODEy[1:0] GPIOx_MODER
OTy GPIOx_OTYPER
OSPEEDy[1:0] GPIOx_OSPEEDR
PUPDy[1:0] GPIOx_PUPDR RAZ/WI
IDy GPIOx_IDR
ODy GPIOx_ODR
BSy and BRy GPIOx_BSRR
BRy GPIOx_BRR
LCKy GPIOx_LCKR
GPIOx_AFRH
AFSELy[3:0]
GPIOx_AFRL
RAZ/WI
GPIOx_DELAYRL
DELAYy[3:0]
GPIOx_DELAYRH
Note: GPIOx_SECCFGR is readable by any application. Each bit in this register is write-locked
until the next device reset, when setting the corresponding bit in GPIOx_RCFGLOCKR.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
MODE15[1:0] MODE14[1:0] MODE13[1:0] MODE12[1:0] MODE11[1:0] MODE10[1:0] MODE9[1:0] MODE8[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MODE7[1:0] MODE6[1:0] MODE5[1:0] MODE4[1:0] MODE3[1:0] MODE2[1:0] MODE1[1:0] MODE0[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OT15 OT14 OT13 OT12 OT11 OT10 OT9 OT8 OT7 OT6 OT5 OT4 OT3 OT2 OT1 OT0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
OSPEED15[1:0] OSPEED14[1:0] OSPEED13[1:0] OSPEED12[1:0] OSPEED11[1:0] OSPEED10[1:0] OSPEED9[1:0] OSPEED8[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OSPEED7[1:0] OSPEED6[1:0] OSPEED5[1:0] OSPEED4[1:0] OSPEED3[1:0] OSPEED2[1:0] OSPEED1[1:0] OSPEED0[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PUPD15[1:0] PUPD14[1:0] PUPD13[1:0] PUPD12[1:0] PUPD11[1:0] PUPD10[1:0] PUPD9[1:0] PUPD8[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PUPD7[1:0] PUPD6[1:0] PUPD5[1:0] PUPD4[1:0] PUPD3[1:0] PUPD2[1:0] PUPD1[1:0] PUPD0[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
ID15 ID14 ID13 ID12 ID11 ID10 ID9 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OD15 OD14 OD13 OD12 OD11 OD10 OD9 OD8 OD7 OD6 OD5 OD4 OD3 OD2 OD1 OD0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
BR15 BR14 BR13 BR12 BR11 BR10 BR9 BR8 BR7 BR6 BR5 BR4 BR3 BR2 BR1 BR0
w w w w w w w w w w w w w w w w
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BS15 BS14 BS13 BS12 BS11 BS10 BS9 BS8 BS7 BS6 BS5 BS4 BS3 BS2 BS1 BS0
w w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. LCKK
rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LCK15 LCK14 LCK13 LCK12 LCK11 LCK10 LCK9 LCK8 LCK7 LCK6 LCK5 LCK4 LCK3 LCK2 LCK1 LCK0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
AFSEL7[3:0] AFSEL6[3:0] AFSEL5[3:0] AFSEL4[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
AFSEL3[3:0] AFSEL2[3:0] AFSEL1[3:0] AFSEL0[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
AFSEL15[3:0] AFSEL14[3:0] AFSEL13[3:0] AFSEL12[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
AFSEL11[3:0] AFSEL10[3:0] AFSEL9[3:0] AFSEL8[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BR15 BR14 BR13 BR12 BR11 BR10 BR9 BR8 BR7 BR6 BR5 BR4 BR3 BR2 BR1 BR0
w w w w w w w w w w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SEC15 SEC14 SEC13 SEC12 SEC11 SEC10 SEC9 SEC8 SEC7 SEC6 SEC5 SEC4 SEC3 SEC2 SEC1 SEC0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PRIV15 PRIV14 PRIV13 PRIV12 PRIV11 PRIV10 PRIV9 PRIV8 PRIV7 PRIV6 PRIV5 PRIV4 PRIV3 PRIV2 PRIV1 PRIV0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RLOCK15
RLOCK14
RLOCK13
RLOCK12
RLOCK10
RLOCK11
RLOCK9
RLOCK8
RLOCK7
RLOCK6
RLOCK5
RLOCK4
RLOCK3
RLOCK2
RLOCK1
RLOCK0
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DLY7[3:0] DLY6[3:0] DLY5[3:0] DLY4[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DLY3[3:0] DLY2[3:0] DLY1[3:0] DLY0[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DLY15[3:0] DLY14[3:0] DLY13[3:0] DLY12[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DLY11[3:0] DLY10[3:0] DLY9[3:0] DLY8[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
INV DLY INV DLY INV DLY INV DLY
RET7 DE7 RET6 DE6 RET5 DE5 RET4 DE4
CLK7 PATH7 CLK6 PATH6 CLK5 PATH5 CLK4 PATH4
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INV DLY INV DLY INV DLY INV DLY
RET3 DE3 RET2 DE2 RET1 DE1 RET0 DE0
CLK3 PATH3 CLK2 PATH2 CLK1 PATH1 CLK0 PATH0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DLY DLY DLY DLY
INV INV INV INV
RET15 DE15 PATH RET14 DE14 PATH RET13 DE13 PATH RET12 DE12 PATH
CLK15 CLK14 CLK13 CLK12
15 14 13 12
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DLY DLY DLY DLY
INV INV INV INV
RET11 DE11 PATH RET10 DE10 PATH RET9 DE9 PATH RET8 DE8 PATH
CLK11 CLK10 CLK9 CLK8
11 10 9 8
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Bits 29, 25, 21, 17, DEy: Input/Output data double edge selection (cfg_double_edge) (y = 15 to 8)
13, 9, 5, 1 0: Input and output data is single-edge (changing on rising or falling clock edge, but not both)
1: Input and output data is double-edge (changing on both rising and falling clock edges)
Bits 28, 24, 20, 16, DLYPATHy: Clock inversion selection (y = 15 to 8)
12, 8, 4, 0 Controls which path contains the configurable delay, input or output
0: Delay is switched into the output path, while the input path is set as pass through.
1: Delay is switched into the input path, while the output path is set as pass through.
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
MODE15
MODE14
MODE13
MODE12
MODE10
MODE11
MODE9
MODE8
MODE7
MODE6
MODE5
MODE4
MODE3
MODE2
MODE1
MODE0
GPIOx_MODER
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
(x = A to H, N to Q)
0x000
Reset value port A 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Reset value port B 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1
Reset value others 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
GPIOx_OTYPER
OT15
OT14
OT13
OT12
OT10
OT11
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
OT9
OT8
OT7
OT6
OT5
OT4
OT3
OT2
OT1
OT0
0x004 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
OSPEED15
OSPEED14
OSPEED13
OSPEED12
OSPEED10
OSPEED11
OSPEED9
OSPEED8
OSPEED7
OSPEED6
OSPEED5
OSPEED4
OSPEED3
OSPEED2
OSPEED0
OSPEED
GPIOx_OSPEEDR
1[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
(x = A to H, N to Q)
0x008
Reset value port A 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset value port B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
Reset value others 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PUPD15
PUPD14
PUPD13
PUPD12
PUPD10
PUPD11
PUPD9
PUPD8
PUPD7
PUPD6
PUPD5
PUPD4
PUPD3
PUPD2
PUPD1
PUPD0
GPIOx_PUPDR
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
[1:0]
(x = A to H, N to Q)
0x00C
Reset value port A 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Reset value port B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
Reset value others 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GPIOx_IDR
ID15
ID14
ID13
ID12
ID10
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
ID11
ID9
ID8
ID7
ID6
ID5
ID4
ID3
ID2
ID1
ID0
0x010 (x = A to H, N to Q)
Reset value X X X X X X X X X X X X X X X X
GPIOx_ODR
OD15
OD14
OD13
OD12
OD10
OD11
OD9
OD8
OD7
OD6
OD5
OD4
OD3
OD2
OD1
OD0
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x014 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GPIOx_BSRR
BR15
BR14
BR13
BR12
BR10
BS15
BS14
BS13
BS12
BS10
BR11
BS11
BR9
BR8
BR7
BR6
BR5
BR4
BR3
BR2
BR1
BR0
BS9
BS8
BS7
BS6
BS5
BS4
BS3
BS2
BS1
BS0
0x018 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LCK15
LCK14
LCK13
LCK12
LCK10
LCK11
GPIOx_LCKR
LCKK
LCK9
LCK8
LCK7
LCK6
LCK5
LCK4
LCK3
LCK2
LCK1
LCK0
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x01C (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GPIOx_AFRL
AFRL7[3:0] AFRL6[3:0] AFRL5[3:0] AFRL4[3:0] AFRL3[3:0] AFRL2[3:0] AFRL1[3:0] AFRL0[3:0]
0x020 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GPIOx_AFRH
AFRH15[3:0] AFRH14[3:0] AFRH13[3:0] AFRH12[3:0] AFRH11[3:0] AFRH10[3:0] AFRH9[3:0] AFRH8[3:0]
0x024 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GPIOx_BRR
BR15
BR14
BR13
BR12
BR10
BR11
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
BR9
BR8
BR7
BR6
BR5
BR4
BR3
BR2
BR1
BR0
0x028 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x02C Reserved Reserved
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
SEC15
SEC14
SEC13
SEC12
SEC10
SEC11
SEC9
SEC8
SEC7
SEC6
SEC5
SEC4
SEC3
SEC2
SEC1
SEC0
GPIOx_SECCFGR
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
(x = A to H, N to Q)
PRIV15
PRIV14
PRIV13
PRIV12
PRIV10
PRIV11
PRIV9
PRIV8
PRIV7
PRIV6
PRIV5
PRIV4
PRIV3
PRIV2
PRIV1
PRIV0
GPIOx_PRIVCFGR
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
(x = A to H, N to Q)
RLOCK10
RLOCK11
RLOCK9
RLOCK8
RLOCK7
RLOCK6
RLOCK5
RLOCK4
RLOCK3
RLOCK2
RLOCK1
RLOCK0
GPIOx_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
RCFGLOCKR
0x038 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x03C Reserved Reserved
GPIOx_DELAYRL
DLY7[3:0] DLY6[3:0] DLY5[3:0] DLY4[3:0] DLY3[3:0] DLY2[3:0] DLY1[3:0] DLY0[3:0]
0x040 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
GPIOx_DELAYRH
DLY15 [3:0] DLY14 [3:0] DLY13 [3:0] DLY12 [3:0] DLY11 [3:0] DLY10 [3:0] DLY9[3:0] DLY8[3:0]
0x044 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DLYPATH7
DLYPATH6
DLYPATH5
DLYPATH4
DLYPATH3
DLYPATH2
DLYPATH1
DLYPATH0
INVCLK7
INVCLK6
INVCLK5
INVCLK4
INVCLK3
INVCLK2
INVCLK1
INVCLK0
GPIOx_ADVCFGRL
RET7
RET6
RET5
RET4
RET3
RET2
RET1
RET0
DE7
DE6
DE5
DE4
DE3
DE2
DE1
DE0
0x048 (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
DLYPATH15
DLYPATH14
DLYPATH13
DLYPATH12
DLYPATH10
DLYPATH11
DLYPATH9
DLYPATH8
INVCLK15
INVCLK14
INVCLK13
INVCLK12
INVCLK10
INVCLK11
INVCLK9
INVCLK8
RET15
RET14
RET13
RET12
RET10
RET11
GPIOx_ADVCFGRH
RET9
RET8
DE15
DE14
DE13
DE12
DE10
DE11
DE9
DE8
0x04C (x = A to H, N to Q)
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4 4+4 4+4
RESTRIM
EN
READY
I/O
4+4
4+4
Compensation Level
4+4
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BOOT1 BOOT0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
_PD _PD
rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
LOCKS
LOCKD LOCKS LOCKN LOCKS LOCKN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. VTAIR
CAIC AU SMPU MPU SVTOR
CR
rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. FPU_IT_EN[5:0]
rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DTCM ITCMW
LOCKD LOCKI LOCKT
Res. Res. Res. Res. Res. Res. Res. WSDIS SDISA Res. Res. Res. Res.
TGU TGU CM
ABLE BLE
rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. CFGDTCMSZ[3:0] CFGITCMSZ[3:0]
rwo rwo rwo rwo rwo rwo rwo rwo
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BC2_C BC1_C RME_C BC2_T BC1_T RME_T
Res. Res. RM_CACHE[3:0] RM_TCM[3:0]
ACHE ACHE ACHE CM CM CM
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Bit 13 BC2_CACHE: Biasing level adjust input recommended for Vnom + 10%
Its setting gives a higher value of rise on VSS-core voltage to give enough head room for
retention.
Bit 12 BC1_CACHE: Biasing level adjust input recommended for Vnom.
Its setting gives a smaller value of rise on VSS-core voltage to give enough head room for
retention.
Bits 11:8 RM_CACHE[3:0]: External read/write (RW) margin inputs for caches memories
Bit 7 RME_CACHE: RW margin enable input for caches memories
0: Default RW margin settings
1: Use external pin RW margin setting
Bit 6 BC2_TCM: Biasing level adjust input recommended for Vnom + 10%
Its setting gives a higher value of rise on VSS-core voltage to give enough head room for
retention.
Bit 5 BC1_TCM: Biasing level adjust input recommended for Vnom
Its setting gives a smaller value of rise on VSS-core voltage to give enough head room for
retention.
Bits 4:1 RM_TCM[3:0]: External RW margin inputs for TCM memories
Bit 0 RME_TCM: RW margin enable input for TCM memories
0: Default RW margin settings
1: Use external pin RW margin setting
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SVTOR_ADDR[24:9]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SVTOR_ADDR[8:0] Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
NSVTOR_ADDR[24:9]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NSVTOR_ADDR[8:0] Res. Res. Res. Res. Res. Res. Res.
rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LOCKU LOCKU CORE_
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. P_NMI P_RST RESET
_EN _EN _TYPE
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PAHB_
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. ERRO
R_ACK
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VENCR
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
AM_EN
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
POTTA
MPER
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
SETMA
SK
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. CPUSS_AWQOS[3:0] CPUSS_ARQOS[3:0]
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
NPU2_AWQOS[3:0] NPU2_ARQOS[3:0] NPU1_AWQOS[3:0] NPU1_ARQOS[3:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SDMM SDMM
USB2_ USB1_
C2_EA C1_EA
EARLY EARLY
RLY_W RLY_W
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. _WR_R _WR_R
R_RSP R_RSP
SP_EN SP_EN
_ENAB _ENAB
ABLE ABLE
LE LE
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CPU_N CPU_N NPU_N
OC_C IC_CG OC_C
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
G_DIS _DISA G_DIS
ABLE BLE ABLE
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. CS EN RAPSRC[3:0] RANSRC[3:0]
rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. READY APSRC[3:0] ANSRC[3:0]
r r r r r r r r r
Bit 8 READY: Provides the compensation cell status of I/Os supplied by VDDIOx
0: VDDIOx I/O compensation cell not ready
1: VDDIOx I/O compensation cell ready
Bits 7:4 APSRC[3:0]: This value is provided by the cell, and can be used by the CPU to compute
an I/O compensation cell code for PMOS transistors.
This code is applied to the I/O compensation cell when the CS = 0
in SYSCFG_VDDIOxCCCR, and READY = 1 in this register.
Bits 3:0 ANSRC[3:0]: This value is provided by the cell, and can be used by the CPU to compute
an I/O compensation cell code for NMOS transistors.
This code is applied to the I/O compensation cell when the CS = 0
in SYSCFG_VDDIOxCCCR, and READY = 1 in this register.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. CS EN RAPSRC[3:0] RANSRC[3:0]
rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. READY APSRC[3:0] ANSRC[3:0]
r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CM55T CM55C BKPRA
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. PVDEN Res. CM55L
CML ACHEL ML
rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DMACID_SEC[2:0]
rw rw rw
Bits 2:0 DMACID_SEC[2:0]: Secure user accesses to the DMA present this programmed CID.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CFG_R CFG_R
SDFBC
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. ETIME ETIME
LK_180
_TX _RX
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
INTER
LEAVIN
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
G_ACT
IVE
rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. BOOT1 BOOT0
r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
PAHB_ERROR_ADDR[31:16]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PAHB_ERROR_ADDR[15:0]
r r r r r r r r r r r r r r r r
Bits 31:0 PAHB_ERROR_ADDR[31:0]: Reports address of the first error in P-AHB write-posting buffer
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. SMPSHDPSEL[3:0]
rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. DMACID_SECPRIV[2:0]
rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
REV_ID[15:0]
r r r r r r r r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. DEV_ID[11:0]
r r r r r r r r r r r r
10
11
Offset Register name
9
8
7
6
5
4
3
2
1
0
BOOT1
BOOT0
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
SYSCFG_BOOTCR
0x000
Reset value 0 0
LOCKSVTAIRCR
LOCKNSVTOR
LOCKNSMPU
LOCKDCAIC
LOCKSMPU
LOCKSAU
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
SYSCFG_CM55CR FPU_IT_EN[5:0]
0x004
Reset value 0 0 0 0 0 0 0 0 0 0 0 0
DTCMWSDISABLE
ITCMWSDISABLE
CFGDTCMSZ
CFGITCMSZ
LOCKDTGU
LOCKITGU
LOCKTCM
SYSCFG_
[3:0]
[3:0]
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x008 CM55TCMCR
Reset value 0 0 0 0 0 1 0 0 0 0 1 1 1
RME_CACHE
BC2_CACHE
BC1_CACHE
RM_CACHE
RME_TCM
BC2_TCM
BC1_TCM
RM_TCM
SYSCFG_
[3:0]
[3:0]
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x00C CM55RWMCR
Reset value 0 1 0 0 0 0 0 0 1 0 0 0 0 0
SYSCFG_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
_INITSVTORCR
SVTOR_ADDR[24:0]
0x010
Reset value 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x01C
Offset
RM0486
Reserved
SYSCFG_
SYSCFG_
SYSCFG_
SYSCFG_
SYSCFG_
SYSCFG_
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
CM55RSTCR
VENCRAMCR
NPUNICQOSCR
CM55PAHBWPR
_INITNSVTORCR
POTTAMPRSTCR
Register name
[3:0]
21
AWQOS
CPUSS_
Res. Res. Res. Res.
20
Res. Res. Res. Res.
19
RM0486 Rev 2
Res. Res. Res. Res.
18
Res. Res. Res. Res.
[3:0]
17
ARQOS
CPUSS_
Res. Res. Res. Res.
16
NSVTOR_ADDR[24:0]
Reserved
Res. Res. Res. Res.
14
Res. Res. Res. Res.
[3:0]
13
NPU2_
AWQOS
Res. Res. Res. Res.
12
Res. Res. Res. Res.
11
Res. Res. Res. Res.
10
Res. Res. Res. Res.
[3:0]
9
NPU2_
ARQOS
Res. Res. Res. Res.
Table 83. SYSCFG register map and reset values (continued)
8
Res. Res. Res. Res.
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7
Res. Res. Res. Res. Res.
6
Res. Res. Res. Res. Res.
[3:0]
5
NPU1_
AWQOS
Res. Res. Res. Res. Res.
4
Res. Res. Res. Res. Res.
3
Res. Res. Res. LOCKUP_NMI_EN Res.
2
Res. Res. Res. LOCKUP_RST_EN Res.
[3:0]
1
NPU1_
ARQOS
POTTAMPERSETMASK VENCRAM_EN PAHB_ERROR_ACK CORE_RESET_TYPE Res.
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
0
0
0 0 0
System configuration controller (SYSCFG)
823/4691
0
825
0x070
0x068
0x064
0x040
0x038
0x034
0x06C
0x03C-
0x048 +
0x044 +
Offset
(x=2 to 5)
(x=2 to 5)
0x8*(x-2),
0x8*(x-2),
824/4691
Reserved
SYSCFG_
SYSCFG_
SYSCFG_
SYSCFG_
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
ICNEWRCR
SEC_AIDCR
VDDIOxCCSR
VDDIOxCCCR
SYSCFG_CBR
Register name
SYSCFG_ICNCGCR
SYSCFG_VDDCCSR
SYSCFG_VDDCCCR
Res. Res. Res. Res. Res. Res. Res. Res.
31
Res. Res. Res. Res. Res. Res. Res. Res.
30
Res. Res. Res. Res. Res. Res. Res. Res.
29
Res. Res. Res. Res. Res. Res. Res. Res.
28
Res. Res. Res. Res. Res. Res. Res. Res.
27
Res. Res. Res. Res. Res. Res. Res. Res.
26
Res. Res. Res. Res. Res. Res. Res. Res.
25
Res. Res. Res. Res. Res. Res. Res. Res.
System configuration controller (SYSCFG)
24
Res. Res. Res. Res. Res. Res. Res. Res.
23
Res. Res. Res. Res. Res. Res. Res. Res.
22
Res. Res. Res. Res. Res. Res. Res. Res.
21
Res. Res. Res. Res. Res. Res. Res. Res.
20
Res. Res. Res. Res. Res. Res. Res. Res.
19
RM0486 Rev 2
Res. Res. Res. Res. Res. Res. Res. Res.
18
Res. Res. Res. Res. Res. Res. Res. Res.
17
Res. Res. Res. Res. Res. Res. Res. Res.
16
Res. Res. Res. Res. Res. Res. Res. Res.
15
Reserved
Res. Res. Res. Res. Res. Res. Res. Res.
14
Res. Res. Res. Res. Res. Res. Res. Res.
13
Res. Res. Res. Res. Res. Res. Res. Res.
12
Res. Res. Res. Res. Res. Res. Res. Res.
11
Res. Res. Res. Res. Res. Res. Res. Res.
10
Res. Res. Res. CS Res. CS Res. Res.
9
Res. Res. READY EN READY EN Res. Res.
Table 83. SYSCFG register map and reset values (continued)
8
Res. Res. Res. Res.
7
Res. CM55TCML Res. Res.
6
Res. CM55CACHEL Res. Res.
0 0
[3:0]
[3:0]
[3:0]
[3:0]
APSRC
APSRC
RAPSRC
RAPSRC
0 0
DMACID_SEC 2
Res. CPU_NIC_CG_DISABLE SDMMC2_EARLY_WR_RSP_ENABLE
[3:0]
[3:0]
[3:0]
[3:0]
[2:0] 1
ANSRC
ANSRC
RANSRC
RANSRC
0 0 1
0
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
0 0 0
0 0 0 0
RM0486
0
0x800
0x400
0x104
0x100
0x078
0x074
0x7FC
0x3FC
0x0FC
0x080-
0x804 -
0x404 -
0x108 -
0xHFF0
Offset
0xHFEC
RM0486
Reserved
Reserved
Reserved
Reserved
SYSCFG_
SYSCFG_
SYSCFG_
SYSCFG_
SYSCFG_
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
NPU_ICNCR
SMPSHDPCR
FMC_RETIMECR
SECPRIV_AIDCR
Register name
SYSCFG_BOOTSR
SYSCFG_DEVICEID
AHBWP_ERROR_SR
Res. Res. Res. Res. Res.
31
Res. Res. Res. Res. Res.
30
Res. Res. Res. Res. Res.
29
Res. Res. Res. Res. Res.
28
Res. Res. Res. Res. Res.
27
Res. Res. Res. Res. Res.
26
Res. Res. Res. Res. Res.
25
Res. Res. Res. Res. Res.
24
Res. Res. Res. Res. Res.
23
Res. Res. Res. Res. Res.
22
REV_ID[15:0]
Res. Res. Res. Res. Res.
21
Res. Res. Res. Res. Res.
20
Res. Res. Res. Res. Res.
19
RM0486 Rev 2
Res. Res. Res. Res. Res.
18
Res. Res. Res. Res. Res.
17
Res. Res. Res. Res. Res.
X X X X X X X X X X X X X X X X
16
Res. Res. Res. Res. Res. Res.
15
Reserved
Reserved
Reserved
Reserved
8
Res. Res. Res. Res. Res.
7
Res. Res. Res. Res. Res.
6
Res. Res. Res. Res. Res.
5
Res. Res. Res. Res. Res.
4
Res. Res. Res. Res.
DEV_ID[11:0]
3
SMPSHDPSEL Res. Res. SDFBCLK_180
DMACID_SECPRIV 2
[3:0] BOOT1 Res. CFG_RETIME_TX
[2:0] 1
BOOT0 INTERLEAVING_ACTIVE CFG_RETIME_RX
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1
0 0 0 0
0 0
0
0 0 0
X X X X X X X X X X X
System configuration controller (SYSCFG)
825/4691
0
825
Peripherals interconnect matrix RM0486
17.1 Introduction
Several peripherals have direct connections between them. This allows autonomous
communication and or synchronization between peripherals, saving CPU resources, thus
power supply consumption. In addition, these hardware connections remove software
latency, and improve the predictability of the system design.
Depending on peripherals, these interconnections can operate in various power modes:
Run, Standby, Sleep, and Stop modes.
AXISRAM1/2
AHBx/APBx
BKPSRAM
VENCRAM
FLEXRAM
BootROM
XSPI1/2/3
GFXMMU
DTCM
ITCM
FMC
STM
Resource
0 jpeg_rx_dma
1 jpeg_tx_dma
2 xspi1_dma
3 xspi2_dma
4 xspi3_dma
5 fmc2_txrx_dma
6 fmc2_bch_dma
7 adc1_dma
8 adc2_dma
9 cryp_in_dma
10 cryp_out_dma
11 saes_out_dma
12 saes_in_dma
13 hash_in_dma
14 tim1_cc1_dma
15 tim1_cc2_dma
16 tim1_cc3_dma
17 tim1_cc4_dma
18 tim1_upd_dma
19 tim1_trg_dma
20 tim1_com_dma
21 tim2_cc1_dma
22 tim2_cc2_dma
23 tim2_cc3_dma
24 tim2_cc4_dma
25 tim2_upd_dma
26 tim2_trg_dma
27 tim3_cc1_dma
28 tim3_cc2_dma
29 tim3_cc3_dma
30 tim3_cc4_dma
31 tim3_upd_dma
32 tim3_trg_dma
33 tim4_cc1_dma
34 tim4_cc2_dma
35 tim4_cc3_dma
36 tim4_cc4_dma
37 tim4_upd_dma
38 tim4_trg_dma
39 tim5_cc1_dma
40 tim5_cc2_dma
41 tim5_cc3_dma
42 tim5_cc4_dma
43 tim5_upd_dma
44 tim5_trg_dma
45 tim6_upd_dma
46 tim7_upd_dma
47 tim8_cc1_dma
48 tim8_cc2_dma
49 tim8_cc3_dma
50 tim8_cc4_dma
51 tim8_upd_dma
52 tim8_trg_dma
53 tim8_com_dma
54 -
55 -
56 tim15_cc1_dma
57 tim15_cc2_dma
58 tim15_upd_dma
59 tim15_trg_dma
60 tim15_com_dma
61 tim16_cc1_dma
62 tim16_upd_dma
63 tim16_com_dma
64 tim17_cc1_dma
65 tim17_upd_dma
66 tim17_com_dma
67 tim18_cc1_dma
68 tim18_upd_dma
69 tim18_com_dma
70 lptim1_ic1_dma
71 lptim1_ic2_dma
72 lptim1_ue_dma
73 lptim2_ic1_dma
74 lptim2_ic2_dma
75 lptim2_ue_dma
76 lptim3_ic1_dma
77 lptim3_ic2_dma
78 lptim3_ue_dma
79 spi1_rx_dma
80 spi1_tx_dma
81 spi2_rx_dma
82 spi2_tx_dma
83 spi3_rx_dma
84 spi3_tx_dma
85 spi4_rx_dma
86 spi4_tx_dma
87 spi5_rx_dma
88 spi5_tx_dma
89 spi6_rx_dma
90 spi6_tx_dma
91 sai1_a_dma
92 sai1_b_dma
93 sai2_a_dma
94 sai2_b_dma
95 i2c1_rx_dma
96 i2c1_tx_dma
97 i2c2_rx_dma
98 i2c2_tx_dma
99 i2c3_rx_dma
100 i2c3_tx_dma
101 i2c4_rx_dma
102 i2c4_tx_dma
103 i3c1_rx_dma
104 i3c1_tx_dma
105 i3c2_rx_dma
106 i3c2_tx_dma
107 usart1_rx_dma
108 usart1_tx_dma
109 usart2_rx_dma
110 usart2_tx_dma
111 usart3_rx_dma
112 usart3_tx_dma
113 uart4_rx_dma
114 uart4_tx_dma
115 uart5_rx_dma
116 uart5_tx_dma
117 usart6_rx_dma
118 usart6_tx_dma
119 uart7_rx_dma
120 uart7_tx_dma
121 uart8_rx_dma
122 uart8_tx_dma
123 uart9_rx_dma
124 uart9_tx_dma
125 usart10_rx_dma
126 usart10_tx_dma
127 lpuart1_rx_dma
128 lpuart1_tx_dma
129 spdifrx_cs_dma
130 spdifrx_dt_dma
131 adf1_flt0_dma
132 mdf1_flt0_dma
133 mdf1_flt1_dma
134 mdf1_flt2_dma
135 mdf1_flt3_dma
136 mdf1_flt4_dma
137 mdf1_flt5_dma
138 ucpd_tx_dma
139 ucpd_rx_dma
140 cci_dma
141 i3c1_tc_dma
142 i3c1_rs_dma
143 i3c2_tc_dma
144 i3c2_rs_dma
lptim1/2/3_ue
x = 0, x = 1, and x = 15
i3c1_rx_dma
i3c2_rx_dma
jpeg_tx_dma
0 dcmipp_p1_frameend_evt
1 dcmipp_p1_lineend_evt
2 dcmipp_p1_hsync_evt
3 dcmipp_p1_vsync_evt
4 dcmipp_p1_frameend_evt
5 dcmipp_p1_lineend_evt
6 dcmipp_p1_hsync_evt
7 dcmipp_p1_vsync_evt
8 dcmipp_p2_frameend_evt
9 dcmipp_p2_lineend_evt
10 dcmipp_p2_hsync_evt
11 dcmipp_p2_vsync_evt
12 dma2d_ctc_flag
13 dma2d_tc_flag
14 dma2d_tw_flag
15 jpeg_eoc_flag
16 jpeg_ifnf_flag
17 jpeg_ift_flag
18 jpeg_ofne_flag
19 jpeg_oft_flag
20 lcd_li_flag
21 gpu2d1_gp_flag[0]
22 gpu2d1_gp_flag[1]
23 gpu2d1_gp_flag[2]
24 gpu2d1_gp_flag[3]
25 gfxtim1_0_gfxtim_evt[3]
26 gfxtim1_0_gfxtim_evt[2]
27 gfxtim1_0_gfxtim_evt[1]
28 gfxtim1_0_gfxtim_evt[0]
29 -
30 lptim1_ch1
31 lptim1_ch2
32 lptim2_ch1
33 lptim2_ch2
34 lptim3_ch1
35 lptim3_ch2
36 lptim4_out
37 lptim5_out
38 -
39 rtc_wkup
40 lpuart1_it_r_wup_async
41 lpuart1_it_t_wup_async
42 spi6_it_or_spi6_ait_sync
43 -
44 tim1_trgo_cktim
45 tim1_trgo2_cktim
46 tim2_trgo_cktim
47 tim3_trgo_cktim
48 tim4_trgo_cktim
49 tim5_trgo_cktim
50 tim6_trgo_cktim
51 tim7_trgo_cktim
52 tim8_trgo_cktim
53 tim8_trgo2_cktim
54 -
55 -
56 -
57 tim12_trgo_cktim
58 tim15_trgo_cktim
59 -
60 hpdma1_ch0_tc
61 hpdma1_ch1_tc
62 hpdma1_ch2_tc
63 hpdma1_ch3_tc
64 hpdma1_ch4_tc
65 hpdma1_ch5_tc
66 hpdma1_ch6_tc
67 hpdma1_ch7_tc
68 hpdma1_ch8_tc
69 hpdma1_ch9_tc
70 hpdma1_ch10_tc
71 hpdma1_ch11_tc
72 hpdma1_ch12_tc
73 hpdma1_ch13_tc
74 hpdma1_ch14_tc
75 hpdma1_ch15_tc
76 gpdma1_ch0_tc
77 gpdma1_ch1_tc
78 gpdma1_ch2_tc
79 gpdma1_ch3_tc
80 gpdma1_ch4_tc
81 gpdma1_ch5_tc
82 gpdma1_ch6_tc
83 gpdma1_ch7_tc
84 gpdma1_ch8_tc
85 gpdma1_ch9_tc
86 gpdma1_ch10_tc
87 gpdma1_ch11_tc
88 gpdma1_ch12_tc
89 gpdma1_ch13_tc
90 gpdma1_ch14_tc
91 gpdma1_ch15_tc
92 -
93 extit0_sync
94 extit1_sync
95 extit2_sync
96 extit3_sync
97 extit4_sync
98 extit5_sync
99 extit6_sync
100 extit7_sync
101 extit8_sync
102 extit9_sync
103 extit10_sync
104 extit11_sync
105 extit12_sync
106 extit13_sync
107 extit14_sync
108 extit15_sync
HPDMA
DMA channel
DMA
Interrupt generation interrupt
clock
DMA channel registers
DMA channel
Events generation
Stop DMA transfer complete
channel in Channel x (1) (hpdma_chx_tc)
DMA global Channel state
debug mode ...
registers management DMA channel state
Channel 1 Security and privilege (vs privilege, security
management and compartment)
Channel 0
DMA illegal event
Compartment isolation
(vs privilege, security
management
and compartment)
AHB slave interface
Clock management DMA clock request
(1) Refer to the device implementation table for the number of channels.
32-bit AHB bus MSv66925V2
The figure below illustrates this HPDMA direct programming without any linked-list
(HPDMA_CxLLR = 0).
Valid user
setting ? N
Y
Setting USEF = 1
Disabling DMA channel
Executing the data transfer
from the register file
No transfer
N
error ?
Y Setting DTEF = 1
Disabling DMA channel
Setting TCF = 1
Disabling DMA channel
End
MSv62626V1
N
SUSPF=1 ?
MSv62627V1
Note: A suspend and resume sequence does not impact the HPDMA_CxCR.EN bit. Suspending a
channel (transfer) does not suspend a started trigger detection.
5. In order to restart the aborted then reprogrammed channel, the software enables it
again by writing 1 to the HPDMA_CxCR.EN bit.
N
SUSPF=1 ?
Y
Channel state = Suspended
Receiving (and Idle)
suspended
interrupt
MSv62628V1
Figure 75. Static linked-list data structure (all Uxx = 1) of a linear addressing channel x
DMA register file Memory from link base address
DMA_CxLBAR
Channel x linked-list register file
(LLI0) LLI1
DMA_CxTR1 All Uxx=1 DMA_CxTR1
DMA_CxTR2 DMA_CxTR2
DMA_CxBR1 DMA_CxBR1
DMA_CxSAR DMA_CxSAR
DMA_CxDAR DMA_CxDAR
DMA_CxLLR DMA_CxLLR
All Uxx=1
MSv62629V1
Figure 76. Static linked-list data structure (all Uxx = 1) of a 2D addressing channel x
DMA register file Memory from link base address
DMA_CxLBAR
Channel x linked-list register file
(LLI0) LLI1
DMA_CxTR1 DMA_CxTR1
All Uxx=1
DMA_CxTR2 DMA_CxTR2
DMA_CxBR1 DMA_CxBR1
DMA_CxSAR DMA_CxSAR
DMA_CxDAR DMA_CxDAR
DMA_CxTR3 DMA_CxTR3
DMA_CxBR2 DMA_CxBR2
DMA_CxLLR DMA_CxLLR
All Uxx=1
MSv63645V1
Figure 77. HPDMA dynamic linked-list data structure of linear addressing channel x
LLIn
All Uxx = 1
DMA_CxTR1
DMA_CxTR2
UT1 = UB1 = USA = 0 LLIn+1
DMA_CxBR1 UT2 = UDA = ULL = 1
DMA_CxTR2
DMA_CxSAR
DMA_CxDAR
DMA_CxDAR
DMA_CxLLR
DMA_CxLLR
MSv62630V1
The user must program HPDMA_CxLLR for each LLIn to be 32-bit aligned, and not to
exceed the 64-Kbyte addressable space pointed by HPDMA_CxLBAR.
Y
Setting USEF = 1
N Disabling DMA channel
BNDT0 ?
No transfer
N
error ?
Y
Setting DTEF = 1
Disabling DMA channel
N LLR 0 ?
No transfer
N
error ?
Y Setting ULEF = 1
Disabling DMA channel
Valid user
N
setting ?
Y
Setting USEF = 1
Setting TCF = 1 Disabling DMA channel
Disabling DMA channel
End
MSv62631V1
Loading LLIn-1
(with DMA_CxTR2: TRIGM[1:0] = 10
TRIGPOL[1:0] = 01
TRIGSEL= dma_chy_tc
and TCEM[1:0] = 01)
Loading LLIn+1
MSv62632V2
– HPDMA_CxTR2 defines the input control (request, trigger), and the output control
(transfer-complete event) of the transfer.
– HPDMA_CxSAR and HPDMA_CxDAR define the source/destination transfer
start address.
– HPDMA_CxTR3 (for channel x = 12 to 15) defines the source/destination
additional address offset between burst transfers.
– HPDMA_CxBR2 (for channel x = 12 to 15) defines the source/destination
additional address offset between blocks at a 2D/repeated block level.
– HPDMA_CxLLR defines the data structure, and the address offset of the next
LLIn+1 in the memory.
• The current LLIn transfer is completed after the single execution of the current LLIn:
– after the (conditional) data transfer completion (when
HPDMA_CxBR1.BRC[10:0] = 0 if BRC[10:0] is present, and
HPDMA_CxBR1.BNDT[15:0] = 0)
– after the (conditional) update of the HPDMA link register file from the data
structure of the next LLIn+1 in memory
Note: If an LLI is recursive (pointing to itself as a next LLI, either HPDMA_CxLLR.ULL = 1 and
HPDMA_CxLLR.LA[15:2] is updated by the same value, or HPDMA_CxLLR.ULL = 0),
a channel in link step mode is completed after each repeated single execution of this LLI.
In the regular data transfer completion at a block level, HPDMA_CxBR1.BNDT[15:0] = 0
and HPDMA_CxBR1.BRC[10:0] = 0 (if present). Alternatively, a block transfer can be early
completed by a peripheral (such as an I3C in Rx mode), and then BNDT[15:0] is not null
(see Section 18.4.14 for more details).
The link step mode can be used to elaborate dynamically LLIs in memory during run-time.
The software can be facilitated by using a static data structure for any LLIn (all update bits of
HPDMA_CxLLR have a static value, [Link] = [Link] + constant).
Figure 81 depicts the HPDMA channel execution mode, and its programming in link step
mode.
Note: Figure 81 is not intended to illustrate how often a TCEF can be raised, depending on the
programmed value of TCEM[1:0] in HPDMA_CxTR2. It can be raised at (each) block
completion, at (each) 2D block completion, at (each) LLI completion, or only at the last LLI
data transfer completion. In link step mode, the channel is disabled after each single
execution of a LLI, and depending on the value of TCEM[1:0] a TCEF is raised or not.
In Figure 81, BNDT ≠ 0 is the typical condition for starting the first data transfer.
This condition becomes BNDT ≠ 0 and PFREQ = 1 if the peripheral requests a data transfer
with early termination (see Section 18.3.6).
Y
Setting USEF = 1
N Disabling DMA channel
BNDT 0 ?
No transfer
N
error ?
Y
Setting DTEF = 1
Disabling DMA channel
N LLR 0 ?
No transfer
N
error ?
Y Setting ULEF = 1
Disabling DMA channel
Valid user
N
setting ?
Y
Setting USEF = 1
Setting TCF = 1 Disabling DMA channel
Disabling DMA channel
End
MSv62633V1
Figure 82. Building LLIn+1: HPDMA dynamic linked-lists in link step mode
LLIn-2
transfer
LLIn
transfer
MSv62634V1
Run-time replacing an LLIn with a new LLIn’ in link step mode (in linked-list
register file)
In this link step mode, during run-time, the software can build and insert a new LLIn’, after
the HPDMA executed the transfer from the LLIn-1, and loaded a formerly elaborated LLIn
from the memory by overwriting directly the linked-list register file with the new LLIn’, as
shown in Figure 83.
Figure 83. Replace with a new LLIn’ in register file in link step mode
Loading LLIn
Loading LLIn+1’
LLIn+1"
transfer
Run-time replacing an LLIn with a new LLIn’ in link step mode (in the memory)
The software can build and insert a new LLIn’ and LLIn+1’ in the memory, after HPDMA
executed the transfer from the LLIn-1, and loaded a formerly elaborated LLIn from the
memory, by overwriting partly the linked-list register file (HPDMA_CxBR1.BNDT[15:0] to be
null, and HPDMA_CxLLR to point to new LLIn) as shown in Figure 84.
Figure 84. Replace with a new LLIn’ and LLIn+1’ in memory in link step mode (option 1)
Loading LLIn
Write DMA_CxBR1.BNDT = 0
Write DMA_CxLLR to point to new LLIn'
Loading LLIn’
Loading LLIn+1'
Figure 85. Replace with a new LLIn’ and LLIn+1’ in memory in link step mode (option 2)
Loading LLIn’
Loading LLIn+1'
Transfer complete interrupt MSv62637V1
Setting USEF = 1
BNDT 0 ? N Disabling DMA channel
No transfer
N
error ?
Y
Setting DTEF = 1
N LLR 0 ? Disabling DMA channel
No transfer
N
error ?
Y Setting ULEF = 1
Disabling DMA channel
Valid user
N
setting ?
Y Setting USEF = 1
Disabling DMA channel
N LSM = 1 ?
Y
Setting TCF = 1
Disabling DMA channel
End
MSv62638V1
HPDMA burst
A programmed transfer at the lowest level is an HPDMA burst.
An HPDMA burst is a burst of data received from the source, or a burst of data sent to the
destination. A source (and destination) burst is programmed with a burst length
by SBL_1[5:0] (respectively DBL_1[5:0]), and with a data width defined by SDW_LOG2[1:0]
(respectively DDW_LOG2[1:0]) in HPDMA_CxTR1.
The addressing mode after each data (named beat) of an HPDMA burst is defined by SINC
and DINC in HPDMA_CxTR1, for source and destination respectively: either a fixed
addressing or an incremented addressing with contiguous data.
The start and next addresses of an HPDMA source/destination burst (defined by
HPDMA_CxSAR and HPDMA_CxDAR) must be aligned with the respective data width.
The table below lists the main characteristics of an HPDMA burst.
00 1 1
0: AXI
01 2 2
1: AHB 0 (fixed) +0 +0
10 4 4
0: AXI 11 8 8
00 1 +1 + (n + 1) 1
n = 0 to 63(1)(2) n+1
+2*
0: AXI 01 2 +2 2
1 (n + 1)
1: AHB
(contiguously +4*
10 4 incremented) +4 4
(n + 1)
+8*
0: AXI 11 8 +8 8
(n + 1)
0: AHB 11 forbidden user setting, causing USEF generation and none burst to be issued.
1. When S/DBL_1[5:0] = 0, burst is of length 1. Then burst can be also named as single.
2. As highlighted in Section 18.3.2, the maximum allowed AXI burst length is 16. The user must set SBL_1[5:0] lower or equal
to 15 if the source allocated port is AXI (if SAP = 0). The user must set DBL_1[5:0] lower or equal to 15 if the destination
allocated port is AXI (if DAP = 0).
The next burst address in the above table is the next source/destination default address
pointed by HPDMA_CxSAR or HPDMA_CxDAR, once the programmed source/destination
burst is completed. This default value refers to the fixed/contiguously incremented address.
32b
Cx_DAR Data0
Data1
... Burst0
DataI-1
+ DAO
Data0
Data1
... Burst1
DataI-1
+ DAO Block0
+ DAO
Data0
Data1
... BurstJ-1
DataI-1
Memory-mapped + DAO
Peripheral
+ BRDAO
32b
Cx_SAR Data Register Burst0
...
+ DAO
... BurstJ-1
+ DAO
+ BRDAO
Data0
Data1
... Burst0
DataI-1
+ DAO
Data0
Data1
... Burst1
DataI-1
+ DAO BlockK-1
+ DAO
Data0
Data1
... BurstJ-1
Programmable address jumps 1) after burst and 2) after DataI-1
+ DAO
block.
Example:
burst: I * words (DBL_1=I-1; DDW_LOG2=’b10) + BRDAO
block: J * bursts (BNDT=J*I*4)
LLI: K * blocks (BRC=K-1)
MSv63674V1
HPDMA burst versus source block size, 1- or 4-Kbyte address boundary and
FIFO size
The programmed source/destination HPDMA burst is implemented with an AHB/AXI burst
as is, unless one of the following conditions is met:
• When half of the FIFO size of the channel x is lower than the programmed
source/destination burst size, the programmed source/destination HPDMA burst is
implemented with a series of singles or bursts of a lower size, each transfer being of a
size that is lower or equal than half of the FIFO size, without any user constraint.
• if the source block size (HPDMA_CxBR1.BNDT[15:0]) is not a multiple of the source
burst size but is a multiple of the data width of the source burst
(HPDMA_CxTR1.SDW_LOG2[1:0]), the HPDMA modifies and shortens bursts into
singles or bursts of lower length, in order to transfer exactly the source block size,
without any user constraint.
• if the source/destination burst transfer have crossed the 1- or 4-Kbyte address
boundary on, respectively, an AHB or AXI transfer, the HPDMA modifies and shortens
the programmed burst into singles or bursts of lower length, to be compliant with the
AHB/AXI protocol, without any user constraint.
• If the source/destination burst length exceeds 16 on a AHB transfer, or if the
source/destination burst on an AXI transfer is both with fixed addressing and with a
burst length which exceeds 16, the HPDMA modifies and shortens the programmed
burst into singles or bursts of lower length, to be compliant with the AHB/AXI protocol,
without any user constraint.
In any case, the HPDMA keeps ensuring source/destination data (and address) integrity
without any user constraint. The current FIFO level (software readable in HPDMA_CxSR)
is compared to and updated with the effective transfer size, and the HPDMA re-arbitrates
between each AHB/AXI single or burst transfer, possibly modified.
Based on the channel priority, each single or burst of a lower burst size versus the
programmed burst, is internally arbitrated versus the other requested and active channels.
Note: In linked-list mode, the HPDMA read transfers related to the update of the linked-list
parameters from the memory to the internal HPDMA registers, are scheduled over the link
allocated port, as programmed by HPDMA_CxCR.LAP.
DWX
DBX
DHX
data
SBX
B7,B6,B5,B4,B3,B2,B1,
00 Byte xx x
B0
0 0B3,0B2,0B1,0B0
00 (RA, 0P)(3)(4)
1 B30,B20,B10,B00
x
Half- 0 SB3,SB2,SB1,SB0
01 01 (RA, SE)(3)(4)
word 1 B3S,B2S,B1S,B0S
0 B7B6,B5B4,B3B2,B1B0
1x (PACK)
1 B6B7,B4B5,B2B3,B0B1
0 000B1,000B0
0
1 00B10,00B00
B7,B6,B5,B4,B3 00 (RA, 0P)(3)(4)
00 Byte x x
,B2,B1,B0 0 0B100,0B000
1
1 B1000,B0000
0 SSSB1,SSSB0
0
1 SSB1S,SSB0S
10 Word 01 (RA, SE)(3)(4)
0 SB1SS,SB0SS
1
1 B1SSS,B0SSS
0 B7B6B5B4,B3B2B1B0
0
1 B6B7B4B5,B2B3B0B1
1x (PACK)
0 B5B4B7B6,B1B0B3B2
1
1 B4B5B6B7,B0B1B2B3
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
0 0000000B0
0
1 000000B00
0
0 00000B000
1
1 0000B0000
00 (RA, 0P)(3)(4)
0 000B00000
0
1 00B000000
1
0 0B0000000
1
1 B00000000
0 SSSSSSSB0
0
1 SSSSSSB0S
0
0 SSSSSB0SS
1
B7,B6,B5,B4,B3 Double- 1 SSSSB0SSS
00 Byte x 11(5) 01 (RA, SE)(3)(4)
,B2,B1,B0 word 0 SSSB0SSSS
0
1 SSB0SSSSS
1
0 SB0SSSSSS
1
1 B0SSSSSSS
0 B7B6B5B4B3B2B1B0
0
1 B6B7B4B5B2B3B0B1
0
0 B5B4B7B6B1B0B3B2
1
1 B4B5B6B7B0B1B2B3
1x (PACK)
0 B3B2B1B0B7B6B5B4
0
1 B2B3B0B1B6B7B4B5
1
0 B1B0B3B2B5B4B7B6
1
1 B0B1B2B3B4B5B6B7
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
Half- 0 B7B6,B5B4,B3B2,B1B0
01 xx
word 1 B6B7,B4B5,B2B3,B0B1
0 00B3B2,00B1B0
0
1 B3B200,B1B000
00 (RA, 0P)(3)(4)
0 B2B300,B0B100
Half- B7B6,B5B4, 1
01 x x
word B3B2,B1B0 1 00B2B3,00B0B1
0 SSB3B2,SSB1B0
0
1 B3B2SS,B1B0SS
10 Word 01 (RA, SE)(3)(4)
0 B2B3SS,B0B1SS
1
1 SSB2B3,SSB0B1
0 B7B6B5B4,B3B2B1B0
0
1 B6B7B4B5,B2B3B0B1
1x (PACK)
0 B5B4B7B6,B1B0B3B2
1
1 B4B5B6B7,B0B1B2B3
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
0 000000B1B0
0
1 000000B0B1
0
0 0000B1B000
1
1 0000B1B000
00 (RA, 0P)(3)(4)
0 00B1B00000
0
1 00B0B10000
1
0 B1B0000000
1
1 B0B1000000
- SSSSSSB1B0
0
1 SSSSSSB0B1
0
0 SSSSB1B0SS
1
Half- B7B6,B5B4, Double- 1 SSSSB1B0SS
01 x 11(5) 01 (RA, SE)(3)(4)
word B3B2,B1B0 word 0 SSB1B0SSSS
0
1 SSB0B1SSSS
1
0 B1B0SSSSSS
1
1 B0B1SSSSSS
0 B7B6B5B4B3B2B1B0
0
1 B6B7B4B5B2B3B0B1
0
0 B5B4B7B6B1B0B3B2
1
1 B4B5B6B7B0B1B2B3
1x (PACK)
0 B3B2B1B0B7B6B5B4
0
1 B2B3B0B1B6B7B4B5
1
0 B1B0B3B2B5B4B7B6
1
1 B0B1B2B3B4B5B6B7
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
Half- 0 B7B6,B3B2
B7B6B5B4, 01 01 (LA, RT)(3)
10 Word 0 word x
B3B2B1B0 1 B6B7,B2B3
0 B7B6,B5B4,B3B2,B1B0
1x (UNPACK)
1 B6B7,B4B5,B2B3,B0B1
0 B7B6B5B4,B3B2B1B0
0
1 B6B7B4B5,B2B3B0B1
10 Word xx
0 B5B4B7B6,B1B0B3B2
1
1 B4B5B6B7,B0B1B2B3
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
0 B7B6B5B4B3B2B1B0
0
1 B6B7B4B5B2B3B0B1
0
0 B5B4B7B6B1B0B3B2
1
1 B4B5B6B7B0B1B2B3
1x (PACK)
0 B3B2B1B0B7B6B5B4
0
1 B2B3B0B1B6B7B4B5
1
0 B1B0B3B2B5B4B7B6
1
1 B0B1B2B3B4B5B6B7
0 0000B3B2B1B0
0
1 0000B2B3B0B1
0
0 0000B1B0B3B2
1
B7B6B5B4, Double- 1 0000B0B1B2B3
10 Word 0 11(5) 00 (RA, 0P)(3)(4)
B3B2B1B0 word 0 B3B2B1B00000
0
1 B1B0B3B20000
1
0 B3B2B1B00000
1
1 B0B1B2B30000
0 SSSSB3B2B1B0
0
1 SSSSB2B3B0B1
0
0 SSSSB1B0B3B2
1
1 SSSSB0B1B2B3
01 (RA, SE)(3)(4)
0 B3B2B1B0SSSS
0
1 B1B0B3B2SSSS
1
0 B3B2B1B0SSSS
1
1 B0B1B2B3SSSS
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
Half- 0 B7B5,B3B1
B7B6B5B4, 01 01 (LA, RT)(3)
10 Word 1 word x
B3B2B1B0 1 B5B7,B1B3
0 B7B5,B6B4,B3B1,B2B0
1x (UNPACK)
1 B5B7,B4B6,B1B3,B0B2
0 B7B5B6B4,B3B1B2B0
0
1 B5B7B4B6,B1B3B0B2
10 Word xx
0 B6B4B7B5,B2B0B3B1
1
1 B4B6B5B7,B0B2B1B3
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
0 0000B3B1B2B0
0
1 0000B1B3B0B2
0
0 0000B2B0B3B1
1
1 0000B0B2B1B3
00 (RA, 0P)(3)(4)
0 B3B1B2B00000
0
1 B1B3B0B20000
1
0 B2B0B3B10000
1
1 B0B2B1B30000
0 SSSSB3B1B2B0
0
1 SSSSB1B3B0B2
0
0 SSSSB2B0B3B1
1
B7B6B5B4, Double- 1 SSSSB0B2B1B3
10 Word 1 11(5) 01 (RA, SE)(3)(4)
B3B2B1B0 word 0 B3B1B2B0SSSS
0
1 B1B3B0B2SSSS
1
0 B2B0B3B1SSSS
1
1 B0B2B1B3SSSS
0 B7B5B6B4B3B1B2B0
0
1 B5B7B4B6B1B3B0B2
0
0 B6B4B7B5B2B0B3B1
1
1 B4B6B5B7B0B2B1B3
1x (PACK)
0 B3B1B2B0B7B5B6B4
0
1 B1B3B0B2B5B7B4B6
1
0 B2B0B3B1B6B4B7B5
1
1 B0B2B1B3B4B6B5B7
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
Half- 0 B15B14,B7B6
01 01 (LA, RT)(3)
word 1 B14B15,B6B7
0 B7B6,B5B4,B3B2,B1B0
1x (UNPACK)
1 B6B7,B4B5,B2B3,B0B1
B11B10B9B8,
0
B3B2B1B0
0
B10B11B8B9,
1
B2B3B0B1
Double B7B6B5B4B3B2 00 (RA, LT)(3)
11(6) 0 x B9B8B11B10,
-word B1B0 0
B1B0B3B2
1
B8B9B10B11,
1
B0B1B2B3
B15B14B13B12,
0
B7B6B5B4
0
10 Word B14B15B12B13,
1
B6B7B4B5
01 (LA, RT)(3)
B13B12B15B14,
0
B5B4B7B6
1
B12B13B14B15,
1
B4B5B6B7
0 B7B6B5B4,B3B2B1B0
0
1 B6B7B4B5,B2B3B0B1
1x (UNPACK)
0 B5B4B7B6,B1B0B3B2
1
1 B4B5B6B7,B0B1B2B3
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
0 B7B6B5B4B3B2B1B0
0
1 B6B7B4B5B2B3B0B1
0
0 B5B4B7B6B1B0B3B2
1
Double- 1 B4B5B6B7B0B1B2B3
0 11(5) xx
word 0 B3B2B1B0B7B6B5B4
0
1 B2B3B0B1B6B7B4B5
1
0 B1B0B3B2B5B4B7B6
1
1 B0B1B2B3B4B5B6B7
Double B7B6B5B4B3B2 00 (RA, LT)(3) B24,B16,B8,B0
11(6)
-word B1B0
01 (LA, RT)(3) B31,B23,B15,B7
00 Byte x
B7,B5,B6,B4,B3,B1,B2,
1x (UNPACK)
B0
0 B10B8,B2B0
1 00 (RA, LT)(3) x x
1 B8B10,B0B2
Half- 0 B15B13,B7B5
01 01 (LA, RT)(3)
word 1 B13B15,B5B7
0 B7B5,B6B4,B3B1,B2B0
1x (UNPACK)
1 B5B7,B4B6,B1B3,B0B2
Destination
SDW_ DDW_
Source Source data Destination data
DWX
DBX
DHX
SBX
data
LOG2 LOG2 PAM[1:0](2)
data stream(1) stream(1)
[1:0] [1:0]
0 B11B9B10B8,B3B1B2B0
0
1 B9B11B8B10,B1B3B0B2
00 (RA, LT)(3)
0 B10B8B11B9,B2B0B3B1
1
1 B8B10B9B11,B0B2B1B3
B15B13B14B12,
0
B7B5B6B4
0
B13B15B12B14,
1
B5B7B4B6
10 Word 01 (LA, RT)(3) x
B14B12B15B13,
0
B6B4B7B5
1
B12B14B13B15,
1
B4B6B5B7
Double B7B6B5B4B3B2 0 B7B5B6B4,B3B1B2B0
11(6) 1
-word B1B0 0
1 B5B7B4B6,B1B3B0B2
1x (UNPACK)
0 B6B4B7B5,B2B0B3B1
1
1 B4B6B5B7,B0B2B1B3
0 B7B5B6B4B3B1B2B0
0
1 B5B7B4B6B1B3B0B2
0
0 B6B4B7B5B2B0B3B1
1
Double- 1 B4B6B5B7B0B2B1B3
11(5) xx
word 0 B3B1B2B0B7B5B6B4
0
1 B1B3B0B2B5B7B4B6
1
0 B2B0B3B1B6B4B7B5
1
1 B0B2B1B3B4B6B5B7
1. Data stream is timely ordered starting from the byte with the lowest index (B0).
2. RA= right aligned, LA = left aligned, RT = right truncated, LT = left truncated, 0P = zero bit padding up to the destination data
width, SE = sign bit extended up to the destination data width.
3. RA= right aligned. LA = left aligned. RT = right truncated. LT = left truncated.
4. 0P= zero-bit padding up to the destination data width. SE = sign bit extended up to the destination data width.
5. if DDW_LOG2[1:0] = 11 and if DAP = 0 (destination allocated port is AXI). Else if DDW_LOG2[1:0] = 11 and
DAP = 1 (AHB), a user setting error (USEF) is reported.
6. if SDW_LOG2[1:0] = 11 and if SAP = 0 (source allocated source port is AXI). Else if SDW_LOG2[1:0] = 11 and
SAP = 1 (AHB), a user setting error (USEF) is reported.
to memory is not taken into account earlier by the arbiter (not as soon as the block transfer
is enabled and executable).
HPDMA arbitration
The HPDMA arbitration is directed from the 4-grade assigned channel priority
(HPDMA_CxCR.PRIO[1:0]). The arbitration policy, as illustrated in Figure 88, is defined by:
• one high-priority traffic class (queue 3), dedicated to the assigned channels with
priority 3, for time-sensitive channels
This traffic class is granted via a fixed-priority arbitration against any other low-priority
traffic class. Within this class, requested single/burst transfers are round-robin
arbitrated.
• three low-priority traffic classes (queues 0, 1 or 2) for non time-sensitive channels with
priority 0, 1 or 2
Each requested single/burst transfer within this class is round-robin arbitrated, with a
weight that is monotonically driven from the programmed priority:
– Requests with priority 0 are allocated to the queue 0.
– Requests with priority 1 are allocated and replicated to the queue 0 and queue 1.
– Requests with priority 2 are allocated and replicated to the queue 0, queue 1, and
queue 2.
– Any queue 0, 1 or 2 equally grants any of its active input requests in a round-robin
manner, provided there are simultaneous requests.
– Additionally, there is a second stage for the low-traffic with a round-robin arbiter
that fairly alternates between simultaneous selected requests from queue 0,
queue 1 and queue 2.
HPDMA arbitration
RRA = round-robin arbitration, FPA = fixed-priority arbitration MSv66927V1
The two following examples highlight that the weighted round-robin arbitration is driven by
the programmed priorities:
• Example 1: basic application with two non time-sensitive HPDMA requests: req0 and
req1. There are the following programming possibilities:
– If they are assigned with same priority, the allocated bandwidth by the arbiter to
req0 (Breq0) is equal to the allocated bandwidth to req1(Breq1).
Breq0 = Breq1 = 1/2 * (1 - BQ3)
– If req0 is assigned to priority 0 and req1 to priority 1, the allocated bandwidth to
req0 (BP0) is 3 times less than the allocated bandwidth to req1 (BP1).
Breq0 = BP0 = 1/2 * 1/2 * (1 - BQ3) = 1/4 * (1 - BQ3)
Breq1 = BP1 = (1/2 + 1) * 1/2 * (1 - BQ3) = 3/4 * (1 - BQ3)
– If req0 is assigned to priority 0 and req1 to priority 2, the allocated bandwidth to
req0 (BP0) is 5 times less than the allocated bandwidth to req1 (BP2).
Breq0 = BP0 = 1/2 * 1/3 * (1 - BQ3) = 1/6 * (1 - BQ3)
Breq1 = BP2 = (1/2 + 1 +1) * 1/3 * (1 - BQ3) = 5/6 * (1 - BQ3)
The above computed bandwidth calculation is based on a theoretical input request,
always active for any HPDMA clock cycle. This computed bandwidth from the arbiter
must be weighted by the frequency of the request given by the application, that cannot
be always active and may be quite much variable from one HPDMA client (example
I2C at 400 kHz) to another one (PWM at 1 kHz) than the above x3 and x5 ratios.
• Example 2: application where the user distributes a same non-null N number of
HPDMA requests to every non time-sensitive priority 0, 1 and 2. The bandwidth
calculation is then the following:
– The allocated bandwidth to the set of requests of priority 0 (BP0) is
BP0 = 1/3 * 1/3 * (1 - BQ3) = 1/9 * (1 - BQ3)
– The allocated bandwidth to the set of requests of priority 1(BP1) is
BP1 = (1/3 + 1/2) * 1/3 * (1 - BQ3) = 5/18 * (1 - BQ3)
– The allocated bandwidth to the set of requests of priority 2(BP2) is
BP2 = (1/3 + 1/2 + 1) * 1/3 * (1 - BQ3) = 11/18 * (1 - BQ3)
– The allocated bandwidth to any request n (Bn) among the N requests of that
priority Pi (i = 0 to 2) is Bn = 1/N * BPi
– The allocated bandwidth to any request n of priority 0i (Bn, Pi) is
Bn, P0 = 1/N *1/9 * (1 - BQ3)
Bn, P1 = 1/N *5/18 * (1 - BQ3)
Bn, P2 = 1/N *11/18 * (1 - BQ3)
In this example, when the master port bus bandwidth is not totally consumed by the
time-sensitive queue 3, the residual bandwidth is such that 2.5 times less bandwidth
is allocated to any request of priority 0 versus priority 1, and 5.5 times less bandwidth
is allocated to any request of priority 0 versus priority 2.
Thus finally the maximum allocated residual bandwidths for any i, j, k non-time sensitive
request are:
• in the general case (when there is at least one request k with a priority 2 (K > 0)):
– Bi = 1/I * 1/3 * I/(I + J + K) * (1 - BQ3)
– Bj = 1/J * 1/3 *[J/(I + J + K) + J/(J + K)] * (1 - BQ3)
– Bk = 1/K * 1/3 *[K/(I + J + K) + K/(J + K) + 1] * (1 - BQ3)
• in the specific case (when there is no request k with a priority 2 (K = 0)):
– Bi = 1/I * 1/2 * I/(I + J) * (1 - BQ3)
– Bj = 1/J * 1/2 *[J/(I + J) + 1] * (1 - BQ3)
Consequently, the HPDMA arbiter can be used as a programmable weighted bandwidth
limiter, for each queue and more generally for each request/channel. The different weights
are monotonically resulting from the programmed channel priorities.
The figure below illustrates the trigger hit, memorization, and overrun in the configuration
example with a block-level trigger mode and a rising edge trigger polarity.
Trigger
Peripheral
request
Trigger monitoring
Idle Active (monitoring) Active Active Active Active Active Active
state
Trigger monitoring Hit and Hit and Fire Hit and Hit and Fire
action fire memorize memorize trash
Trigger overrun
Hit and trash Hit and fire (or fire alone) Hit and memorize
MSv66923V1
Note: The user can assign the same input trigger event to different channels. This can be used
to trigger different channels on a broadcast trigger event.
The figure below illustrates this programming with a linear addressing HPDMA channel and
a source circular buffer.
Figure 90. HPDMA circular buffer programming: update of the memory start address
with a linear addressing channel
Req=PERIPH_TX Req=PERIPH_TX
Reset
Restore
Init/LLI0
SAR/LLI1
Channel x
Ht+ tcf Ht+ tcf
LLI0
DMA_CxTR1 Memory
CxLBA (LA = 0)
DMA_CxTR2 USA = 1
LLI1
DMA_CxBR1 others Uxx = 0
DMA_CxSAR
DMA_CxSAR
DMA_CxDAR
DMA_CxLLR
MSv62640V1
The figure below illustrates this programming with a linear addressing shared HPDMA
channel, and a source circular buffer.
Figure 91. Shared HPDMA channel with circular buffering: update of the memory
start address with a linear addressing channel
Req=PERIPH_TX Req=PERIPH_TX
Reset
Init/LLI0 LLI1 ... LLIN-1 LLIN
Memory
LLIN-2 LLIN-1
All Uxx=1
DMA_Cx... DMA_CxTR1
DMA_Cx... DMA_CxTR2
DMA_Cx... DMA_CxBR1
• After an HPDMA data transfer error, the user must perform a debug session, taking
care of the product-defined memory mapping of the source and destination, including
the protection attributes.
• After an HPDMA data transfer error, the user must issue a channel reset
(set HPDMA_CxCR.RESET) to reset the hardware HPDMA channel data path and the
FIFO content, before the user enables again the same channel for a next transfer.
– for channel x =12 to 15, a programmed unaligned source address offset being not
a multiple of the programmed data width of a source burst transfer
(HPDMA_CxTR3.SAO[2:0] versus HPDMA_CxTR1.SDW_LOG2[1:0])
– for channel x =12 to 15, a programmed unaligned block repeated source address
offset being not a multiple of the programmed data width of a source burst transfer
(HPDMA_CxBR2.BRSAO[2:0] versus HPDMA_CxTR1.SDW_LOG2[1:0])
– a programmed unaligned destination start address, being not a multiple of the
programmed data width of a destination burst transfer (HPDMA_CxDAR[2:0]
versus HPDMA_CxTR1.DDW_LOG2[1:0])
– for channel x =12 to 15, a programmed unaligned destination address offset being
not a multiple of the programmed data width of a destination burst transfer
(HPDMA_CxTR3.DAO[2:0] versus HPDMA_CxTR1.DDW_LOG2[1:0])
– for channel x =12 to 15, a programmed unaligned block repeated destination
address offset being not a multiple of the programmed data width of a destination
burst transfer (HPDMA_CxBR2.BRDAO[2:0] versus
HPDMA_CxTR1.DDW_LOG2[1:0])
– a programmed double-word source data width and a programmed AHB source
allocated port (HPDMA_CxTR1.SDW_LOG2[1:0] = 11 and
HPDMA_CxTR1.SAP = 1)
– a programmed double-word destination data width and a programmed AHB
destination allocated port (HPDMA_CxTR1.DDW_LOG2[1:0] = 11 and
HPDMA_CxTR1.DAP = 1)
– a programmed linked-list item LLIn+1 with a null data transfer
(HPDMA_CxLLR.UB1 = 1 and HPDMA_CxBR1. BNDT = 0)
Sleep No effect. HPDMA interrupts cause the device to exit Sleep mode.
(1)
Stop The content of HPDMA registers is kept when entering Stop mode.
Standby The HPDMA is powered down, and must be reinitialized after exiting Standby mode.
1. Refer to Section 18.3.3 to know which Stop mode is supported.
Transfer
HPDMA_CxCR.TCIE HPDMA_CxSR.TCF Writes 1 to HPDMA_CxFCR.TCF
complete
Half transfer HPDMA_CxCR.HTIE HPDMA_CxSR.HTF Writes 1 to HPDMA_CxFCR.HTF
Data transfer
HPDMA_CxCR.DTEIE HPDMA_CxSR.DTEF Writes 1 to HPDMA_CxFCR.DTEF
error
HPDMA_CHx
Update link
HPDMA_CxCR.ULEIE HPDMA_CxSR.ULEF Writes 1 to HPDMA_CxFCR.ULEF
error
User setting
HPDMA_CxCR.USEIE HPDMA_CxSR.USEF Writes 1 to HPDMA_CxFCR.USEF
error
Suspended HPDMA_CxCR.SUSPIE HPDMA_CxSR.SUSPF Writes 1 to HPDMA_CxFCR.SUSPF
Trigger
HPDMA_CxCR.TOFIE HPDMA_CxSR.TOF Writes 1 to HPDMA_CxFCR.TOF
overrun
An half-block transfer occurs when half of the source block size bytes (rounded-up
integer of HPDMA_CxBR1.BNDT[15:0] / 2) is transferred to the destination.
An half 2D/repeated block transfer occurs when half of the repeated blocks
(rounded-up integer of (HPDMA_CxBR1.BRC[10:0] + 1) / 2) is transferred to the
destination.
See HPDMA channel x transfer register 2 (HPDMA_CxTR2) for more details.
Note: The interrupt mode must be used (not the polling mode) to be notified on an half transfer
when the write data transaction has been completed over the AXI destination allocated port
(written at the destination memory-mapped address), and not just before when has been
issued, at HPDMA level, this AXI burst transaction.
A transfer error rises in one of the following situations:
• during a single/burst data transfer from the source or to the destination (DTEF)
• during an update of an HPDMA channel register from the programmed LLI in memory
(ULEF)
• during a tentative execution of an HPDMA channel with an unauthorized setting
(USEF)
The user must perform a debug session to correct the HPDMA channel programming
versus the USEF root causes list (see Section 18.4.17).
A trigger overrun is described in Trigger hit memorization and trigger overrun flag
generation.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SEC15 SEC14 SEC13 SEC12 SEC11 SEC10 SEC9 SEC8 SEC7 SEC6 SEC5 SEC4 SEC3 SEC2 SEC1 SEC0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PRIV15 PRIV14 PRIV13 PRIV12 PRIV11 PRIV10 PRIV9 PRIV8 PRIV7 PRIV6 PRIV5 PRIV4 PRIV3 PRIV2 PRIV1 PRIV0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LOCK1 LOCK1 LOCK1 LOCK1 LOCK1 LOCK1
LOCK9 LOCK8 LOCK7 LOCK6 LOCK5 LOCK4 LOCK3 LOCK2 LOCK1 LOCK0
5 4 3 2 1 0
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
This register can mix privileged and unprivileged information, depending on the privileged
state of each channel HPDMA_PRIVCFGR.PRIVx. A privileged software can read the full
nonsecure interrupt status. An unprivileged software is restricted to read the status of
unprivileged (and nonsecure) channels, other privileged bitfields returning zero.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MIS15 MIS14 MIS13 MIS12 MIS11 MIS10 MIS9 MIS8 MIS7 MIS6 MIS5 MIS4 MIS3 MIS2 MIS1 MIS0
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MIS15 MIS14 MIS13 MIS12 MIS11 MIS10 MIS9 MIS8 MIS7 MIS6 MIS5 MIS4 MIS3 MIS2 MIS1 MIS0
r r r r r r r r r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
LBA[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
A read access may be privileged or unprivileged, secure or nonsecure, and with any CID.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SEM_ SEM_ SEM_ SEM_ SEM_ SEM_ SEM_
Res. Res. Res. Res. Res. Res. Res. Res. Res. WLIST WLIST WLIST WLIST WLIST WLIST WLIST
_CID6 _CID5 _CID4 _CID3 _CID2 _CID1 _CID0
rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SEM_E
Res. Res. Res. Res. Res. Res. Res. Res. Res. SCID[2:0] Res. Res. CFEN
N
rw rw rw rw rw
Bits 6:4 SCID[2:0]: Allocation of a static/single CID to the channel x (for when the channel x CID
configuration is not in semaphore mode)
000: CID0 allocated to the channel x
001: CID1 allocated to the channel x
010: CID2 allocated to the channel x
011: CID3 allocated to the channel x
100: CID4 allocated to the channel x
101: CID5 allocated to the channel x
110: CID6 allocated to the channel x
111: Reserved (write ignored)
Bits 3:2 Reserved, must be kept at reset value.
Bit 1 SEM_EN: Semaphore mode enable (for the CID allocation policy to the channel x)
0: Semaphore mode disabled. CID allocation policy to the channel x is defined by SCID[1:0].
1: Semaphore mode enabled. CID allocation policy to the channel x is defined by
the white-listed allocation pool SEM_WLIST_CIDx and HPDMA_CxSEMCR.SEM_MUTEX.
Note: If SEM_EN = 1 and if a trusted domain or debug domain CID agent clears this bit, then
the HPDMA hardware automatically clears the HPDMA_CxSEMCR.SEM_MUTEX.
Bit 0 CFEN: CID filtering enable of the channel x
0: CID filtering disabled for when accessing a channel x register/bitfield
1: CID filtering enabled for when accessing a channel x register/bitfield
Note: If CFEN = 1 and if a trusted domain or debug domain CID agent clears this bit, then the
HPDMA hardware automatically clears the HPDMA_CxSEMCR.SEM_MUTEX.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SEM_
Res. Res. Res. Res. Res. Res. Res. Res. Res. SEM_CCID[2:0] Res. Res. Res.
MUTEX
r r r rw
Bits 6:4 SEM_CCID[2:0]: Current CID allocated to the channel x (in semaphore mode)
This read-only bitfield is internally updated when a white-listed CID took the control of
the channel x, in semaphore mode. If SEM_MUTEX = 0, this same CID also released it.
000: CID0 is the last white-listed CID that took the control of the channel x.
001: CID1 is the last white-listed CID that took the control of the channel x.
010: CID2 is the last white-listed CID that took the control of the channel x.
011: CID3 is the last white-listed CID that took the control of the channel x.
100: CID4 is the last white-listed CID that took the control of the channel x.
101: CID5 is the last white-listed CID that took the control of the channel x.
110: CID6 is the last white-listed CID that took the control of the channel x.
111: Reserved
Bits 3:1 Reserved, must be kept at reset value.
Bit 0 SEM_MUTEX: Mutual exclusion semaphore for the CID allocation of the channel x
(in semaphore mode)
If the channel x is in secure state (HPDMA_SECCFGR.SECx = 1), this bit can only be written
by a secure agent. If the channel x is in privileged state (HPDMA_PRIVCFGR.PRIVx = 1),
this bit can only be written by a privileged agent.
If the channel x is CID-filtered (HPDMA_CxCIDCFGR.CFEN = 1) and in semaphore mode
(HPDMA_CIDCFGR.SEM_EN = 1), this bit can only be written either by an authorized
(white-listed) CID agent to take the control, or by the same (white-listed) CID agent to
release the control.
Condition: write
0: Release the control of the channel x (in semaphore mode) to any white-listed CID.
1: Take the control of the channel x (in semaphore mode), from one of the white-listed
CID pool.
Condition: read
0: Channel x CID-free (not currently under the control of any white-listed CID)
1: Channel x CID-allocated (currently taken and under the control of one white-listed CID)
Note: This bit must be written when HPDMA_CxCR.EN = 0. This bit is read-only when
HPDMA_CxCR.EN = 1.
When SEM_EN or CFEN bit is cleared in HPDMA_CxSEMCR, the HPDMA hardware
automatically clears this SEM_MUTEX bit.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. TOF SUSPF USEF ULEF DTEF HTF TCF Res. Res. Res. Res. Res. Res. Res. Res.
w w w w w w w
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. FIFOL[8:0]
r r r r r r r r r
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. TOF SUSPF USEF ULEF DTEF HTF TCF Res. Res. Res. Res. Res. Res. Res. IDLEF
r r r r r r r r
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. PRIO[1:0] Res. Res. Res. Res. LAP LSM
rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SUSPI
Res. TOIE USEIE ULEIE DTEIE HTIE TCIE Res. Res. Res. Res. Res. SUSP RESET EN
E
rw rw rw rw rw rw rw rw w rw
Bits 23:22 PRIO[1:0]: Priority level of the channel x HPDMA transfer versus others
00: Low priority, low weight
01: Low priority, mid weight
10: Low priority, high weight
11: High priority
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.
Bits 21:18 Reserved, must be kept at reset value.
Bit 17 LAP: lLnked-list allocated port
This bit is used to allocate the master port for the update of the HPDMA linked-list registers
from the memory.
0: Port 0 (AXI) allocated
1: Port 1 (AHB) allocated
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.
Bit 16 LSM: Link step mode
0: Channel executed for the full linked-list and completed at the end of the last LLI
(HPDMA_CxLLR = 0). The 16 low-significant bits of the link address are null (LA[15:0] = 0)
and all the update bits are null (UT1 = UB1 = UT2 = USA = UDA = ULL = 0 and
UT3 = UB2 = 0 if present). Then HPDMA_CxBR1.BNDT[15:0] = 0 and
HPDMA_CxBR1.BRC[10:0] = 0 if present.
1: Channel executed once for the current LLI
First the (possible 1D/repeated) block transfer is executed as defined by the current internal
register file until HPDMA_CxBR1.BNDT[15:0] = 0 and HPDMA_CxBR1.BRC[10:0] = 0,
if present. Secondly the next linked-list data structure is conditionally uploaded from memory
as defined by HPDMA_CxLLR. Then channel execution is completed.
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.
Bit 15 Reserved, must be kept at reset value.
Bit 14 TOIE: Trigger overrun interrupt enable
0: Interrupt disabled
1: Interrupt enabled
Bit 13 SUSPIE: cCmpleted suspension interrupt enable
0: Interrupt disabled
1: Interrupt enabled
Bit 12 USEIE: User setting error interrupt enable
0: Interrupt disabled
1: Interrupt enabled
Bit 11 ULEIE: Update link transfer error interrupt enable
0: Interrupt disabled
1: Interrupt enabled
Bit 10 DTEIE: Data transfer error interrupt enable
0: Interrupt disabled
1: Interrupt enabled
Bit 9 HTIE: Half transfer complete interrupt enable
0: Interrupt disabled
1: Interrupt enabled
Bit 8 TCIE: Transfer complete interrupt enable
0: Interrupt disabled
1: Interrupt enabled
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DSEC DAP Res. DWX DHX DBX DBL_1[5:0] DINC Res. DDW_LOG2[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SSEC SAP SBX PAM[1:0] Res. SBL_1[5:0] SINC Res. SDW_LOG2[1:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
Bits 17:16 DDW_LOG2[1:0]: Binary logarithm of the destination data width of a burst, in bytes
00: Byte
01: Half-word (2 bytes)
10: Word (4 bytes)
11: If DAP = 0 (AXI), double-word (8 bytes)
if DAP = 1, user setting error reported and no transfer issued
Note: A destination burst transfer must have an aligned address with its data width (start
address HPDMA_CxDAR[2:0] and if present address offset HPDMA_CxTR3.DAO[2:0],
versus DDW_LOG2[1:0]). Otherwise a user setting error is reported and no transfer is
issued.
When configured in packing mode (PAM[1] = 1 and destination data width different from
source data width), a source block size must be a multiple of the destination data width
(see HPDMA_CxBR1.BNDT[2:0] versus DDW_LOG2[1:0]). Else a user setting error is
reported and none transfer is issued.
A burst with a double-word data width must be allocated to the AXI master port, else a
user setting error is reported and none transfer is issued.
Bit 15 SSEC: Security attribute of the HPDMA transfer from the source
If HPDMA_SECCFGR.SECx = 1 and the access is secure:
0: HPDMA transfer nonsecure
1: HPDMA transfer secure
This is a secure register bit. This bit can only be read by a secure software. This bit must be
written by a secure software when HPDMA_SECCFGR.SECx = 1. A secure write is ignored
when HPDMA_SECCFGR.SECx = 0.
When HPDMA_SECCFGR.SECx is deasserted, this SSEC bit is also deasserted by
hardware (on a secure reconfiguration of the channel as nonsecure), and the HPDMA
transfer from the source is nonsecure.
Bit 14 SAP: Source allocated port
This bit is used to allocate the master port for the source transfer
0: Port 0 (AXI) allocated
1: Port 1 (AHB) allocated
Note: This bit must be written when EN = 0. This bit is read-only when EN = 1.
Bit 13 SBX: Source byte exchange within the unaligned half-word of each source word
If the source data width is shorter than a word, this bit is ignored.
If the source data width is a word or a double-word, and if source bus is AXI (SAP = 0):
0: No byte-based exchange within the unaligned half-word of each source word
1: The two consecutive bytes within the unaligned half-word of each source word
are exchanged.
Bits 1:0 SDW_LOG2[1:0]: Binary logarithm of the source data width of a burst in bytes
00: Byte
01: Half-word (2 bytes)
10: Word (4 bytes)
11: If SAP = 0 (AXI), double-word (8 bytes)
if SAP = 1, user setting error reported and no transfer issued
Note: A source block size must be a multiple of the source data width
(HPDMA_CxBR1.BNDT[2:0] versus SDW_LOG2[1:0]). Otherwise, a user setting error
is reported and no transfer is issued.
A source burst transfer must have an aligned address with its data width (start address
HPDMA_CxSAR[2:0] versus SDW_LOG2[1:0]). Otherwise, a user setting error is
reported and none transfer is issued.
A burst with a double-word data width must be allocated to the AXI master port, else a
user setting error is reported and none transfer is issued.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
TCEM[1:0] Res. Res. Res. Res. TRIGPOL[1:0] Res. TRIGSEL[6:0]
rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SWRE
TRIGM[1:0] Res. PFREQ BREQ DREQ Res. REQSEL[7:0]
Q
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BNDT[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
BRDDE BRSDE
DDEC SDEC Res. BRC[10:0]
C C
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BNDT[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
SA[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SA[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DA[31:16]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
DA[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. DAO[12:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Res. Res. Res. SAO[12:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
BRDAO[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
BRSAO[15:0]
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UT1 UT2 UB1 USA UDA Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. ULL
rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LA[15:2] Res. Res.
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
UT1 UT2 UB1 USA UDA UT3 UB2 Res. Res. Res. Res. Res. Res. Res. Res. ULL
rw rw rw rw rw rw rw rw
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LA[15:2] Res. Res.
rw rw rw rw rw rw rw rw rw rw rw rw rw rw
10
11
9
8
7
6
5
4
3
2
1
0
SEC15
SEC14
SEC13
SEC12
SEC10
SEC11
SEC9
SEC8
SEC7
SEC6
SEC5
SEC4
SEC3
SEC2
SEC1
SEC0
HPDMA_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x000 SECCFGR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PRIV15
PRIV14
PRIV13
PRIV12
PRIV10
PRIV11
PRIV9
PRIV8
PRIV7
PRIV6
PRIV5
PRIV4
PRIV3
PRIV2
PRIV1
PRIV0
HPDMA_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x004 PRIVCFGR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
LOCK15
LOCK14
LOCK13
LOCK12
LOCK10
LOCK11
LOCK9
LOCK8
LOCK7
LOCK6
LOCK5
LOCK4
LOCK3
LOCK2
LOCK1
LOCK0
HPDMA_
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
0x008 RCFGLOCKR
Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x04C
0x00C
0x098+
0x014 -
0x098 +
0x094 +
0x090 +
0x064 +
0x060 +
0x058 +
0x054 +
0x050 +
0x80 * x
0x80 * x
0x80 * x
Offset
0x09C +
0x05C +
0x080 * x
0x080 * x
0x080 * x
0x080 * x
0x080 * x
0x080 * x
0x080 * x
0x080 * x
(x=0 to 11)
(x=0 to 15)
(x=0 to 15)
(x=0 to 15)
(x=0 to 15)
(x=0 to 15)
(x=0 to 15)
RM0486
(x = 0 to 15)
(x = 0 to 15)
(x = 0 to 15)
(x=12 to 15)
HPDMA_
HPDMA_
Reserved
CxSEMCR
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
Reset value
CxCIDCFGR
HPDMA_MISR
HPDMA_CxSR
HPDMA_CxCR
HPDMA_CxTR2
HPDMA_CxTR1
HPDMA_CxBR1
HPDMA_CxBR1
HPDMA_SMISR
HPDMA_CxSAR
HPDMA_CxFCR
HPDMA_CxLBAR
Register name
0
0
0
0
0
BRDDEC Res. DSEC Res. Res. Res. Res. Res. Res. Res. 31
TCEM[1:0]
0
0
0
0
0
BRSDEC Res. DAP Res. Res. Res. Res. Res. Res. Res. 30
0
0
0
DDEC Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. 29
0
0
0
0
SDEC Res. Res. DWX Res. Res. Res. Res. Res. Res. Res. 28
0
0
0
Res. Res. Res. DHX Res. Res. Res. Res. Res. Res. Res. 27
0
0
0
0
Res. Res. DBX Res. Res. Res. Res. Res. Res. Res. 26
0
0
0
0
Res. Res. Res. Res. Res. Res. 0 Res. Res. 25
TRIGPOL[1:0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Res. Res. Res. SEM_WLIST_CID6 Res. Res. 22
DBL_1[5:0]
0
0
0
0
0
0
0
Res. Res. Res. Res. SEM_WLIST_CID5 Res. Res. 21
0
0
0
0
0
0
0
Res. Res. Res. Res. SEM_WLIST_CID4 Res. Res. 20
BRC[10:0]
0
0
0
0
0
0
FIFOL[8:0]
0
0
0
0
0
0
Res. Res. Res. Res. Res. SEM_WLIST_CID2 Res. Res. 18
RM0486 Rev 2
TRIGSEL[6:0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
SA[31:0]
Reserved
TRIGM[1:0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Res. SBX SUSPIE SUSPF SUSPF Res. Res. Res. MIS13 MIS13 13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
DREQ Res. DTEIE DTEF DTEF Res. Res. Res. MIS10 MIS10 10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Table 96. HPDMA register map and reset values (continued)
0
0
0
0
0
0
0
BNDT[15:0]
BNDT[15:0]
0
0
0
0
0
0
0
0
SBL_1[5:0]
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
REQSEL[7:0]
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
High-performance direct memory access controller (HPDMA)
923/4691
EN IDLEF Res. SEM_MUTEX CFEN Res. MIS0 MIS0 0
924
High-performance direct memory access controller (HPDMA) RM0486
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
10
11
9
8
7
6
5
4
3
2
1
0
0x0A0 + HPDMA_CxDAR DA[31:0]
0x080 * x
(x=0 to 15) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x0A4 + HPDMA_
Res.
Res.
Res.
Res.
Res.
Res.
DAO[12:0] SAO[12:0]
0x080 * x CxTR3
(x = 12 to
15) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0x0A8 + HPDMA_CxBR2 BRDAO[15:0] BRSAO[15:0]
0x080 * x
(x=12 to 15) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
UDA
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
USA
UB1
0x0CC +
UT1
UT2
ULL
HPDMA_CxLLR LA[15:2]
0x080 * x
(x=0 to 11) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
UDA
USA
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
Res.
UB1
UB2
0x0CC +
UT1
UT2
UT3
ULL
HPDMA_CxLLR LA[15:2]
0x080 * x
(x=12 to 15) Reset value 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 jpeg_rx_dma
1 jpeg_tx_dma
2 xspi1_dma
3 xspi2_dma
4 xspi3_dma
5 fmc_txrx_dma
6 fmc_bch_dma
7 adc1_dma
8 adc2_dma
9 cryp_in_dma
10 cryp_out_dma
11 saes_out_dma
12 saes_in_dma
13 hash_in_dma
14 tim1_cc1_dma
15 tim1_cc2_dma
16 tim1_cc3_dma
17 tim1_cc4_dma
18 tim1_upd_dma
19 tim1_trg_dma
20 tim1_com_dma
21 tim2_cc1_dma
22 tim2_cc2_dma
23 tim2_cc3_dma
24 tim2_cc4_dma
25 tim2_upd_dma
26 tim2_trg_dma
27 tim3_cc1_dma
28 tim3_cc2_dma
29 tim3_cc3_dma
30 tim3_cc4_dma
31 tim3_upd_dma
32 tim3_trg_dma
33 tim4_cc1_dma
34 tim4_cc2_dma
35 tim4_cc3_dma
36 tim4_cc4_dma
37 tim4_upd_dma
38 tim4_trg_dma
39 tim5_cc1_dma
40 tim5_cc2_dma
41 tim5_cc3_dma
42 tim5_cc4_dma
43 tim5_upd_dma
44 tim5_trg_dma
45 tim6_upd_dma
46 tim7_upd_dma
47 tim8_cc1_dma
48 tim8_cc2_dma
49 tim8_cc3_dma
50 tim8_cc4_dma
51 tim8_upd_dma
52 tim8_trg_dma
53 tim8_com_dma
54 -
55 -
56 tim15_cc1_dma
57 tim15_cc2_dma
58 tim15_upd_dma
59 tim15_trg_dma
60 tim15_com_dma
61 tim16_cc1_dma
62 tim16_upd_dma
63 tim16_com_dma
64 tim17_cc1_dma
65 tim17_upd_dma
66 tim17_com_dma
67 tim18_cc1_dma
68 tim18_upd_dma
69 tim18_com_dma
70 lptim1_ic1_dma
71 lptim1_ic2_dma
72 lptim1_ue_dma
73 lptim2_ic1_dma
74 lptim2_ic2_dma
75 lptim2_ue_dma
76 lptim3_ic1_dma
77 lptim3_ic2_dma
78 lptim3_ue_dma
79 spi1_rx_dma
80 spi1_tx_dma
81 spi2_rx_dma
82 spi2_tx_dma
83 spi3_rx_dma
84 spi3_tx_dma
85 spi4_rx_dma
86 spi4_tx_dma
87 spi5_rx_dma
88 spi5_tx_dma
89 spi6_rx_dma
90 spi6_tx_dma
91 sai1_a_dma
92 sai1_b_dma
93 sai2_a_dma
94 sai2_b_dma
95 i2c1_rx_dma
96 i2c1_tx_dma
97 i2c2_rx_dma
98 i2c2_tx_dma
99 i2c3_rx_dma
100 i2c3_tx_dma
101 i2c4_rx_dma
102 i2c4_tx_dma
103 i3c1_rx_dma
104 i3c1_tx_dma
105 i3c2_rx_dma
106 i3c2_tx_dma
107 usart1_rx_dma
108 usart1_tx_dma
109 usart2_rx_dma
110 usart2_tx_dma
111 usart3_rx_dma
112 usart3_tx_dma
113 uart4_rx_dma
114 uart4_tx_dma
115 uart5_rx_dma
116 uart5_tx_dma
117 usart6_rx_dma
118 usart6_tx_dma
119 uart7_rx_dma
120 uart7_tx_dma
121 uart8_rx_dma
122 uart8_tx_dma
123 uart9_rx_dma
124 uart9_tx_dma
125 usart10_rx_dma
126 usart10_tx_dma
127 lpuart1_rx_dma
128 lpuart1_tx_dma
129 spdifrx_cs_dma
130 spdifrx_dt_dma
131 adf1_flt0_dma
132 mdf1_flt0_dma
133 mdf1_flt1_dma
134 mdf1_flt2_dma
135 mdf1_flt3_dma
136 mdf1_flt4_dma
137 mdf1_flt5_dma
138 ucpd1_tx_dma
139 ucpd1_rx_dma
140 dcmi_dma or pssi_dma(1)
141 i3c1_tc_dma
142 i3c1_rs_dma
143 i3c2_tc_dma
144 i3c2_rs_dma
1. Depends on which exclusive function is used.
lptim1_ue_dma
lptim2_ue_dma
lptim3_ue_dma
x = 0, x = 1, and x = 15
i3c1_rx_dma
i3c2_rx_dma
jpeg_tx_dma
0 dcmipp_p1_frameend_evt
1 dcmipp_p1_lineend_evt
2 dcmipp_p1_hsync_evt
3 dcmipp_p1_vsync_evt
4 dcmipp_p1_frameend_evt
5 dcmipp_p1_lineend_evt
6 dcmipp_p1_hsync_evt
7 dcmipp_p1_vsync_evt
8 dcmipp_p2_frameend_evt
9 dcmipp_p2_lineend_evt
10 dcmipp_p2_hsync_evt
11 dcmipp_p2_vsync_evt
12 dma2d_ctc_flag
13 dma2d_tc_flag
14 dma2d_tw_flag
15 jpeg_eoc_flag
16 jpeg_ifnf_flag
17 jpeg_ift_flag
18 jpeg_ofne_flag
19 jpeg_oft_flag
20 lcd_li_flag
21 gpu2d1_gp_flag[0]
22 gpu2d1_gp_flag[1]
23 gpu2d1_gp_flag[2]
24 gpu2d1_gp_flag[3]
25 gfxtim1_0_gfxtim_evt[3]
26 gfxtim1_0_gfxtim_evt[2]
27 gfxtim1_0_gfxtim_evt[1]
28 gfxtim1_0_gfxtim_evt[0]
29 -
30 lptim1_ch1
31 lptim1_ch2
32 lptim2_ch1
33 lptim2_ch2
34 lptim3_ch1
35 lptim3_ch2
36 lptim4_out
37 lptim5_out
38 -
39 rtc_wkup
40 lpuart1_it_r_wup_async
41 lpuart1_it_t_wup_async
42 spi6_it_or_spi6_ait_sync
43 -
44 tim1_trgo_cktim
45 tim1_trgo2_cktim
46 tim2_trgo_cktim
47 tim3_trgo_cktim
48 tim4_trgo_cktim
49 tim5_trgo_cktim
50 tim6_trgo_cktim
51 tim7_trgo_cktim
52 tim8_trgo_cktim
53 tim8_trgo2_cktim
54 -
55 -
56 -
57 tim12_trgo_cktim
58 tim15_trgo_cktim
59 -
60 hpdma1_ch0_tc
61 hpdma1_ch1_tc
62 hpdma1_ch2_tc
63 hpdma1_ch3_tc
64 hpdma1_ch4_tc
65 hpdma1_ch5_tc
66 hpdma1_ch6_tc
67 hpdma1_ch7_tc
68 hpdma1_ch8_tc
69 hpdma1_ch9_tc
70 hpdma1_ch10_tc
71 hpdma1_ch11_tc
72 hpdma1_ch12_tc
73 hpdma1_ch13_tc
74 hpdma1_ch14_tc
75 hpdma1_ch15_tc
76 gpdma1_ch0_tc
77 gpdma1_ch1_tc
78 gpdma1_ch2_tc
79 gpdma1_ch3_tc
80 gpdma1_ch4_tc
81 gpdma1_ch5_tc
82 gpdma1_ch6_tc
83 gpdma1_ch7_tc
84 gpdma1_ch8_tc
85 gpdma1_ch9_tc
86 gpdma1_ch10_tc
87 gpdma1_ch11_tc
88 gpdma1_ch12_tc
89 gpdma1_ch13_tc
90 gpdma1_ch14_tc
91 gpdma1_ch15_tc
92 -
93 extit0_sync
94 extit1_sync
95 extit2_sync
96 extit3_sync
97 extit4_sync
98 extit5_sync
99 extit6_sync
100 extit7_sync
101 extit8_sync
102 extit9_sync
103 extit10_sync
104 extit11_sync
105 extit12_sync
106 extit13_sync
107 extit14_sync
108 extit15_sync
GPDMA
(1) Refer to the device implementation table for the number of channels.
32-bit AHB bus MSv63644V2
19.4.2 GPDMA channel state and direct programming without any linked-list
After a GPDMA reset, a GPDMA channel x is in idle state. When the software writes 1 in
GPDMA_CxCR.EN, the channel takes into account the value of the different channel
configuration registers (GPDMA_CxXXX), switches to the active/non-idle state and starts to
execute the corresponding requested data transfers.
After enabling/starting a GPDMA channel transfer by writing 1 in GPDMA_CxCR.EN, a
GPDMA channel interrupt on a complete transfer notifies the software that the GPDMA
channel is back in idle state (EN is then deasserted by hardware) and that the channel is
ready to be reconfigured then enabled again.
Figure 93 illustrates this GPDMA direct programming without any linked-list
(GPDMA_CxLLR = 0).
Valid user
setting ? N
Y
Setting USEF = 1
Disabling DMA channel
Executing the data transfer
from the register file
No transfer
N
error ?
Y Setting DTEF = 1
Disabling DMA channel
Setting TCF = 1
Disabling DMA channel
End
MSv62626V1
any ongoing GPDMA transfer over its master ports. Then the software can observe, in
a steady state, any read register or register field that is hardware modifiable.
Note: An ongoing GPDMA transfer can be a data transfer (a source/destination burst transfer) or a
link transfer for the internal update of the linked-list register file from the next linked-list item.
3. The software safely resumes the suspended channel by writing 0 to
GPDMA_CxCR.SUSP.
N
SUSPF=1 ?
MSv62627V1
Note: A suspend and resume sequence does not impact the GPDMA_CxCR.EN bit. Suspending a
channel (transfer) does not suspend a started trigger detection.
4. The software safely reconfigures the channel. The software must reprogram the
hardware-modified GPDMA_CxBR1, GPDMA_CxSAR, and GPDMA_CxDAR
registers.
5. In order to restart the aborted then reprogrammed channel, the software enables it
again by writing 1 to the GPDMA_CxCR.EN bit.
N
SUSPF=1 ?
Y
Channel state = Suspended
Receiving (and Idle)
suspended
interrupt
MSv62628V1
A linked-list data structure is addressed following the value of the UT1, UT2, UB1, USA,
UDA and ULL bits, plus UB2 and UT3, in GPDMA_CxLLR.
In linked-list mode, each GPDMA linked-list register (GPDMA_CxTR1, GPDMA_CxTR2,
GPDMA_CxBR1, GPDMA_CxSAR, GPDMA_CxDAR or GPDMA_CxLLR, plus
GPDMA_CxTR3 or GPDMA_CxBR2) is conditionally and automatically updated from the
next linked-list data structure in the memory, following the current value of the
GPDMA_CxLLR register that was conditionally updated from the linked-list data structure of
the previous LLI.
DMA_CxTR2 DMA_CxTR2
DMA_CxBR1 DMA_CxBR1
DMA_CxSAR DMA_CxSAR
DMA_CxDAR DMA_CxDAR
DMA_CxLLR DMA_CxLLR
All Uxx=1
MSv62629V1
DMA_CxBR1 DMA_CxBR1
DMA_CxSAR DMA_CxSAR
DMA_CxDAR DMA_CxDAR
DMA_CxTR3 DMA_CxTR3
DMA_CxBR2 DMA_CxBR2
DMA_CxLLR DMA_CxLLR
All Uxx=1
MSv63645V1
The user must program GPDMA_CxLLR for each LLIn to be 32-bit aligned and not to
exceed the 64-Kbyte addressable space pointed by GPDMA_CxLBAR.
Y
Setting USEF = 1
N Disabling DMA channel
BNDT0 ?
No transfer
N
error ?
Y
Setting DTEF = 1
Disabling DMA channel
N LLR 0 ?
No transfer
N
error ?
Y Setting ULEF = 1
Disabling DMA channel
Valid user
N
setting ?
Y
Setting USEF = 1
Setting TCF = 1 Disabling DMA channel
Disabling DMA channel
End
MSv62631V1
Loading LLIn-1
(with DMA_CxTR2: TRIGM[1:0] = 10
TRIGPOL[1:0] = 01
TRIGSEL= dma_chy_tc
and TCEM[1:0] = 01)
Loading LLIn+1
MSv62632V2
19.4.8 GPDMA channel state and linked-list programming in link step mode
When GPDMA_CxCR.LSM = 1 (in link step execution mode, single execution of one LLI), a
channel transfer is executed and completed after each single execution of a LLI, including
its (conditional) data transfer and its (conditional) link transfer.
A GPDMA channel transfer can be programmed at LLI level, started by writing 1 into
GPDMA_CxCR.EN, and after completed at LLI level:
• The current LLIn transfer is described with:
– GPDMA_CxTR1 defines the source/destination elementary single/burst transfers.
– GPDMA_CxBR1 defines the number of bytes at a block level (BNDT[15:0]) and,
for channel x (x = 12 to 15), the number of blocks at a 2D/repeated block level
(BRC[10:0]+1) and the incrementing/decrementing mode for address offsets.
– GPDMA_CxTR2 defines the input control (request, trigger) and the output control
(transfer complete event) of the transfer.
– GPDMA_CxSAR/GPDMA_CxDAR define the source/destination transfer start
address.
– GPDMA_CxTR3 for channel x (x = 12 to 15) defines the source/destination
additional address offset between burst transfers.
– GPDMA_CxBR2 for channel x (x = 12 to 15) defines the source/destination
additional address offset between blocks at a 2D/repeated block level.
– GPDMA_CxLLR defines the data structure and the address offset of the next
LLIn+1 in the memory.
• The current LLIn transfer is completed after the single execution of the current LLIn:
– after the (conditional) data transfer completion (when
GPDMA_CxBR1.BRC[10:0] = 0, and GPDMA_CxBR1.BNDT[15:0] = 0
– after the (conditional) update of the GPDMA link register file from the data
structure of the next LLIn+1 in memory
Note: If a LLI is recursive (pointing to itself as a next LLI, either GPDMA_CxLLR.ULL = 1 and
GPDMA_CxLLR.LA[15:2] is updated by the same value, or GPDMA_CxLLR.ULL = 0), a
channel in link step mode is completed after each repeated single execution of this LLI.
In the regular data transfer completion at a block level, GPDMA_CxBR1.BNDT[15:0] = 0
and GPDMA_CxBR1.BRC[10:0] = 0. Alternatively, a block transfer may be early completed
by a peripheral (such as an I3C in Rx mode), and then BNDT[15:0] is not null
(see Section 19.4.14 for more details).
The link step mode can be used to elaborate dynamically LLIs in memory during run-time.
The software can be facilitated by using a static data structure for any LLIn (all update bits of
GPDMA_CxLLR have a static value, [Link] = [Link] + constant).
Figure 102 depicts the GPDMA channel execution mode, and its programming in link step
mode.
Note: Figure 102 is not intended to illustrate how often a TCEF can be raised, depending on the
programmed value of TCEM[1:0] in GPDMA_CxTR2. It can be raised at (each) block
completion, at (each) 2D block completion, at (each) LLI completion, or only at the last LLI
data transfer completion. In link step mode, the channel is disabled after each single
execution of a LLI, and depending on the value of TCEM[1:0] a TCEF is raised or not.
In Figure 102, BNDT ≠ 0 is the typical condition for starting the first data transfer. This
condition becomes (BNDT ≠ 0 and PFREQ = 1) if the peripheral requests a data transfer
with early termination (see Section 19.3.5).
Y
Setting USEF = 1
N Disabling DMA channel
BNDT 0 ?
No transfer
N
error ?
Y
Setting DTEF = 1
Disabling DMA channel
N LLR 0 ?
No transfer
N
error ?
Y Setting ULEF = 1
Disabling DMA channel
Valid user
N
setting ?
Y
Setting USEF = 1
Setting TCF = 1 Disabling DMA channel
Disabling DMA channel
End
MSv62633V1
Figure 103. Building LLIn+1: GPDMA dynamic linked-lists in link step mode
LLIn-2
transfer
LLIn
transfer
MSv62634V1
Run-time replacing a LLIn with a new LLIn’ in link step mode (in linked-list
register file)
In this link step mode, during run-time, the software can build and insert a new LLIn’, after
GPDMA executed the transfer from the LLIn-1 and loaded a formerly elaborated LLIn from
the memory by overwriting directly the linked-list register file with the new LLIn’, as shown in
Figure 104.
Figure 104. Replace with a new LLIn’ in register file in link step mode
Loading LLIn
Loading LLIn+1’
LLIn+1"
transfer
Run-time replacing a LLIn with a new LLIn’ in link step mode (in the memory)
The software can build and insert a new LLIn’ and LLIn+1’ in the memory, after GPDMA
executed the transfer from the LLIn-1 and loaded a formerly elaborated LLIn from the
memory, by overwriting partly the linked-list register file (GPDMA_CxBR1.BNDT[15:0] to be
null and GPDMA_CxLLR to point to new LLIn’) as shown in Figure 105.
Figure 105. Replace with a new LLIn’ and LLIn+1’ in memory in link step mode (option 1)
Loading LLIn
Write DMA_CxBR1.BNDT = 0
Write DMA_CxLLR to point to new LLIn'
Loading LLIn’
Loading LLIn+1'
Figure 106. Replace with a new LLIn’ and LLIn+1’ in memory in link step mode (option 2)
Loading LLIn’
Loading LLIn+1'
Transfer complete interrupt MSv62637V1
Setting USEF = 1
BNDT 0 ? N Disabling DMA channel
No transfer
N
error ?
Y
Setting DTEF = 1
N LLR 0 ? Disabling DMA channel
No transfer
N
error ?
Y Setting ULEF = 1
Disabling DMA channel
Valid user
N
setting ?
Y Setting USEF = 1
Disabling DMA channel
N LSM = 1 ?
Y
Setting TCF = 1
Disabling DMA channel
End
MSv62638V1
GPDMA burst
A programmed transfer at the lowest level is a GPDMA burst.
A GPDMA burst is a burst of data received from the source, or a burst of data sent to the
destination. A source (and destination) burst is programmed with a burst length by the field
SBL_1[5:0] (respectively DBL_1[5:0]), and with a data width defined by the field
SDW_LOG2[1:0] (respectively DDW_LOG2[1:0]) in the GPDMA_CxTR1 register.
The addressing mode after each data (named beat) of a GPDMA burst is defined by SINC
and DINC in GPDMA_CxTR1, for source and destination respectively: either a fixed
addressing or an incremented addressing with contiguous data.
The start and next addresses of a GPDMA source/destination burst (defined by
GPDMA_CxSAR and GPDMA_CxDAR) must be aligned with the respective data width.
The table below lists the main characteristics of a GPDMA burst.
00 1 1
01 2 0 (fixed) +0 +0 2
10 4 4
n = 0 to 63(1) n+1
00 1 +1 + (n + 1) 1
1
01 2 (contiguously +2 + 2 * (n + 1) 2
incremented)
10 4 +4 + 4 * (n + 1) 4
11 forbidden user setting, causing USEF generation and none burst to be issued.
1. When S/DBL_1[5:0] = 0, burst is of length 1. Then burst can be also named as single.
The next burst address in the above table is the next source/destination default address
pointed by GPDMA_CxSAR or GPDMA_CxDAR, once the programmed source/destination
burst is completed. This default value refers to the fixed/contiguously incremented address.
32b
Cx_DAR Data0
Data1
... Burst0
DataI-1
+ DAO
Data0
Data1
... Burst1
DataI-1
+ DAO Block0
+ DAO
Data0
Data1
... BurstJ-1
DataI-1
Memory-mapped + DAO
Peripheral
+ BRDAO
32b
Cx_SAR Data Register Burst0
...
+ DAO
... BurstJ-1
+ DAO
+ BRDAO
Data0
Data1
... Burst0
DataI-1
+ DAO
Data0
Data1
... Burst1
DataI-1
+ DAO BlockK-1
+ DAO
Data0
Data1
... BurstJ-1
Programmable address jumps 1) after burst and 2) after DataI-1
+ DAO
block.
Example:
burst: I * words (DBL_1=I-1; DDW_LOG2=’b10) + BRDAO
block: J * bursts (BNDT=J*I*4)
LLI: K * blocks (BRC=K-1)
MSv63674V1
GPDMA burst vs source block size, 1-Kbyte address boundary and FIFO size
The programmed source/destination GPDMA burst is implemented with an AHB burst as is,
unless one of the following conditions is met:
• When half of the FIFO size of the channel x is lower than the programmed
source/destination burst size, the programmed source/destination GPDMA burst is
implemented with a series of singles or bursts of a lower size, each transfer being of a
size that is lower or equal than half of the FIFO size, without any user constraint.
• if the source block size (GPDMA_CxBR1.BNDT[15:0]) is not a multiple of the source
burst size but is a multiple of the data width of the source burst
(GPDMA_CxTR1.SDW_LOG2[1:0]), the GPDMA modifies and shortens bursts into
singles or bursts of lower length, in order to transfer exactly the source block size,
without any user constraint.
• if the source/destination burst transfer have crossed the 1-Kbyte address boundary on
a AHB transfer, the GPDMA modifies and shortens the programmed burst into singles
or bursts of lower length, to be compliant with the AHB protocol, without any user
constraint.
• If the source/destination burst length exceeds 16 on a AHB transfer, the GPDMA
modifies and shortens the programmed burst into singles or bursts of lower length, to
be compliant with the AHB protocol, without any user constraint.
In any case, the GPDMA keeps ensuring source/destination data (and address) integrity
without any user constraint. The current FIFO level (software readable in GPDMA_CxSR) is
compared to and updated with the effective transfer size, and the GPDMA re-arbitrates
between each AHB single or burst transfer, possibly modified.
Based on the channel priority, each single or burst of a lower burst size versus the
programmed burst, is internally arbitrated versus the other requested and active channels.
Note: In linked-list mode, the GPDMA read transfers related to the update of the linked-list
parameters from the memory to the internal GPDMA registers, are scheduled over the link
allocated port, as programmed by GPDMA_CxCR.LAP.
The table below lists the possible data handling from the source to the destination.
00 Byte xx x B7,B6,B5,B4,B3,B2,B1,B0
0 0B3,0B2,0B1,0B0
00 (RA, 0P)
1 B30,B20,B10,B00
0 x SB3,SB2,SB1,SB0
01 Half-word 01 (RA, SE)
1 B3S,B2S,B1S,B0S
0 B7B6,B5B4,B3B2,B1B0
1x (PACK)
1 B6B7,B4B5,B2B3,B0B1
0 000B1,000B0
0
1 00B10,00B00
B7,B6,B5, 00 (RA, 0P)
00 Byte B4,B3,B2, 0 0B100,0B000
B1,B0 1
1 B1000,B0000
x
0 SSSB1,SSSB0
0
1 SSB1S,SSB0S
10 Word 01 (RA, SE)
0 SB1SS,SB0SS
1
1 B1SSS,B0SSS
0 B7B6B5B4,B3B2B1B0
0
1 B6B7B4B5,B2B3B0B1
1x (PACK)
0 B5B4B7B6,B1B0B3B2
1
1 B4B5B6B7,B0B1B2B3
00 (RA, LT) B6,B4,B2,B0
B7B6,B5B4
Half-
01 ,B3B2, 00 Byte 01 (LA, RT) x x B7,B5,B3,B1
word
B1B0
1x (UNPACK) B7,B6,B5,B4,B3,B2,B1,B0
0 B7B6,B5B4,B3B2,B1B0
01 Half-word xx x
1 B6B7,B4B5,B2B3,B0B1
0 00B3B2,00B1B0
0
1 00B2B3,00B0B1
00 (RA, 0P)
0 B3B200,B1B000
1
1 B2B300,B0B100
B7B6,B5B4 0 SSB3B2,SSB1B0
Half-
01 ,B3B2, x 0
word 1 SSB2B3,SSB0B1
B1B0
10 Word 01 (RA, SE)
0 B3B2SS,B1B0SS
1
1 B2B3SS,B0B1SS
0 B7B6B5B4,B3B2B1B0
0
1 B6B7B4B5,B2B3B0B1
1x (PACK)
0 B5B4B7B6,B1B0B3B2
1
1 B4B5B6B7,B0B1B2B3
00 (RA, LT) B12,B8,B4,B0
00 Byte 01 (LA, RT) x B15,B11,B7,B3
10 (UNPACK) B7,B6,B5,B4,B3,B2,B1,B0
0 B5B4,B1B0
B7B6B5B4, 00 (RA, LT)
10 Word 0 1 x B4B5,B0B1
B3B2B1B0
0 B7B6,B3B2
01 Half-word 01 (LA, RT)
1 B6B7,B2B3
0 B7B6,B5B4,B3B2,B1B0
1x (UNPACK)
1 B6B7,B4B5,B2B3,B0B1
0 B7B6B5B4,B3B2B1B0
0
1 B6B7B4B5,B2B3B0B1
0 10 Word xx
0 B5B4B7B6,B1B0B3B2
1
1 B4B5B6B7,B0B1B2B3
00 (RA, LT) B12,B8,B4,B0
00 Byte 01 (LA, RT) x B15,B11,B7,B3
1x (UNPACK) B7,B5,B6,B4,B3,B1,B2,B0
0 B6B4,B2B0
B7B6B5B4, 00 (RA, LT)
10 Word 1 x B4B6,B0B2
B3B2B1B0
0 B7B5,B3B1
01 Half-word 01 (LA, RT)
1 1 B5B7,B1B3
0 B7B5,B6B4,B3B1,B2B0
1x (UNPACK)
1 B5B7,B4B6,B1B3,B0B2
0 B7B5B6B4,B3B1B2B0
0
1 B5B7B4B6,B1B3B0B2
10 Word xx
0 B6B4B7B5,B2B0B3B1
1
1 B4B6B5B7,B0B2B1B3
1. Data stream is timely ordered starting from the byte with the lowest index (B0).
2. RA= right aligned, LA = left aligned, RT = right truncated, LT = left truncated, 0P = zero bit padding up to the destination
data width, SE = sign bit extended up to the destination data width.
Caution: The user must not assign a same input hardware peripheral GPDMA request via
GPDMA_CxTR.REQSEL[7:0] to two different channels, if at a given time this request is
asserted by the peripheral and each channel is ready to execute this requested data
transfer. There is no user setting error reporting.
GPDMA arbitration
The GPDMA arbitration is directed from the 4-grade assigned channel priority
(GPDMA_CxCR.PRIO[1:0]). The arbitration policy, as illustrated in Figure 109, is defined
by:
• one high-priority traffic class (queue 3), dedicated to the assigned channels with
priority 3, for time-sensitive channels
This traffic class is granted via a fixed-priority arbitration against any other low-priority
traffic class. Within this class, requested single/burst transfers are round-robin
arbitrated.
• three low-priority traffic classes (queues 0, 1, or 2) for non time-sensitive channels with
priority 0, 1, or 2
Each requested single/burst transfer within this class is round-robin arbitrated, with a
weight that is monotonically driven from the programmed priority:
– Requests with priority 0 are allocated to the queue 0.
– Requests with priority 1 are allocated and replicated to the queue 0 and queue 1.
– Requests with priority 2 are allocated and replicated to the queue 0, queue 1, and
queue 2.
– Any queue 0, 1, or 2 equally grants any of its active input requests in a round-robin
manner, provided there are simultaneous requests.
– Additionally, there is a second stage for the low-traffic with a round-robin arbiter
that fairly alternates between simultaneous selected requests from queue 0,
queue 1, and queue 2.
GPDMA arbitration
RRA = round-robin arbitration, FPA = fixed-priority arbitration MSv63647V1
The bandwidth for the set of requests with priority 1 and routed to queue 1 is:
• BP1,Q1 = J / (J + K) * BQ1
The total bandwidth for the set of requests with priority 1 is:
• BP1 = BP1,Q0 + BP1,Q1
The bandwidth for each request j with priority 1 is:
• Bj = BP1 / J for J > 0 (else Bj = 0)
The bandwidth for the set of requests with priority 2 and routed to queue 0 is:
• BP2,Q0 = K / (I + J + K) * BQ0
The bandwidth for the set of requests with priority 2 and routed to queue 1 is:
• BP2,Q1 = K / (J + K) * BQ1
The bandwidth for the set of requests with priority 2 and routed to queue 2 is:
• BP2,Q2 = BQ2
The total bandwidth for the set of requests with priority 2 is:
• BP2 = BP2,Q0 + BP2,Q1+ BP2,Q2
The bandwidth for each request k with priority 2 is:
• Bk = BP2 / K (K>0 in the general case)
Thus finally the maximum allocated residual bandwidths for any i, j, k non-time sensitive
request are:
• in the general case (when there is at least one request k with a priority 2 (K > 0)):
– Bi = 1/I * 1/3 * I/(I + J + K) * (1 - BQ3)
– Bj = 1/J * 1/3 *[J/(I + J + K) + J/(J + K)] * (1 - BQ3)
– Bk = 1/K * 1/3 *[K/(I + J + K) + K/(J + K) + 1] * (1 - BQ3)
• in the specific case (when there is no request k with a priority 2 (K = 0)):
– Bi = 1/I * 1/2 * I/(I + J) * (1 - BQ3)
– Bj = 1/J * 1/2 *[J/(I + J) + 1] * (1 - BQ3)
Consequently, the GPDMA arbiter can be used as a programmable weighted bandwidth
limiter, for each queue and more generally for each request/channel. The different weights
are monotonically resulting from the programmed channel priorities.
Trigger
Peripheral
request
Trigger monitoring
Idle Active (monitoring) Active Active Active Active Active Active
state
Trigger monitoring Hit and Hit and Fire Hit and Hit and Fire
action fire memorize memorize trash
Trigger overrun
Hit and trash Hit and fire (or fire alone) Hit and memorize
MSv66923V1
Note: The user can assign the same input trigger event to different channels. This can be used to
trigger different channels on a broadcast trigger event.
Figure 111. GPDMA circular buffer programming: update of the memory start address
with a linear addressing channel
Req=PERIPH_TX Req=PERIPH_TX
Reset
Restore
Init/LLI0
SAR/LLI1
Channel x
Ht+ tcf Ht+ tcf
LLI0
DMA_CxTR1 Memory
CxLBA (LA = 0)
DMA_CxTR2 USA = 1
LLI1
DMA_CxBR1 others Uxx = 0
DMA_CxSAR
DMA_CxSAR
DMA_CxDAR
DMA_CxLLR
MSv62640V1
Note: With a 2D addressing channel, the user may use a single LLI with
GPDMA_CxBR1.BRC[10:0] = 1, and program a negative memory block address offset with
GDMA_CxBR2 and GDMA_CxBR1, in order to jump back to the memory source or the
destination start address.
If circular buffering must be executed after some other transfers over the shared GPDMA
channel x, the before-last LLIN-1 in memory is needed to configure the first block transfer.
And the last LLIN restores the memory source (or destination) start address in
memory-to-peripheral transfer (respectively in peripheral-to-memory transfer).
Figure 112 illustrates this programming with a linear addressing shared GPDMA channel,
and a source circular buffer.
Figure 112. Shared GPDMA channel with circular buffering: update of the memory
start address with a linear addressing channel
Req=PERIPH_TX Req=PERIPH_TX
Reset
Init/LLI0 LLI1 ... LLIN-1 LLIN
Memory
LLIN-2 LLIN-1
All Uxx=1
DMA_Cx... DMA_CxTR1
DMA_Cx... DMA_CxTR2
DMA_Cx... DMA_CxBR1
Sleep No effect. GPDMA interrupts cause the device to exit Sleep mode.
Stop(1) The content of the GPDMA registers is kept when entering Stop mode.
Standby The GPDMA is powered down and must be reinitialized after exiting Standby mode.
1. Refer to Section 19.3.2 to know if any Stop mode is supported.
Transfer
GPDMA_CxCR.TCIE GPDMA_CxSR.TCF Write 1 to GPDMA_CxFCR.TCF
complete
Half transfer GPDMA_CxCR.HTIE GPDMA_CxSR.HTF Write 1 to GPDMA_CxFCR.HTF
Data transfer
GPDMA_CxCR.DTEIE GPDMA_CxSR.DTEF Write 1 to GPDMA_CxFCR.DTEF
error
GPDMA_CHx
Update link
GPDMA_CxCR.ULEIE GPDMA_CxSR.ULEF Write 1 to GPDMA_CxFCR.ULEF
error
User setting
GPDMA_CxCR.USEIE GPDMA_CxSR.USEF Write 1 to GPDMA_CxFCR.USEF
error
Suspended GPDMA_CxCR.SUSPIE GPDMA_CxSR.SUSPF Write 1 to GPDMA_CxFCR.SUSPF
Trigger
GPDMA_CxCR.TOFIE GPDMA_CxSR.TOF Write 1 to GPDMA_CxFCR.TOF
overrun
• A half transfer event is an half block transfer or a half 2D/repeated block transfer,
depending on the transfer complete event mode GPDMA_CxTR2.TCEM[1:0].
A half-block transfer occurs when half of the source block size bytes (rounded-up
integer of GPDMA_CxBR1.BNDT[15:0] / 2) is transferred to the destination.
A half 2D/repeated block transfer occurs when half of the repeated blocks (rounded-up
integer of (GPDMA_CxBR1.BRC[10:0] + 1) / 2) is transferred to the destination.
See GPDMA channel x transfer register 2 (GPDMA_CxTR2) for more details.
A transfer error rises in one of the following situations:
• during a single/burst data transfer from the source or to the destination (DTEF)
• during an update of a GPDMA channel register from the programmed LLI in memory
(ULEF)
• during a tentative execution of a GPDMA channel with an unauthorized setting (USEF)
The user must perform a debug session to correct the GPDMA channel programming
versus the USEF root causes list (see Section 19.4.17).
A trigger overrun is described in Trigger hit memorization and trigger overrun flag
generation.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SEC15 SEC14 SEC13 SEC12 SEC11 SEC10 SEC9 SEC8 SEC7 SEC6 SEC5 SEC4 SEC3 SEC2 SEC1 SEC0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
PRIV15 PRIV14 PRIV13 PRIV12 PRIV11 PRIV10 PRIV9 PRIV8 PRIV7 PRIV6 PRIV5 PRIV4 PRIV3 PRIV2 PRIV1 PRIV0
rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
LOCK1 LOCK1 LOCK1 LOCK1 LOCK1 LOCK1
LOCK9 LOCK8 LOCK7 LOCK6 LOCK5 LOCK4 LOCK3 LOCK2 LOCK1 LOCK0
5 4 3 2 1 0
rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs rs
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res. Res.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MIS15 MIS14 MIS13 MIS12 MIS11 MIS10 MIS9 MIS8 MIS7 MIS6 MIS5 MIS4 MIS3 MIS2 MIS1 MIS0
r r r r r r r r r r r r r r r r