Expand description
Configure the SERCOM peripherals
The SERCOM module is used to configure the SERCOM peripherals as USART, SPI or I2C interfaces.
Versions
There are currently two versions of the SERCOM module. The inital SERCOM API was based on a macro-heavy implementation. The discussion in issue #214 spurred the creation of a new module with less macro-use and a refactored API.
The new module is provided in v2. The old module was removed, but a compatibility shim is provided in v1 to support existing code.
Migration
The v2 module will eventually replace v1. New users are encouraged to use v2 instead of v1.
The new v2::spi
and v2::uart
modules are substantially more
configurable and safe than the existing, v1::spi
and v1::uart
modules. To assist in migration, the v2::spi::Pads
and
v2::uart::Pads
structs accept both v1::Pin
s and v2::Pin
s.
Modules
- Version 1 of the SERCOM module
- Version 2 of the SERCOM module
Structs
- Represents the Sercom instance configured to act as an I2C Master. The embedded_hal blocking I2C traits are implemented by this instance.
- Represents the Sercom instance configured to act as an I2C Master. The embedded_hal blocking I2C traits are implemented by this instance.
- Represents the Sercom instance configured to act as an I2C Master. The embedded_hal blocking I2C traits are implemented by this instance.
- Represents the Sercom instance configured to act as an I2C Master. The embedded_hal blocking I2C traits are implemented by this instance.
- RxPadoutDeprecatedA pad mapping configuration for the receiving half of the SERCOM in UART mode.
- SPIMaster0DeprecatedSPIMasterX represents the corresponding SERCOMX instance configured to act in the role of an SPI Master. Objects of this type implement the HAL
FullDuplex
and blocking SPI traits. - SPIMaster1DeprecatedSPIMasterX represents the corresponding SERCOMX instance configured to act in the role of an SPI Master. Objects of this type implement the HAL
FullDuplex
and blocking SPI traits. - SPIMaster2DeprecatedSPIMasterX represents the corresponding SERCOMX instance configured to act in the role of an SPI Master. Objects of this type implement the HAL
FullDuplex
and blocking SPI traits. - SPIMaster3DeprecatedSPIMasterX represents the corresponding SERCOMX instance configured to act in the role of an SPI Master. Objects of this type implement the HAL
FullDuplex
and blocking SPI traits. - TxPadoutDeprecatedA pad mapping configuration for the transmitting half of the SERCOM in UART mode.
- UART0DeprecatedUARTX represents the corresponding SERCOMX instance configured to act in the role of a UART Master. Objects of this type implement the HAL
serial::Read
,serial::Write
traits. - UART0RxDeprecatedThe receiving half of the corresponding UARTX instance (as returned by
UARTX::split
) - UART0TxDeprecatedThe transmitting half of the corresponding UARTX instance (as returned by
UARTX::split
) - UART1DeprecatedUARTX represents the corresponding SERCOMX instance configured to act in the role of a UART Master. Objects of this type implement the HAL
serial::Read
,serial::Write
traits. - UART1RxDeprecatedThe receiving half of the corresponding UARTX instance (as returned by
UARTX::split
) - UART1TxDeprecatedThe transmitting half of the corresponding UARTX instance (as returned by
UARTX::split
) - UART2DeprecatedUARTX represents the corresponding SERCOMX instance configured to act in the role of a UART Master. Objects of this type implement the HAL
serial::Read
,serial::Write
traits. - UART2RxDeprecatedThe receiving half of the corresponding UARTX instance (as returned by
UARTX::split
) - UART2TxDeprecatedThe transmitting half of the corresponding UARTX instance (as returned by
UARTX::split
) - UART3DeprecatedUARTX represents the corresponding SERCOMX instance configured to act in the role of a UART Master. Objects of this type implement the HAL
serial::Read
,serial::Write
traits. - UART3RxDeprecatedThe receiving half of the corresponding UARTX instance (as returned by
UARTX::split
) - UART3TxDeprecatedThe transmitting half of the corresponding UARTX instance (as returned by
UARTX::split
)
Enums
- ErrorDeprecated
Traits
- Type class to improve compatibility between
v1
andv2
SERCOM pad types - DipoDopoDeprecatedThe DipoDopo trait defines a way to get the data in and data out pin out values for a given SPIMasterXPadout configuration. You should not implement this trait for yourself; only the implementations in the sercom module make sense.
- The PadPin trait makes it more ergonomic to convert a pin into a Sercom pad. You should not implement this trait for yourself; only the implementations in the sercom module make sense.
- RxpoTxpoDeprecatedThe RxpoTxpo trait defines a way to get the data in and data out pin out values for a given UARTXPadout configuration. You should not implement this trait for yourself; only the implementations in the sercom module make sense.
Type Definitions
- SPIMaster0PadoutDeprecated
- SPIMaster1PadoutDeprecated
- SPIMaster2PadoutDeprecated
- SPIMaster3PadoutDeprecated
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- Represents a numbered pad for the associated sercom instance. The pad is generic over any pin, only the PadPin implementations in this the sercom module make sense.
- UART0PadoutDeprecated
- UART0RxPadoutDeprecated
- UART0TxPadoutDeprecated
- UART1PadoutDeprecated
- UART1RxPadoutDeprecated
- UART1TxPadoutDeprecated
- UART2PadoutDeprecated
- UART2RxPadoutDeprecated
- UART2TxPadoutDeprecated
- UART3PadoutDeprecated
- UART3RxPadoutDeprecated
- UART3TxPadoutDeprecated