9.3.1 Description
The Flexible Serial Communication Controller (FLEXCOM) offers several serial communication protocols that are managed by the three submodules USART, SPI, and TWI (I2C).
For the purposes of functional safety, the FLEXCOM embeds on-the-fly monitoring of some outputs to quickly detect internal transistor failure or an external short circuit that may lead to errors such as stuck-at output. When USART asynchronous operating modes are selected, the TXD line is monitored and the SCK line is monitored in synchronous operating mode. SPI NPCS[0]/SPCK/MOSI lines and TWI SDA/SCL are monitored when the associated operating modes are selected.
The Universal Synchronous Asynchronous Receiver Transceiver (USART) provides one full-duplex universal synchronous asynchronous serial link. Data frame format is widely programmable (data length, parity, number of stop bits) to support a maximum of standards. The receiver implements parity error, framing error and overrun error detection. The receiver timeout enables handling variable-length frames and the transmitter timeguard facilitates communications with slow remote devices. Multidrop communications are also supported through address bit handling in reception and transmission.
The USART features three test modes: Remote Loopback, Local Loopback and Automatic Echo.
The USART supports specific operating modes providing interfaces on RS485, LIN, , with ISO7816 T = 0 or T = 1 smart card slots, and infrared transceivers. The hardware handshaking feature enables an out-of-band flow control by automatic management of the pins RTS and CTS.
The USART supports the connection to the DMA Controller, which enables data transfers to the transmitter and from the receiver. The DMAC provides chained buffer management without any intervention of the processor.
The Serial Peripheral Interface (SPI) circuit is a synchronous serial data link that provides communication with external devices in Host or Client mode. It also enables communication between processors if an external processor is connected to the system.
The Serial Peripheral Interface is essentially a shift register that serially transmits data bits to other SPIs. During a data transfer, one SPI system acts as the “host” which controls the data flow, while the other devices act as “clients” which have data shifted into and out by the host. Different CPUs can take turn being hosts (multiple host protocol, contrary to single host protocol where one CPU is always the host while all of the others are always clients). One host can simultaneously shift data into multiple clients. However, only one client can drive its output to write data back to the host at any given time.
A client device is selected when the host asserts its NSS signal. If multiple client devices exist, the host generates a separate client select signal for each client (NPCS).
The SPI system consists of two data lines and two control lines:
- Host Out Client In (MOSI)—This data line supplies the output data from the host shifted into the input(s) of the client(s).
- Host In Client Out (MISO)—This data line supplies the output data from a client to the input of the host. There may be no more than one client transmitting data during any particular transfer.
- Serial Clock (SPCK)—This control line is driven by the host and regulates the flow of the data bits. The host can transmit data at a variety of baud rates; there is one SPCK pulse for each bit that is transmitted.
- Client Select (NSS)—This control line allows clients to be turned on and off by hardware.
The Two-wire Interface (TWI) interconnects components on a unique two-wire bus, made up of one clock line and one data line based on a byte-oriented transfer format. It can be used with any Two-wire Interface bus Serial EEPROM and I2C-compatible devices, such as a Real-Time Clock (RTC), Dot Matrix/Graphic LCD Controller and temperature sensor. The TWI is programmable as a host or a client with sequential or single-byte access. Multiple host capability is supported.
Arbitration of the bus is performed internally and puts the TWI in Client mode automatically if the bus arbitration is lost.
A configurable baud rate generator permits the output data rate to be adapted to a wide range of core clock frequencies.
The following table lists the compatibility level of any TWI in Host mode and a full I2C compatible device.
I2C Standard | TWI |
---|---|
Standard mode speed (100 kHz) | Host, Multi-Host, Client supported |
Fast mode speed (400 kHz) | Host, Multi-Host, Client supported |
Fast mode Plus speed (1 MHz) | Host, Multi-Host, Client supported |
High-speed mode (3.4 MHz) | Host, Client supported |
7- or 10-bit(1) Client addressing | Supported |
Repeated Start (Sr) condition | Supported |
ACK and NACK management | Supported |
Input filtering | Supported |
Slope control | Not supported |
Clock stretching | Supported |
- 10-bit support in Host mode only.