RM0383-STM32F411xC-E

This Reference manual targets application developers. It provides complete information on how to use the memory and the peripherals of the STM32F411xC/E microcontroller.

STM32F411xC/E is part of the family of microcontrollers with different memory sizes, packages and peripherals.

For ordering information, mechanical and electrical device characteristics refer to the datasheets.

For information on the Arm ® Cortex ® -M4 with FPU core, refer to the Cortex ® -M4 with FPU Technical Reference Manual .

STM32F411xx microcontrollers include ST state-of-the-art patented technology.

Available from STMicroelectronics web site ( http://www.st.com ):

For information on the Arm ® -M4 core with FPU, refer to the STM32F3 Series, STM32F4 Series, STM32L4 Series and STM32L4+ Series Cortex ® -M4 programming manual (PM0214) .

Contents

3.5.5Interrupts .....51
3.6Option bytes .....51
3.6.1Description of user option bytes .....51
3.6.2Programming user option bytes .....53
3.6.3Read protection (RDP) .....53
3.6.4Write protections .....55
3.6.5Proprietary code readout protection (PCROP) .....56
3.7One-time programmable bytes .....58
3.8Flash interface registers .....59
3.8.1Flash access control register (FLASH_ACR) .....59
3.8.2Flash key register (FLASH_KEYR) .....60
3.8.3Flash option key register (FLASH_OPTKEYR) .....60
3.8.4Flash status register (FLASH_SR) .....61
3.8.5Flash control register (FLASH_CR) .....62
3.8.6Flash option control register (FLASH_OPTCR) .....63
3.8.7Flash interface register map .....66
4CRC calculation unit .....67
4.1CRC introduction .....67
4.2CRC main features .....67
4.3CRC functional description .....67
4.4CRC registers .....68
4.4.1Data register (CRC_DR) .....68
4.4.2Independent data register (CRC_IDR) .....68
4.4.3Control register (CRC_CR) .....69
4.4.4CRC register map .....69
5Power controller (PWR) .....70
5.1Power supplies .....70
5.1.1Independent A/D converter supply and reference voltage .....71
5.1.2Battery backup domain .....71
5.1.3Voltage regulator .....72
5.2Power supply supervisor .....73
5.2.1Power-on reset (POR)/power-down reset (PDR) .....73
5.2.2Brownout reset (BOR) .....74
5.2.3Programmable voltage detector (PVD) .....75

6 Reset and clock control (RCC) for STM32F411xC/E . . . . . 91

6.3.7RCC APB1 peripheral reset register for (RCC_APB1RSTR) . . . . .114
6.3.8RCC APB2 peripheral reset register (RCC_APB2RSTR) . . . . .116
6.3.9RCC AHB1 peripheral clock enable register (RCC_AHB1ENR) . . . . .118
6.3.10RCC AHB2 peripheral clock enable register (RCC_AHB2ENR) . . . . .119
6.3.11RCC APB1 peripheral clock enable register (RCC_APB1ENR) . . . . .119
6.3.12RCC APB2 peripheral clock enable register
(RCC_APB2ENR) . . . . .
122
6.3.13RCC AHB1 peripheral clock enable in low power mode register
(RCC_AHB1LPENR) . . . . .
124
6.3.14RCC AHB2 peripheral clock enable in low power mode register
(RCC_AHB2LPENR) . . . . .
125
6.3.15RCC APB1 peripheral clock enable in low power mode register
(RCC_APB1LPENR) . . . . .
126
6.3.16RCC APB2 peripheral clock enabled in low power mode register
(RCC_APB2LPENR) . . . . .
128
6.3.17RCC Backup domain control register (RCC_BDCR) . . . . .130
6.3.18RCC clock control & status register (RCC_CSR) . . . . .131
6.3.19RCC spread spectrum clock generation register (RCC_SSCGR) . . . . .133
6.3.20RCC PLLI2S configuration register (RCC_PLLI2SCFGR) . . . . .134
6.3.21RCC Dedicated Clocks Configuration Register (RCC_DCKCFGR) . . . . .136
6.3.22RCC register map . . . . .137
7System configuration controller (SYSCFG) . . . . .140
7.1I/O compensation cell . . . . .140
7.2SYSCFG registers . . . . .140
7.2.1SYSCFG memory remap register (SYSCFG_MEMRMP) . . . . .140
7.2.2SYSCFG peripheral mode configuration register (SYSCFG_PMC) . . . . .141
7.2.3SYSCFG external interrupt configuration register 1
(SYSCFG_EXTICR1) . . . . .
142
7.2.4SYSCFG external interrupt configuration register 2
(SYSCFG_EXTICR2) . . . . .
142
7.2.5SYSCFG external interrupt configuration register 3
(SYSCFG_EXTICR3) . . . . .
143
7.2.6SYSCFG external interrupt configuration register 4
(SYSCFG_EXTICR4) . . . . .
143
7.2.7Compensation cell control register (SYSCFG_CMPCR) . . . . .144
7.2.8SYSCFG register map . . . . .145
8General-purpose I/Os (GPIO) . . . . .146
8.1GPIO introduction . . . . .146
9.2DMA main features . . . . .166
9.3DMA functional description . . . . .168
9.3.1General description . . . . .168
9.3.2DMA transactions . . . . .169
9.3.3Channel selection . . . . .170
9.3.4Arbiter . . . . .171
9.3.5DMA streams . . . . .172
9.3.6Source, destination and transfer modes . . . . .172
9.3.7Pointer incrementation . . . . .175
9.3.8Circular mode . . . . .176
9.3.9Double buffer mode . . . . .176
9.3.10Programmable data width, packing/unpacking, endianness . . . . .177
9.3.11Single and burst transfers . . . . .179
9.3.12FIFO . . . . .180
9.3.13DMA transfer completion . . . . .182
9.3.14DMA transfer suspension . . . . .183
9.3.15Flow controller . . . . .183
9.3.16Summary of the possible DMA configurations . . . . .185
9.3.17Stream configuration procedure . . . . .185
9.3.18Error management . . . . .186
9.4DMA interrupts . . . . .187
9.5DMA registers . . . . .188
9.5.1DMA low interrupt status register (DMA_LISR) . . . . .188
9.5.2DMA high interrupt status register (DMA_HISR) . . . . .189
9.5.3DMA low interrupt flag clear register (DMA_LIFCR) . . . . .190
9.5.4DMA high interrupt flag clear register (DMA_HIFCR) . . . . .190
9.5.5DMA stream x configuration register (DMA_SxCR) (x = 0..7) . . . . .191
9.5.6DMA stream x number of data register (DMA_SxNDTR) (x = 0..7) . . . . .194
9.5.7DMA stream x peripheral address register (DMA_SxPAR) (x = 0..7) . . . . .194
9.5.8DMA stream x memory 0 address register (DMA_SxM0AR) (x = 0..7) . . . . .195
9.5.9DMA stream x memory 1 address register (DMA_SxM1AR) (x = 0..7) . . . . .195
9.5.10DMA stream x FIFO control register (DMA_SxFCR) (x = 0..7) . . . . .196
9.5.11DMA register map . . . . .198
10Interrupts and events . . . . .202
10.1Nested vectored interrupt controller (NVIC) . . . . .202
10.1.1NVIC features . . . . .202

11.8.1Using the DMA . . . . .225
11.8.2Managing a sequence of conversions without using the DMA . . . . .225
11.8.3Conversions without DMA and without overrun detection . . . . .226
11.9Temperature sensor . . . . .226
11.10Battery charge monitoring . . . . .227
11.11ADC interrupts . . . . .228
11.12ADC registers . . . . .229
11.12.1ADC status register (ADC_SR) . . . . .229
11.12.2ADC control register 1 (ADC_CR1) . . . . .230
11.12.3ADC control register 2 (ADC_CR2) . . . . .232
11.12.4ADC sample time register 1 (ADC_SMPR1) . . . . .234
11.12.5ADC sample time register 2 (ADC_SMPR2) . . . . .234
11.12.6ADC injected channel data offset register x (ADC_JOFRx) (x=1..4) . . . . .235
11.12.7ADC watchdog higher threshold register (ADC_HTR) . . . . .235
11.12.8ADC watchdog lower threshold register (ADC_LTR) . . . . .236
11.12.9ADC regular sequence register 1 (ADC_SQR1) . . . . .236
11.12.10ADC regular sequence register 2 (ADC_SQR2) . . . . .237
11.12.11ADC regular sequence register 3 (ADC_SQR3) . . . . .237
11.12.12ADC injected sequence register (ADC_JSQR) . . . . .238
11.12.13ADC injected data register x (ADC_JDRx) (x= 1..4) . . . . .239
11.12.14ADC regular data register (ADC_DR) . . . . .239
11.12.15ADC common control register (ADC_CCR) . . . . .239
11.12.16ADC register map . . . . .240
12Advanced-control timer (TIM1) . . . . .243
12.1TIM1 introduction . . . . .243
12.2TIM1 main features . . . . .243
12.3TIM1 functional description . . . . .245
12.3.1Time-base unit . . . . .245
12.3.2Counter modes . . . . .247
12.3.3Repetition counter . . . . .256
12.3.4Clock selection . . . . .258
12.3.5Capture/compare channels . . . . .261
12.3.6Input capture mode . . . . .264
12.3.7PWM input mode . . . . .265
12.3.8Forced output mode . . . . .265

13 General-purpose timers (TIM2 to TIM5) . . . . . 313

ST logo
ST logo
13.1TIM2 to TIM5 introduction . . . . .313
13.2TIM2 to TIM5 main features . . . . .313
13.3TIM2 to TIM5 functional description . . . . .314
13.3.1Time-base unit . . . . .314
13.3.2Counter modes . . . . .316
13.3.3Clock selection . . . . .325
13.3.4Capture/compare channels . . . . .328
13.3.5Input capture mode . . . . .330
13.3.6PWM input mode . . . . .331
13.3.7Forced output mode . . . . .332
13.3.8Output compare mode . . . . .332
13.3.9PWM mode . . . . .333
13.3.10One-pulse mode . . . . .336
13.3.11Clearing the OCxREF signal on an external event . . . . .337
13.3.12Encoder interface mode . . . . .338
13.3.13Timer input XOR function . . . . .341
13.3.14Timers and external trigger synchronization . . . . .341
13.3.15Timer synchronization . . . . .344
13.3.16Debug mode . . . . .349
13.4TIM2 to TIM5 registers . . . . .350
13.4.1TIMx control register 1 (TIMx_CR1) . . . . .350
13.4.2TIMx control register 2 (TIMx_CR2) . . . . .351
13.4.3TIMx slave mode control register (TIMx_SMCR) . . . . .352
13.4.4TIMx DMA/Interrupt enable register (TIMx_DIER) . . . . .355
13.4.5TIMx status register (TIMx_SR) . . . . .356
13.4.6TIMx event generation register (TIMx_EGR) . . . . .357
13.4.7TIMx capture/compare mode register 1 (TIMx_CCMR1) . . . . .358
13.4.8TIMx capture/compare mode register 2 (TIMx_CCMR2) . . . . .361
13.4.9TIMx capture/compare enable register (TIMx_CCER) . . . . .362
13.4.10TIMx counter (TIMx_CNT) . . . . .364
13.4.11TIMx prescaler (TIMx_PSC) . . . . .364
13.4.12TIMx auto-reload register (TIMx_ARR) . . . . .364
13.4.13TIMx capture/compare register 1 (TIMx_CCR1) . . . . .365
13.4.14TIMx capture/compare register 2 (TIMx_CCR2) . . . . .365
13.4.15TIMx capture/compare register 3 (TIMx_CCR3) . . . . .366
13.4.16TIMx capture/compare register 4 (TIMx_CCR4) . . . . .366
13.4.17TIMx DMA control register (TIMx_DCR) . . . . .367
14.4.13TIM9 register map .....406
14.5TIM10/11 registers .....408
14.5.1TIM10/11 control register 1 (TIMx_CR1) .....408
14.5.2TIM10/11 Interrupt enable register (TIMx_DIER) .....409
14.5.3TIM status register (TIMx_SR) .....409
14.5.4TIM event generation register (TIMx_EGR) .....410
14.5.5TIM10/11 capture/compare mode register 1 (TIMx_CCMR1) .....410
14.5.6TIM10/11 capture/compare enable register (TIMx_CCER) .....413
14.5.7TIM10/11 counter (TIMx_CNT) .....414
14.5.8TIM10/11 prescaler (TIMx_PSC) .....414
14.5.9TIM10/11 auto-reload register (TIMx_ARR) .....414
14.5.10TIM10/11 capture/compare register 1 (TIMx_CCR1) .....415
14.5.11TIM11 option register 1 (TIM11_OR) .....415
14.5.12TIM10/11 register map .....416
15Independent watchdog (IWDG) .....418
15.1IWDG introduction .....418
15.2IWDG main features .....418
15.3IWDG functional description .....418
15.3.1Hardware watchdog .....418
15.3.2Register access protection .....418
15.3.3Debug mode .....419
15.4IWDG registers .....420
15.4.1Key register (IWDG_KR) .....420
15.4.2Prescaler register (IWDG_PR) .....420
15.4.3Reload register (IWDG_RLR) .....421
15.4.4Status register (IWDG_SR) .....421
15.4.5IWDG register map .....422
16Window watchdog (WWDG) .....423
16.1WWDG introduction .....423
16.2WWDG main features .....423
16.3WWDG functional description .....423
16.4How to program the watchdog timeout .....425
16.5Debug mode .....426
16.6WWDG registers .....427
17.6.10RTC write protection register (RTC_WPR) . . . . .458
17.6.11RTC sub second register (RTC_SSR) . . . . .458
17.6.12RTC shift control register (RTC_SHIFTR) . . . . .459
17.6.13RTC time stamp time register (RTC_TSTR) . . . . .459
17.6.14RTC time stamp date register (RTC_TSDR) . . . . .460
17.6.15RTC timestamp sub second register (RTC_TSSSR) . . . . .461
17.6.16RTC calibration register (RTC_CALR) . . . . .461
17.6.17RTC tamper and alternate function configuration register
(RTC_TAFCR) . . . . .
463
17.6.18RTC alarm A sub second register (RTC_ALRMASSR) . . . . .464
17.6.19RTC alarm B sub second register (RTC_ALRMBSSR) . . . . .465
17.6.20RTC backup registers (RTC_BKPxR) . . . . .467
17.6.21RTC register map . . . . .467
18Inter-integrated circuit (I2C) interface . . . . .470
18.1I 2 C introduction . . . . .470
18.2I 2 C main features . . . . .470
18.3I 2 C functional description . . . . .471
18.3.1Mode selection . . . . .471
18.3.2I2C target mode . . . . .473
18.3.3I2C controller mode . . . . .475
18.3.4Error conditions . . . . .480
18.3.5Programmable noise filter . . . . .481
18.3.6SDA/SCL line control . . . . .482
18.3.7SMBus . . . . .482
18.3.8DMA requests . . . . .485
18.3.9Packet error checking . . . . .486
18.4I 2 C interrupts . . . . .487
18.5I 2 C debug mode . . . . .489
18.6I 2 C registers . . . . .489
18.6.1I 2 C Control register 1 (I2C_CR1) . . . . .489
18.6.2I 2 C Control register 2 (I2C_CR2) . . . . .491
18.6.3I 2 C Own address register 1 (I2C_OAR1) . . . . .493
18.6.4I 2 C Own address register 2 (I2C_OAR2) . . . . .493
18.6.5I 2 C Data register (I2C_DR) . . . . .494
18.6.6I 2 C Status register 1 (I2C_SR1) . . . . .494
18.6.7I 2 C Status register 2 (I2C_SR2) . . . . .497

19 Universal synchronous asynchronous receiver transmitter (USART) . . . . . 502

20 Serial peripheral interface (SPI) . . . . . 555

20.1SPI introduction . . . . .555
20.2SPI and I 2 S main features . . . . .556
20.2.1SPI features . . . . .556
20.2.2I 2 S features . . . . .556
20.3SPI functional description . . . . .558
20.3.1General description . . . . .558
20.3.2Configuring the SPI in slave mode . . . . .562
20.3.3Configuring the SPI in master mode . . . . .564
20.3.4Configuring the SPI for half-duplex communication . . . . .566
20.3.5Data transmission and reception procedures . . . . .567
20.3.6CRC calculation . . . . .573
20.3.7Status flags . . . . .574
20.3.8Disabling the SPI . . . . .575
20.3.9SPI communication using DMA (direct memory addressing) . . . . .576
20.3.10Error flags . . . . .578
20.3.11SPI interrupts . . . . .580
20.4I 2 S functional description . . . . .581
20.4.1I 2 S general description . . . . .581
20.4.2I 2 S full duplex . . . . .582
20.4.3Supported audio protocols . . . . .583
20.4.4Clock generator . . . . .589
20.4.5I 2 S master mode . . . . .591
20.4.6I 2 S slave mode . . . . .593
20.4.7Status flags . . . . .595
20.4.8Error flags . . . . .596
20.4.9I 2 S interrupts . . . . .597
20.4.10DMA features . . . . .597
20.5SPI and I 2 S registers . . . . .598
20.5.1SPI control register 1 (SPI_CR1)(not used in I 2 S mode) . . . . .598
20.5.2SPI control register 2 (SPI_CR2) . . . . .600
20.5.3SPI status register (SPI_SR) . . . . .601
20.5.4SPI data register (SPI_DR) . . . . .602
20.5.5SPI CRC polynomial register (SPI_CRCPR)(not used in I 2 S mode) . . . . .603
20.5.6SPI RX CRC register (SPI_RXCRCR)(not used in I 2 S mode) . . . . .603
20.5.7SPI TX CRC register (SPI_TXCRCR)(not used in I 2 S mode) . . . . .603
20.5.8SPI_I 2 S configuration register (SPI_I2SCFGR) . . . . .604
20.5.9SPI_I 2 S prescaler register (SPI_I2SPR) .....605
20.5.10SPI register map .....607
21Secure digital input/output interface (SDIO) .....608
21.1SDIO main features .....608
21.2SDIO bus topology .....608
21.3SDIO functional description .....610
21.3.1SDIO adapter .....612
21.3.2SDIO APB2 interface .....622
21.4Card functional description .....623
21.4.1Card identification mode .....623
21.4.2Card reset .....623
21.4.3Operating voltage range validation .....623
21.4.4Card identification process .....624
21.4.5Block write .....625
21.4.6Block read .....625
21.4.7Stream access, stream write and stream read (MultiMediaCard only) .....626
21.4.8Erase: group erase and sector erase .....627
21.4.9Wide bus selection or deselection .....628
21.4.10Protection management .....628
21.4.11Card status register .....631
21.4.12SD status register .....634
21.4.13SD I/O mode .....638
21.4.14Commands and responses .....639
21.5Response formats .....642
21.5.1R1 (normal response command) .....643
21.5.2R1b .....643
21.5.3R2 (CID, CSD register) .....643
21.5.4R3 (OCR register) .....643
21.5.5R4 (Fast I/O) .....644
21.5.6R4b .....644
21.5.7R5 (interrupt request) .....645
21.5.8R6 .....645
21.6SDIO I/O card-specific operations .....646
21.6.1SDIO I/O read wait operation by SDIO_D2 signaling .....646
21.6.2SDIO read wait operation by stopping SDIO_CK .....646
21.6.3SDIO suspend/resume operation . . . . .647
21.6.4SDIO interrupts . . . . .647
21.7CE-ATA specific operations . . . . .647
21.7.1Command completion signal disable . . . . .647
21.7.2Command completion signal enable . . . . .647
21.7.3CE-ATA interrupt . . . . .648
21.7.4Aborting CMD61 . . . . .648
21.8HW flow control . . . . .648
21.9SDIO registers . . . . .648
21.9.1SDIO power control register (SDIO_POWER) . . . . .648
21.9.2SDI clock control register (SDIO_CLKCR) . . . . .649
21.9.3SDIO argument register (SDIO_ARG) . . . . .650
21.9.4SDIO command register (SDIO_CMD) . . . . .650
21.9.5SDIO command response register (SDIO_RESPCMD) . . . . .651
21.9.6SDIO response 1..4 register (SDIO_RESPx) . . . . .652
21.9.7SDIO data timer register (SDIO_DTIMER) . . . . .652
21.9.8SDIO data length register (SDIO_DLEN) . . . . .653
21.9.9SDIO data control register (SDIO_DCTRL) . . . . .654
21.9.10SDIO data counter register (SDIO_DCOUNT) . . . . .655
21.9.11SDIO status register (SDIO_STA) . . . . .655
21.9.12SDIO interrupt clear register (SDIO_ICR) . . . . .657
21.9.13SDIO mask register (SDIO_MASK) . . . . .658
21.9.14SDIO FIFO counter register (SDIO_FIFOCNT) . . . . .661
21.9.15SDIO data FIFO register (SDIO_FIFO) . . . . .661
21.9.16SDIO register map . . . . .662
22USB on-the-go full-speed (OTG_FS) . . . . .663
22.1OTG_FS introduction . . . . .663
22.2OTG_FS main features . . . . .664
22.2.1General features . . . . .664
22.2.2Host-mode features . . . . .665
22.2.3Peripheral-mode features . . . . .665
22.3OTG_FS functional description . . . . .666
22.3.1OTG pins . . . . .666
22.3.2OTG full-speed core . . . . .666
22.3.3Full-speed OTG PHY . . . . .667
22.16.5OTG_FS power and clock gating control register (OTG_FS_PCGCTL) . . . . .748
22.16.6OTG_FS register map . . . . .749
22.17OTG_FS programming model . . . . .758
22.17.1Core initialization . . . . .758
22.17.2Host initialization . . . . .759
22.17.3Device initialization . . . . .759
22.17.4Host programming model . . . . .760
22.17.5Device programming model . . . . .776
22.17.6Operational model . . . . .778
22.17.7Worst case response time . . . . .796
22.17.8OTG programming model . . . . .797
23Debug support (DBG) . . . . .804
23.1Overview . . . . .804
23.2Reference Arm® documentation . . . . .805
23.3SWJ debug port (serial wire and JTAG) . . . . .805
23.3.1Mechanism to select the JTAG-DP or the SW-DP . . . . .806
23.4Pinout and debug port pins . . . . .806
23.4.1SWJ debug port pins . . . . .807
23.4.2Flexible SWJ-DP pin assignment . . . . .807
23.4.3Internal pull-up and pull-down on JTAG pins . . . . .807
23.4.4Using serial wire and releasing the unused debug pins as GPIOs . . . . .808
23.5STM32F411xC/E JTAG TAP connection . . . . .808
23.6ID codes and locking mechanism . . . . .809
23.6.1MCU device ID code . . . . .809
23.6.2Boundary scan TAP . . . . .810
23.6.3Cortex®-M4 with FPU TAP . . . . .810
23.6.4Cortex®-M4 with FPU JEDEC-106 ID code . . . . .810
23.7JTAG debug port . . . . .810
23.8SW debug port . . . . .812
23.8.1SW protocol introduction . . . . .812
23.8.2SW protocol sequence . . . . .812
23.8.3SW-DP state machine (reset, idle states, ID code) . . . . .813
23.8.4DP and AP read/write accesses . . . . .814
23.8.5SW-DP registers . . . . .814
23.8.6SW-AP registers . . . . .815
23.9AHB-AP (AHB access port) - valid for both JTAG-DP and SW-DP . . . . .815
23.10Core debug . . . . .816
23.11Capability of the debugger host to connect under system reset . . . . .817
23.12FPB (Flash patch breakpoint) . . . . .817
23.13DWT (data watchpoint trigger) . . . . .818
23.14ITM (instrumentation trace macrocell) . . . . .818
23.14.1General description . . . . .818
23.14.2Time stamp packets, synchronization and overflow packets . . . . .818
23.15ETM (Embedded Trace Macrocell™) . . . . .820
23.15.1ETM general description . . . . .820
23.15.2ETM signal protocol and packet types . . . . .820
23.15.3Main ETM registers . . . . .821
23.15.4ETM configuration example . . . . .821
23.16MCU debug component (DBGMCU) . . . . .821
23.16.1Debug support for low-power modes . . . . .821
23.16.2Debug support for timers, watchdog and I 2 C . . . . .822
23.16.3Debug MCU configuration register . . . . .822
23.16.4Debug MCU APB1 freeze register (DBGMCU_APB1_FZ) . . . . .824
23.16.5Debug MCU APB2 Freeze register (DBGMCU_APB2_FZ) . . . . .825
23.17TPIU (trace port interface unit) . . . . .826
23.17.1Introduction . . . . .826
23.17.2TRACE pin assignment . . . . .827
23.17.3TPUI formatter . . . . .828
23.17.4TPUI frame synchronization packets . . . . .829
23.17.5Transmission of the synchronization frame packet . . . . .829
23.17.6Synchronous mode . . . . .829
23.17.7Asynchronous mode . . . . .830
23.17.8TRACECLKIN connection inside the STM32F411xC/E . . . . .830
23.17.9TPIU registers . . . . .830
23.17.10Example of configuration . . . . .831
23.18DBG register map . . . . .832
24Device electronic signature . . . . .833
24.1Unique device ID register (96 bits) . . . . .833

24.2 Flash size . . . . . 834

25 Important security notice . . . . . 835

26 Revision history . . . . . 836

List of tables

Table 1. STM32F411xC/E register boundary addresses . . . . . 38

Table 2. Boot modes. . . . . 41

Table 3. Memory mapping vs. Boot mode/physical remap in STM32F411xC/E. . . . . 42

Table 4. Flash module organization (STM32F411xC/E). . . . . 44

Table 5. Number of wait states according to CPU clock (HCLK) frequency. . . . . 45

Table 6. Maximum program/erase parallelism . . . . . 49

Table 7. Flash interrupt request . . . . . 51

Table 8. Option byte organization. . . . . 51

Table 9. Description of the option bytes . . . . . 52

Table 10. Access versus read protection level . . . . . 54

Table 11. OTP area organization . . . . . 58

Table 12. Flash register map and reset values . . . . . 66

Table 13. CRC calculation unit register map and reset values. . . . . 69

Table 14. Low-power mode summary . . . . . 77

Table 15. Sleep-now entry and exit . . . . . 78

Table 16. Sleep-on-exit entry and exit . . . . . 78

Table 17. Stop operating modes. . . . . 79

Table 18. Stop mode entry and exit . . . . . 81

Table 19. Standby mode entry and exit . . . . . 82

Table 20. PWR - register map and reset values. . . . . 89

Table 21. RCC register map and reset values for STM32F411xC/E . . . . . 137

Table 22. SYSCFG register map and reset values . . . . . 145

Table 23. Port bit configuration table . . . . . 147

Table 24. Flexible SWJ-DP pin assignment . . . . . 150

Table 25. RTC additional functions. . . . . 157

Table 26. GPIO register map and reset values . . . . . 164

Table 27. DMA1 request mapping (STM32F411xC/E). . . . . 171

Table 28. DMA2 request mapping (STM32F411xC/E). . . . . 171

Table 29. Source and destination address . . . . . 172

Table 30. Source and destination address registers in Double buffer mode (DBM=1). . . . . 177

Table 31. Packing/unpacking & endian behavior (bit PINC = MINC = 1) . . . . . 178

Table 32. Restriction on NDT versus PSIZE and MSIZE . . . . . 179

Table 33. FIFO threshold configurations . . . . . 181

Table 34. Possible DMA configurations . . . . . 185

Table 35. DMA interrupt requests. . . . . 187

Table 36. DMA register map and reset values . . . . . 198

Table 37. Vector table for STM32F411xC/E . . . . . 203

Table 38. External interrupt/event controller register map and reset values. . . . . 212

Table 39. ADC pins. . . . . 215

Table 40. Analog watchdog channel selection . . . . . 218

Table 41. Configuring the trigger polarity . . . . . 222

Table 42. External trigger for regular channels. . . . . 223

Table 43. External trigger for injected channels . . . . . 224

Table 44. ADC interrupts . . . . . 228

Table 45. ADC global register map. . . . . 240

Table 46. ADC register map and reset values for each ADC . . . . . 241

Table 47. ADC register map and reset values (common ADC registers). . . . . 242

Table 48. Counting direction versus encoder signals. . . . . 279

ST logo
ST logo
Table 49.TIMx Internal trigger connection . . . . .292
Table 50.Output control bits for complementary OCx and OCxN channels with break feature . . . . .303
Table 51.TIM1 register map and reset values . . . . .311
Table 52.Counting direction versus encoder signals . . . . .339
Table 53.TIMx internal trigger connection . . . . .354
Table 54.Output control bit for standard OCx channels . . . . .363
Table 55.TIM2 to TIM5 register map and reset values . . . . .370
Table 56.TIMx internal trigger connection . . . . .396
Table 57.Output control bit for standard OCx channels . . . . .404
Table 58.TIM9 register map and reset values . . . . .406
Table 59.Output control bit for standard OCx channels . . . . .413
Table 60.TIM10/11 register map and reset values . . . . .416
Table 61.Min/max IWDG timeout period (in ms) at 32 kHz (LSI) . . . . .419
Table 62.IWDG register map and reset values . . . . .422
Table 63.Minimum and maximum timeout values at 30 MHz (f PCLK1 ) . . . . .426
Table 64.WWDG register map and reset values . . . . .429
Table 65.Effect of low-power modes on RTC . . . . .445
Table 66.Interrupt control bits . . . . .446
Table 67.RTC register map and reset values . . . . .467
Table 68.Maximum DNF[3:0] value to be compliant with Thd:dat(max) . . . . .481
Table 69.SMBus vs. I2C . . . . .483
Table 70.I2C Interrupt requests . . . . .487
Table 71.I2C register map and reset values . . . . .501
Table 72.Noise detection from sampled data . . . . .514
Table 73.Error calculation for programmed baud rates at f PCLK = 8 MHz or f PCLK = 12 MHz, oversampling by 16. . . . .517
Table 74.Error calculation for programmed baud rates at f PCLK = 8 MHz or f PCLK = 12 MHz, oversampling by 8. . . . .518
Table 75.Error calculation for programmed baud rates at f PCLK = 16 MHz or f PCLK = 24 MHz, oversampling by 16. . . . .518
Table 76.Error calculation for programmed baud rates at f PCLK = 16 MHz or f PCLK = 24 MHz, oversampling by 8. . . . .519
Table 77.Error calculation for programmed baud rates at f PCLK = 8 MHz or f PCLK = 16 MHz, oversampling by 16. . . . .520
Table 78.Error calculation for programmed baud rates at f PCLK = 8 MHz or f PCLK = 16 MHz, oversampling by 8. . . . .520
Table 79.Error calculation for programmed baud rates at f PCLK = 30 MHz or f PCLK = 60 MHz, oversampling by 16. . . . .521
Table 80.Error calculation for programmed baud rates at f PCLK = 30 MHz or f PCLK = 60 MHz, oversampling by 8 . . . . .522
Table 81.Error calculation for programmed baud rates at f PCLK = 42 MHz or f PCLK = 84 MHz, oversampling by 16. . . . .523
Table 82.Error calculation for programmed baud rates at f PCLK = 42 MHz or f PCLK = 84 MHz, oversampling by 8. . . . .524
Table 83.USART receiver's tolerance when DIV fraction is 0 . . . . .525
Table 84.USART receiver tolerance when DIV_Fraction is different from 0 . . . . .526
Table 85.Frame formats . . . . .528
Table 86.USART interrupt requests. . . . .543
Table 87.USART mode configuration . . . . .544
Table 88.USART register map and reset values . . . . .554
Table 89.SPI interrupt requests . . . . .580
Table 90.Audio frequency precision (for PLLM VCO = 1 MHz or 2 MHz) . . . . .591
Table 91.I 2 S interrupt requests . . . . .597
Table 92.SPI register map and reset values . . . . .607
Table 93.SDIO I/O definitions . . . . .611
Table 94.Command format . . . . .616
Table 95.Short response format . . . . .617
Table 96.Long response format . . . . .617
Table 97.Command path status flags . . . . .617
Table 98.Data token format . . . . .620
Table 99.Transmit FIFO status flags . . . . .621
Table 100.Receive FIFO status flags . . . . .622
Table 101.Card status . . . . .632
Table 102.SD status . . . . .634
Table 103.Speed class code field . . . . .636
Table 104.Performance move field . . . . .636
Table 105.AU_SIZE field . . . . .636
Table 106.Maximum AU size . . . . .637
Table 107.Erase size field . . . . .637
Table 108.Erase timeout field . . . . .637
Table 109.Erase offset field . . . . .638
Table 110.Block-oriented write commands . . . . .640
Table 111.Block-oriented write protection commands . . . . .641
Table 112.Erase commands . . . . .641
Table 113.I/O mode commands . . . . .641
Table 114.Lock card . . . . .642
Table 115.Application-specific commands . . . . .642
Table 116.R1 response . . . . .643
Table 117.R2 response . . . . .643
Table 118.R3 response . . . . .644
Table 119.R4 response . . . . .644
Table 120.R4b response . . . . .644
Table 121.R5 response . . . . .645
Table 122.R6 response . . . . .645
Table 123.Response type and SDIO_RESPx registers . . . . .652
Table 124.SDIO register map . . . . .662
Table 125.OTG_FS input/output pins . . . . .666
Table 126.Compatibility of STM32 low power modes with the OTG . . . . .679
Table 127.Core global control and status registers (CSRs) . . . . .689
Table 128.Host-mode control and status registers (CSRs) . . . . .690
Table 129.Device-mode control and status registers . . . . .691
Table 130.Data FIFO (DFIFO) access register map . . . . .692
Table 131.Power and clock gating control and status registers . . . . .693
Table 132.TRDT values . . . . .699
Table 133.Minimum duration for soft disconnect . . . . .727
Table 134.OTG_FS register map and reset values . . . . .749
Table 135.SWJ debug port pins . . . . .807
Table 136.Flexible SWJ-DP pin assignment . . . . .807
Table 137.JTAG debug port data registers . . . . .810
Table 138.32-bit debug port registers addressed through the shifted value A[3:2] . . . . .811
Table 139.Packet request (8-bits) . . . . .812
Table 140.ACK response (3 bits) . . . . .813
Table 141.DATA transfer (33 bits) . . . . .813

Table 142.SW-DP registers . . . . .814
Table 143.Cortex®-M4 with FPU AHB-AP registers . . . . .815
Table 144.Core debug registers . . . . .816
Table 145.Main ITM registers . . . . .819
Table 146.Main ETM registers . . . . .821
Table 147.Asynchronous TRACE pin assignment . . . . .827
Table 148.Synchronous TRACE pin assignment . . . . .827
Table 149.Flexible TRACE pin assignment . . . . .828
Table 150.Important TPIU registers . . . . .830
Table 151.DBG register map and reset values . . . . .832
Table 152.Document revision history . . . . .836

List of figures

Figure 1. System architecture . . . . . 36

Figure 2. Flash memory interface connection inside system architecture (STM32F411xC/E) . . . . . 43

Figure 3. Sequential 32-bit instruction execution . . . . . 47

Figure 4. RDP levels . . . . . 55

Figure 5. PCROP levels . . . . . 57

Figure 6. CRC calculation unit block diagram . . . . . 67

Figure 7. Power supply overview . . . . . 70

Figure 8. Power-on reset/power-down reset waveform . . . . . 73

Figure 9. BOR thresholds . . . . . 74

Figure 10. PVD thresholds . . . . . 75

Figure 11. Simplified diagram of the reset circuit . . . . . 92

Figure 12. Clock tree . . . . . 94

Figure 13. HSE/ LSE clock sources . . . . . 96

Figure 14. Frequency measurement with TIM5 in Input capture mode . . . . . 101

Figure 15. Frequency measurement with TIM11 in Input capture mode . . . . . 102

Figure 16. Basic structure of a 5 V-tolerant I/O port bit . . . . . 147

Figure 17. Selecting an alternate function onSTM32F411xC/E . . . . . 151

Figure 18. Input floating/pull up/pull down configurations . . . . . 154

Figure 19. Output configuration . . . . . 155

Figure 20. Alternate function configuration . . . . . 155

Figure 21. High impedance-analog configuration . . . . . 156

Figure 22. DMA block diagram . . . . . 168

Figure 23. System implementation of the two DMA controllers (STM32F411xC/E) . . . . . 169

Figure 24. Channel selection . . . . . 170

Figure 25. Peripheral-to-memory mode . . . . . 173

Figure 26. Memory-to-peripheral mode . . . . . 174

Figure 27. Memory-to-memory mode . . . . . 175

Figure 28. FIFO structure . . . . . 180

Figure 29. External interrupt/event controller block diagram . . . . . 206

Figure 30. External interrupt/event GPIO mapping . . . . . 208

Figure 31. Single ADC block diagram . . . . . 214

Figure 32. Timing diagram . . . . . 217

Figure 33. Analog watchdog's guarded area . . . . . 217

Figure 34. Injected conversion latency . . . . . 219

Figure 35. Right alignment of 12-bit data . . . . . 221

Figure 36. Left alignment of 12-bit data . . . . . 221

Figure 37. Left alignment of 6-bit data . . . . . 221

Figure 38. Temperature sensor and VREFINT channel block diagram . . . . . 226

Figure 39. Advanced-control timer block diagram . . . . . 244

Figure 40. Counter timing diagram with prescaler division change from 1 to 2 . . . . . 246

Figure 41. Counter timing diagram with prescaler division change from 1 to 4 . . . . . 246

Figure 42. Counter timing diagram, internal clock divided by 1 . . . . . 247

Figure 43. Counter timing diagram, internal clock divided by 2 . . . . . 248

Figure 44. Counter timing diagram, internal clock divided by 4 . . . . . 248

Figure 45. Counter timing diagram, internal clock divided by N . . . . . 248

Figure 46. Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded) . . . . . 249

Figure 47.Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded) . . . . .249
Figure 48.Counter timing diagram, internal clock divided by 1 . . . . .251
Figure 49.Counter timing diagram, internal clock divided by 2 . . . . .251
Figure 50.Counter timing diagram, internal clock divided by 4 . . . . .252
Figure 51.Counter timing diagram, internal clock divided by N . . . . .252
Figure 52.Counter timing diagram, update event when repetition counter is not used . . . . .253
Figure 53.Counter timing diagram, internal clock divided by 1, TIMx_ARR=0x6 . . . . .254
Figure 54.Counter timing diagram, internal clock divided by 2 . . . . .254
Figure 55.Counter timing diagram, internal clock divided by 4, TIMx_ARR=0x36 . . . . .255
Figure 56.Counter timing diagram, internal clock divided by N . . . . .255
Figure 57.Counter timing diagram, update event with ARPE=1 (counter underflow) . . . . .256
Figure 58.Counter timing diagram, Update event with ARPE=1 (counter overflow) . . . . .256
Figure 59.Update rate examples depending on mode and TIMx_RCR register settings . . . . .257
Figure 60.Control circuit in normal mode, internal clock divided by 1 . . . . .258
Figure 61.TI2 external clock connection example . . . . .259
Figure 62.Control circuit in external clock mode 1 . . . . .260
Figure 63.External trigger input block . . . . .260
Figure 64.Control circuit in external clock mode 2 . . . . .261
Figure 65.Capture/compare channel (example: channel 1 input stage) . . . . .262
Figure 66.Capture/compare channel 1 main circuit . . . . .262
Figure 67.Output stage of capture/compare channel (channel 1 to 3) . . . . .263
Figure 68.Output stage of capture/compare channel (channel 4) . . . . .263
Figure 69.PWM input mode timing . . . . .265
Figure 70.Output compare mode, toggle on OC1 . . . . .267
Figure 71.Edge-aligned PWM waveforms (ARR=8) . . . . .268
Figure 72.Center-aligned PWM waveforms (ARR=8) . . . . .269
Figure 73.Complementary output with dead-time insertion . . . . .271
Figure 74.Dead-time waveforms with delay greater than the negative pulse . . . . .271
Figure 75.Dead-time waveforms with delay greater than the positive pulse . . . . .271
Figure 76.Output behavior in response to a break . . . . .274
Figure 77.Clearing TIMx_OCxREF . . . . .275
Figure 78.6-step generation, COM example (OSSR=1) . . . . .276
Figure 79.Example of one pulse mode . . . . .277
Figure 80.Example of counter operation in encoder interface mode . . . . .280
Figure 81.Example of encoder interface mode with TI1FP1 polarity inverted . . . . .280
Figure 82.Example of Hall sensor interface . . . . .282
Figure 83.Control circuit in reset mode . . . . .283
Figure 84.Control circuit in gated mode . . . . .284
Figure 85.Control circuit in trigger mode . . . . .285
Figure 86.Control circuit in external clock mode 2 + trigger mode . . . . .286
Figure 87.General-purpose timer block diagram . . . . .314
Figure 88.Counter timing diagram with prescaler division change from 1 to 2 . . . . .315
Figure 89.Counter timing diagram with prescaler division change from 1 to 4 . . . . .316
Figure 90.Counter timing diagram, internal clock divided by 1 . . . . .317
Figure 91.Counter timing diagram, internal clock divided by 2 . . . . .317
Figure 92.Counter timing diagram, internal clock divided by 4 . . . . .317
Figure 93.Counter timing diagram, internal clock divided by N . . . . .318
Figure 94.Counter timing diagram, Update event when ARPE=0 (TIMx_ARR not preloaded) . . . . .318
Figure 95.Counter timing diagram, Update event when ARPE=1 (TIMx_ARR preloaded) . . . . .319
Figure 96.Counter timing diagram, internal clock divided by 1 . . . . .320
Figure 97.Counter timing diagram, internal clock divided by 2 . . . . .320
Figure 98.Counter timing diagram, internal clock divided by 4 . . . . .320
Figure 99.Counter timing diagram, internal clock divided by N . . . . .321
Figure 100.Counter timing diagram, Update event . . . . .321
Figure 101.Counter timing diagram, internal clock divided by 1, TIMx_ARR=0x6 . . . . .322
Figure 102.Counter timing diagram, internal clock divided by 2 . . . . .323
Figure 103.Counter timing diagram, internal clock divided by 4, TIMx_ARR=0x36 . . . . .323
Figure 104.Counter timing diagram, internal clock divided by N . . . . .323
Figure 105.Counter timing diagram, Update event with ARPE=1 (counter underflow) . . . . .324
Figure 106.Counter timing diagram, Update event with ARPE=1 (counter overflow) . . . . .324
Figure 107.Control circuit in normal mode, internal clock divided by 1 . . . . .325
Figure 108.TI2 external clock connection example . . . . .326
Figure 109.Control circuit in external clock mode 1 . . . . .327
Figure 110.External trigger input block . . . . .327
Figure 111.Control circuit in external clock mode 2 . . . . .328
Figure 112.Capture/compare channel (example: channel 1 input stage) . . . . .328
Figure 113.Capture/compare channel 1 main circuit . . . . .329
Figure 114.Output stage of capture/compare channel (channel 1) . . . . .329
Figure 115.PWM input mode timing . . . . .331
Figure 116.Output compare mode, toggle on OC1 . . . . .333
Figure 117.Edge-aligned PWM waveforms (ARR=8) . . . . .334
Figure 118.Center-aligned PWM waveforms (ARR=8) . . . . .335
Figure 119.Example of one-pulse mode . . . . .336
Figure 120.Clearing TIMx_OCxREF . . . . .338
Figure 121.Example of counter operation in encoder interface mode . . . . .340
Figure 122.Example of encoder interface mode with TI1FP1 polarity inverted . . . . .340
Figure 123.Control circuit in reset mode . . . . .341
Figure 124.Control circuit in gated mode . . . . .342
Figure 125.Control circuit in trigger mode . . . . .343
Figure 126.Control circuit in external clock mode 2 + trigger mode . . . . .344
Figure 127.Master/Slave timer example . . . . .344
Figure 128.Gating timer 2 with OC1REF of timer 1 . . . . .345
Figure 129.Gating timer 2 with Enable of timer 1 . . . . .346
Figure 130.Triggering timer 2 with update of timer 1 . . . . .347
Figure 131.Triggering timer 2 with Enable of timer 1 . . . . .348
Figure 132.Triggering timer 1 and 2 with timer 1 TI1 input . . . . .349
Figure 133.General-purpose timer block diagram (TIM9) . . . . .373
Figure 134.General-purpose timer block diagram (TIM10/11) . . . . .374
Figure 135.Counter timing diagram with prescaler division change from 1 to 2 . . . . .376
Figure 136.Counter timing diagram with prescaler division change from 1 to 4 . . . . .376
Figure 137.Counter timing diagram, internal clock divided by 1 . . . . .377
Figure 138.Counter timing diagram, internal clock divided by 2 . . . . .378
Figure 139.Counter timing diagram, internal clock divided by 4 . . . . .378
Figure 140.Counter timing diagram, internal clock divided by N . . . . .378
Figure 141.Counter timing diagram, update event when ARPE=0 (TIMx_ARR not preloaded) . . . . .379
Figure 142.Counter timing diagram, update event when ARPE=1 (TIMx_ARR preloaded) . . . . .379
Figure 143.Control circuit in normal mode, internal clock divided by 1 . . . . .380
Figure 144.TI2 external clock connection example . . . . .381
Figure 145.Control circuit in external clock mode 1 . . . . .381
Figure 146.Capture/compare channel (example: channel 1 input stage) . . . . .382
Figure 147.Capture/compare channel 1 main circuit . . . . .383
Figure 148.Output stage of capture/compare channel (channel 1) . . . . .383
Figure 149.PWM input mode timing . . . . .385
Figure 150.Output compare mode, toggle on OC1 . . . . .387
Figure 151. Edge-aligned PWM waveforms (ARR=8) . . . . .388
Figure 152. Example of one pulse mode. . . . .389
Figure 153. Control circuit in reset mode . . . . .391
Figure 154. Control circuit in gated mode . . . . .392
Figure 155. Control circuit in trigger mode . . . . .392
Figure 156. Independent watchdog block diagram . . . . .419
Figure 157. Watchdog block diagram . . . . .424
Figure 158. Window watchdog timing diagram . . . . .425
Figure 159. RTC block diagram . . . . .432
Figure 160. I2C bus protocol . . . . .472
Figure 161. I2C block diagram . . . . .473
Figure 162. Transfer sequence diagram for target transmitter . . . . .474
Figure 163. Transfer sequence diagram for target receiver. . . . .475
Figure 164. Transfer sequence diagram for controller transmitter . . . . .478
Figure 165. Transfer sequence diagram for controller receiver . . . . .479
Figure 166. I2C interrupt mapping diagram . . . . .488
Figure 167. USART block diagram . . . . .505
Figure 168. Word length programming . . . . .506
Figure 169. Configurable stop bits . . . . .508
Figure 170. TC/TXE behavior when transmitting . . . . .509
Figure 171. Start bit detection when oversampling by 16 or 8. . . . .510
Figure 172. Data sampling when oversampling by 16 . . . . .513
Figure 173. Data sampling when oversampling by 8 . . . . .514
Figure 174. Mute mode using Idle line detection . . . . .527
Figure 175. Mute mode using address mark detection . . . . .527
Figure 176. Break detection in LIN mode (11-bit break length - LBDL bit is set) . . . . .530
Figure 177. Break detection in LIN mode vs. Framing error detection. . . . .531
Figure 178. USART example of synchronous transmission. . . . .532
Figure 179. USART data clock timing diagram (M=0) . . . . .532
Figure 180. USART data clock timing diagram (M=1) . . . . .533
Figure 181. RX data setup/hold time . . . . .533
Figure 182. ISO 7816-3 asynchronous protocol . . . . .534
Figure 183. Parity error detection using the 1.5 stop bits . . . . .535
Figure 184. IrDA SIR ENDEC- block diagram . . . . .537
Figure 185. IrDA data modulation (3/16) -Normal mode . . . . .537
Figure 186. Transmission using DMA . . . . .539
Figure 187. Reception using DMA . . . . .540
Figure 188. Hardware flow control between 2 USARTs . . . . .540
Figure 189. RTS flow control . . . . .541
Figure 190. CTS flow control . . . . .542
Figure 191. USART interrupt mapping diagram . . . . .543
Figure 192. SPI block diagram. . . . .558
Figure 193. Single master/single slave application . . . . .559
Figure 194. Data clock timing diagram . . . . .561
Figure 195. TI mode - Slave mode, single transfer . . . . .563
Figure 196. TI mode - Slave mode, continuous transfer . . . . .564
Figure 197. TI mode - master mode, single transfer . . . . .565
Figure 198. TI mode - master mode, continuous transfer . . . . .566
Figure 199. TXE/RXNE/BSY behavior in Master / full-duplex mode (BIDIMODE=0 and
RXONLY=0) in case of continuous transfers . . . . .
569
Figure 200. TXE/RXNE/BSY behavior in Slave / full-duplex mode (BIDIMODE=0,
RXONLY=0) in case of continuous transfers . . . . .
570
Figure 201. TXE/BSY behavior in Master transmit-only mode (BIDIMODE=0 and RXONLY=0) in case of continuous transfers . . . . .571
Figure 202. TXE/BSY in Slave transmit-only mode (BIDIMODE=0 and RXONLY=0) in case of continuous transfers . . . . .571
Figure 203. RXNE behavior in receive-only mode (BIDIRMODE=0 and RXONLY=1) in case of continuous transfers . . . . .572
Figure 204. TXE/BSY behavior when transmitting (BIDIRMODE=0 and RXONLY=0) in case of discontinuous transfers . . . . .573
Figure 205. Transmission using DMA . . . . .577
Figure 206. Reception using DMA . . . . .578
Figure 207. TI mode frame format error detection . . . . .580
Figure 208. I 2 S block diagram . . . . .581
Figure 209. I2S full duplex block diagram . . . . .582
Figure 210. I 2 S Philips protocol waveforms (16/32-bit full accuracy, CPOL = 0) . . . . .584
Figure 211. I 2 S Philips standard waveforms (24-bit frame with CPOL = 0) . . . . .584
Figure 212. Transmitting 0x8EAA33 . . . . .584
Figure 213. Receiving 0x8EAA33 . . . . .585
Figure 214. I 2 S Philips standard (16-bit extended to 32-bit packet frame with CPOL = 0) . . . . .585
Figure 215. Example . . . . .585
Figure 216. MSB justified 16-bit or 32-bit full-accuracy length with CPOL = 0 . . . . .586
Figure 217. MSB justified 24-bit frame length with CPOL = 0 . . . . .586
Figure 218. MSB justified 16-bit extended to 32-bit packet frame with CPOL = 0 . . . . .586
Figure 219. LSB justified 16-bit or 32-bit full-accuracy with CPOL = 0 . . . . .587
Figure 220. LSB justified 24-bit frame length with CPOL = 0 . . . . .587
Figure 221. Operations required to transmit 0x3478AE . . . . .587
Figure 222. Operations required to receive 0x3478AE . . . . .588
Figure 223. LSB justified 16-bit extended to 32-bit packet frame with CPOL = 0 . . . . .588
Figure 224. Example of LSB justified 16-bit extended to 32-bit packet frame . . . . .588
Figure 225. PCM standard waveforms (16-bit) . . . . .589
Figure 226. PCM standard waveforms (16-bit extended to 32-bit packet frame) . . . . .589
Figure 227. Audio sampling frequency definition . . . . .590
Figure 228. I 2 S clock generator architecture . . . . .590
Figure 229. SDIO “no response” and “no data” operations . . . . .609
Figure 230. SDIO (multiple) block read operation . . . . .609
Figure 231. SDIO (multiple) block write operation . . . . .609
Figure 232. SDIO sequential read operation . . . . .610
Figure 233. SDIO sequential write operation . . . . .610
Figure 234. SDIO block diagram . . . . .610
Figure 235. SDIO adapter . . . . .612
Figure 236. Control unit . . . . .613
Figure 237. SDIO adapter command path . . . . .614
Figure 238. Command path state machine (CPSM) . . . . .615
Figure 239. SDIO command transfer . . . . .616
Figure 240. Data path . . . . .618
Figure 241. Data path state machine (DPSM) . . . . .619
Figure 242. OTG full-speed block diagram . . . . .666
Figure 243. OTG A-B device connection . . . . .668
Figure 244. USB peripheral-only connection . . . . .670
Figure 245. USB host-only connection . . . . .674
Figure 246. SOF connectivity . . . . .678
Figure 247. Updating OTG_FS_HFIR dynamically . . . . .681
Figure 248. Device-mode FIFO address mapping and AHB FIFO access mapping . . . . .682
Figure 249. Host-mode FIFO address mapping and AHB FIFO access mapping . . . . .683
Figure 250. Interrupt hierarchy. . . . .687
Figure 251. CSR memory map . . . . .689
Figure 252. Transmit FIFO write task . . . . .761
Figure 253. Receive FIFO read task . . . . .762
Figure 254. Normal bulk/control OUT/SETUP and bulk/control IN transactions . . . . .763
Figure 255. Bulk/control IN transactions . . . . .766
Figure 256. Normal interrupt OUT/IN transactions . . . . .768
Figure 257. Normal isochronous OUT/IN transactions . . . . .773
Figure 258. Receive FIFO packet read . . . . .779
Figure 259. Processing a SETUP packet . . . . .781
Figure 260. Bulk OUT transaction . . . . .788
Figure 261. TRDT max timing case . . . . .797
Figure 262. A-device SRP . . . . .798
Figure 263. B-device SRP . . . . .799
Figure 264. A-device HNP . . . . .800
Figure 265. B-device HNP . . . . .802
Figure 266. Block diagram of STM32 MCU and Cortex ® -M4 with FPU-level debug support . . . . .804
Figure 267. SWJ debug port . . . . .806
Figure 268. JTAG TAP connections . . . . .809
Figure 269. TPIU block diagram . . . . .826

Chapters