April 2018 RM0351 Rev 6 1/1880
1
RM0351
Reference manual
STM32L4x5 and STM32L4x6 advanced Arm
®
-based 32-bit MCUs
Introduction
This reference manual targets application developers. It provides complete information on
how to use the STM32L4x5/STM32L4x6 microcontroller memory and peripherals.
The STM32L4x5/STM32L4x6 is a family of microcontrollers with different memory sizes,
packages and peripherals.
For ordering information, mechanical and electrical device characteristics please refer to the
Related documents
• Cortex
®
-M4 Technical Reference Manual, available from: http://infocenter.arm.com
• STM32L475xx, STM32L476xx, STM32L486xx, STM32L496xx and STM32L4A6xx
datasheets
• STM32F3, STM32F4, STM32L4 and STM32L4+ Series Cortex
®
-M4 (PM0214)
In this document, the term STM32L47xxx excludes STM32L471xx microcontrollers that are
described in a different reference manual.
www.st.com
Contents RM0351
2/1880 RM0351 Rev 6
Contents
1 Documentation conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.1 General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.2 List of abbreviations for registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
1.3 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.4 Availability of peripherals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2 System and memory overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.1 System architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.1.1 S0: I-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1.2 S1: D-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1.3 S2: S-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.1.4 S3, S4: DMA-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.1.5 S5: DMA2D-bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.1.6 BusMatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.2 Memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.2.2 Memory map and register boundary addresses . . . . . . . . . . . . . . . . . . 75
2.3 Bit banding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
2.4 Embedded SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.4.1 SRAM2 parity check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.4.2 SRAM2 Write protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.4.3 SRAM2 Read protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.4.4 SRAM2 Erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.5 Flash memory overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.6 Boot configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.6.1 Boot configuration for STM32L475xx/476xx/486xx devices . . . . . . . . . 91
2.6.2 Boot configuration for STM32L496xx/4A6xx devices . . . . . . . . . . . . . . 93
3 Embedded Flash memory (FLASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.2 FLASH main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.3 FLASH functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3.3.1 Flash memory organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
RM0351 Rev 6 3/1880
RM0351 Contents
48
3.3.2 Error code correction (ECC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3.3 Read access latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.3.4 Adaptive real-time memory accelerator (ART Accelerator™) . . . . . . . 101
3.3.5 Flash program and erase operations . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.3.6 Flash main memory erase sequences . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.3.7 Flash main memory programming sequences . . . . . . . . . . . . . . . . . . . 105
3.3.8 Read-while-write (RWW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.4 FLASH option bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
3.4.1 Option bytes description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.4.2 Option bytes programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.5 FLASH memory protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
3.5.1 Read protection (RDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
3.5.2 Proprietary code readout protection (PCROP) . . . . . . . . . . . . . . . . . . 121
3.5.3 Write protection (WRP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.6 FLASH interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
3.7 FLASH registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
3.7.1 Flash access control register (FLASH_ACR) . . . . . . . . . . . . . . . . . . . 124
3.7.2 Flash Power-down key register (FLASH_PDKEYR) . . . . . . . . . . . . . . 125
3.7.3 Flash key register (FLASH_KEYR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
3.7.4 Flash option key register (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . 126
3.7.5 Flash status register (FLASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
3.7.6 Flash control register (FLASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.7.7 Flash ECC register (FLASH_ECCR) . . . . . . . . . . . . . . . . . . . . . . . . . . 130
3.7.8 Flash option register (FLASH_OPTR) . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.7.9 Flash Bank 1 PCROP Start address register (FLASH_PCROP1SR) . 133
3.7.10 Flash Bank 1 PCROP End address register (FLASH_PCROP1ER) . . 134
3.7.11 Flash Bank 1 WRP area A address register (FLASH_WRP1AR) . . . . 134
3.7.12 Flash Bank 1 WRP area B address register (FLASH_WRP1BR) . . . . 135
3.7.13 Flash Bank 2 PCROP Start address register (FLASH_PCROP2SR) . 135
3.7.14 Flash Bank 2 PCROP End address register (FLASH_PCROP2ER) . . 136
3.7.15 Flash Bank 2 WRP area A address register (FLASH_WRP2AR) . . . . 136
3.7.16 Flash Bank 2 WRP area B address register (FLASH_WRP2BR) . . . . 137
3.7.17 FLASH register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4 Firewall (FW) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Contents RM0351
4/1880 RM0351 Rev 6
4.2 Firewall main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.3 Firewall functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
4.3.1 Firewall AMBA bus snoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
4.3.2 Functional requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
4.3.3 Firewall segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.3.4 Segment accesses and properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4.3.5 Firewall initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.3.6 Firewall states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.4 Firewall registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.4.1 Code segment start address (FW_CSSA) . . . . . . . . . . . . . . . . . . . . . . 147
4.4.2 Code segment length (FW_CSL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.4.3 Non-volatile data segment start address (FW_NVDSSA) . . . . . . . . . . 148
4.4.4 Non-volatile data segment length (FW_NVDSL) . . . . . . . . . . . . . . . . . 148
4.4.5 Volatile data segment start address (FW_VDSSA) . . . . . . . . . . . . . . . 149
4.4.6 Volatile data segment length (FW_VDSL) . . . . . . . . . . . . . . . . . . . . . . 149
4.4.7 Configuration register (FW_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.4.8 Firewall register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5 Power control (PWR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5.1 Power supplies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5.1.1 Independent analog peripherals supply . . . . . . . . . . . . . . . . . . . . . . . . 154
5.1.2 Independent I/O supply rail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.1.3 Independent USB transceivers supply . . . . . . . . . . . . . . . . . . . . . . . . . 155
5.1.4 Independent LCD supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.1.5 Battery backup domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
5.1.6 Voltage regulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.1.7 VDD12 domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.1.8 Dynamic voltage scaling management . . . . . . . . . . . . . . . . . . . . . . . . 159
5.2 Power supply supervisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5.2.1 Power-on reset (POR) / power-down reset (PDR) / brown-out reset
(BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
5.2.2 Programmable voltage detector (PVD) . . . . . . . . . . . . . . . . . . . . . . . . 161
5.2.3 Peripheral Voltage Monitoring (PVM) . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.3 Low-power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
5.3.1 Run mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.3.2 Low-power run mode (LP run) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
5.3.3 Low power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
RM0351 Rev 6 5/1880
RM0351 Contents
48
5.3.4 Sleep mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.3.5 Low-power sleep mode (LP sleep) . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.3.6 Stop 0 mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
5.3.7 Stop 1 mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5.3.8 Stop 2 mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5.3.9 Standby mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
5.3.10 Shutdown mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
5.3.11 Auto-wakeup from low-power mode . . . . . . . . . . . . . . . . . . . . . . . . . . 183
5.4 PWR registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
5.4.1 Power control register 1 (PWR_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . 184
5.4.2 Power control register 2 (PWR_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.4.3 Power control register 3 (PWR_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . 186
5.4.4 Power control register 4 (PWR_CR4) . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.4.5 Power status register 1 (PWR_SR1) . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5.4.6 Power status register 2 (PWR_SR2) . . . . . . . . . . . . . . . . . . . . . . . . . . 189
5.4.7 Power status clear register (PWR_SCR) . . . . . . . . . . . . . . . . . . . . . . . 190
5.4.8 Power Port A pull-up control register (PWR_PUCRA) . . . . . . . . . . . . . 191
5.4.9 Power Port A pull-down control register (PWR_PDCRA) . . . . . . . . . . 192
5.4.10 Power Port B pull-up control register (PWR_PUCRB) . . . . . . . . . . . . . 192
5.4.11 Power Port B pull-down control register (PWR_PDCRB) . . . . . . . . . . 193
5.4.12 Power Port C pull-up control register (PWR_PUCRC) . . . . . . . . . . . . 193
5.4.13 Power Port C pull-down control register (PWR_PDCRC) . . . . . . . . . . 194
5.4.14 Power Port D pull-up control register (PWR_PUCRD) . . . . . . . . . . . . 194
5.4.15 Power Port D pull-down control register (PWR_PDCRD) . . . . . . . . . . 195
5.4.16 Power Port E pull-up control register (PWR_PUCRE) . . . . . . . . . . . . . 195
5.4.17 Power Port E pull-down control register (PWR_PDCRE) . . . . . . . . . . 196
5.4.18 Power Port F pull-up control register (PWR_PUCRF) . . . . . . . . . . . . . 196
5.4.19 Power Port F pull-down control register (PWR_PDCRF) . . . . . . . . . . 197
5.4.20 Power Port G pull-up control register (PWR_PUCRG) . . . . . . . . . . . . 197
5.4.21 Power Port G pull-down control register (PWR_PDCRG) . . . . . . . . . . 198
5.4.22 Power Port H pull-up control register (PWR_PUCRH) . . . . . . . . . . . . 198
5.4.23 Power Port H pull-down control register (PWR_PDCRH) . . . . . . . . . . 199
5.4.24 Power Port I pull-up control register (PWR_PUCRI) . . . . . . . . . . . . . . 199
5.4.25 Power Port I pull-down control register (PWR_PDCRI) . . . . . . . . . . . . 200
5.4.26 PWR register map and reset value table . . . . . . . . . . . . . . . . . . . . . . . 201
6 Reset and clock control (RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203