Contents UM0306
12/519
17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
17.2 General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
17.2.1 Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
17.2.2 USART character description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
17.2.3 Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
17.2.4 Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
17.2.5 Fractional baud rate generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
17.2.6 Multi-processor communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
17.2.7 Parity control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
17.2.8 LIN (local interconnection network) mode . . . . . . . . . . . . . . . . . . . . . . 392
17.2.9 USART synchronous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
17.2.10 Single wire half duplex communication . . . . . . . . . . . . . . . . . . . . . . . . 397
17.2.11 Smartcard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
17.2.12 IrDA SIR ENDEC block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
17.2.13 Continuous communication using DMA . . . . . . . . . . . . . . . . . . . . . . . . 401
17.2.14 Hardware flow control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
17.3 Interrupt requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
17.4 USART register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
17.4.1 Status register (USART_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
17.4.2 Data register (USART_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
17.4.3 Baud rate register (USART_BRR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
17.4.4 Control register 1 (USART_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
17.4.5 Control register 2 (USART_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
17.4.6 Control register 3 (USART_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
17.4.7 Guard time and prescaler register (USART_GTPR) . . . . . . . . . . . . . . 417
17.5 USART register map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
18 USB full speed device interface (USB) . . . . . . . . . . . . . . . . . . . . . . . . 419
18.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
18.2 Main features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
18.3 Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
18.4 Functional description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
18.4.1 Description of USB blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
18.5 Programming considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
18.5.1 Generic USB device programming . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
18.5.2 System and power-on reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422