The FlexIO is a highly configurable module providing a wide range of functionality including:
Several drivers are provided for this device, implementing a variety of communication protocols. There is also a common layer on which all the drivers are based, allowing more driver instances, either of the same type or different types, to function in parallel on the same FlexIO device. Each driver instance needs a certain number of FlexIO resources (shifters and timers) and as long as there are enough free resources new driver instances can be initialized. The table below shows the driver types and the number of resources needed by each one:
Drivers | Timers | Shifters | Pins |
---|---|---|---|
SPI | 2 | 2 | 4 |
I2C | 2 | 2 | 2 |
I2S | 2 | 2 | 4 |
UART | 1 | 1 | 1 |
The number of timers and shifters available on a specific device can be found in the reference manual.
Modules | |
FlexIO Common Driver | |
Common services for FlexIO drivers. | |
FlexIO I2C Driver | |
I2C communication over FlexIO module (FLEXIO_I2C) | |
FlexIO I2S Driver | |
I2S communication over FlexIO module (FLEXIO_I2S) | |
FlexIO SPI Driver | |
SPI communication over FlexIO module (FLEXIO_SPI) | |
FlexIO UART Driver | |
UART communication over FlexIO module (FLEXIO_UART) | |