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::Pins and v2::Pins.

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.

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.

A GPIO Pin configured to act as a SERCOM Pad

RxPadoutDeprecated

A pad mapping configuration for the receiving half of the SERCOM in UART mode.

SPIMaster0Deprecated

SPIMasterX 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.

SPIMaster1Deprecated

SPIMasterX 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.

SPIMaster2Deprecated

SPIMasterX 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.

SPIMaster3Deprecated

SPIMasterX 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.

SPIMaster4Deprecated

SPIMasterX 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.

SPIMaster5Deprecated

SPIMasterX 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.

TxPadoutDeprecated

A pad mapping configuration for the transmitting half of the SERCOM in UART mode.

UART0Deprecated

UARTX 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.

UART0RxDeprecated

The receiving half of the corresponding UARTX instance (as returned by UARTX::split)

UART0TxDeprecated

The transmitting half of the corresponding UARTX instance (as returned by UARTX::split)

UART1Deprecated

UARTX 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.

UART1RxDeprecated

The receiving half of the corresponding UARTX instance (as returned by UARTX::split)

UART1TxDeprecated

The transmitting half of the corresponding UARTX instance (as returned by UARTX::split)

UART2Deprecated

UARTX 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.

UART2RxDeprecated

The receiving half of the corresponding UARTX instance (as returned by UARTX::split)

UART2TxDeprecated

The transmitting half of the corresponding UARTX instance (as returned by UARTX::split)

UART3Deprecated

UARTX 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.

UART3RxDeprecated

The receiving half of the corresponding UARTX instance (as returned by UARTX::split)

UART3TxDeprecated

The transmitting half of the corresponding UARTX instance (as returned by UARTX::split)

UART4Deprecated

UARTX 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.

UART4RxDeprecated

The receiving half of the corresponding UARTX instance (as returned by UARTX::split)

UART4TxDeprecated

The transmitting half of the corresponding UARTX instance (as returned by UARTX::split)

UART5Deprecated

UARTX 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.

UART5RxDeprecated

The receiving half of the corresponding UARTX instance (as returned by UARTX::split)

UART5TxDeprecated

The transmitting half of the corresponding UARTX instance (as returned by UARTX::split)

Enums

ErrorDeprecated

Traits

Type class to improve compatibility between v1 and v2 SERCOM pad types

DipoDopoDeprecated

The 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.

RxpoTxpoDeprecated

The 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

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.

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
UART4PadoutDeprecated
UART4RxPadoutDeprecated
UART4TxPadoutDeprecated
UART5PadoutDeprecated
UART5RxPadoutDeprecated
UART5TxPadoutDeprecated