RM0383 Rev 3 17/844
RM0383 Contents
23
20.1 SPI introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
20.2 SPI and I
2
S main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
20.2.1 SPI features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
20.2.2 I
2
S features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
20.3 SPI functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
20.3.1 General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
20.3.2 Configuring the SPI in slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
20.3.3 Configuring the SPI in master mode . . . . . . . . . . . . . . . . . . . . . . . . . . 567
20.3.4 Configuring the SPI for half-duplex communication . . . . . . . . . . . . . . . 569
20.3.5 Data transmission and reception procedures . . . . . . . . . . . . . . . . . . . 570
20.3.6 CRC calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
20.3.7 Status flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
20.3.8 Disabling the SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
20.3.9 SPI communication using DMA (direct memory addressing) . . . . . . . 580
20.3.10 Error flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
20.3.11 SPI interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
20.4 I
2
S functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
20.4.1 I
2
S general description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
20.4.2 I2S full duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585
20.4.3 Supported audio protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
20.4.4 Clock generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
20.4.5 I
2
S master mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
20.4.6 I
2
S slave mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
20.4.7 Status flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
20.4.8 Error flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
20.4.9 I
2
S interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
20.4.10 DMA features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
20.5 SPI and I
2
S registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
20.5.1 SPI control register 1 (SPI_CR1)(not used in I
2
S mode) . . . . . . . . . . . 601
20.5.2 SPI control register 2 (SPI_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
20.5.3 SPI status register (SPI_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604
20.5.4 SPI data register (SPI_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
20.5.5 SPI CRC polynomial register (SPI_CRCPR)(not used in I
2
S
mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
20.5.6 SPI RX CRC register (SPI_RXCRCR)(not used in I
2
S mode) . . . . . . . 606
20.5.7 SPI TX CRC register (SPI_TXCRCR)(not used in I
2
S mode) . . . . . . . 607
20.5.8 SPI_I
2
S configuration register (SPI_I2SCFGR) . . . . . . . . . . . . . . . . . . 607