Module gemma_m0::sercom

source ·
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.
  • 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.
  • 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)

Enums

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.
  • UART0PadoutDeprecated
  • UART0RxPadoutDeprecated
  • UART0TxPadoutDeprecated
  • UART1PadoutDeprecated
  • UART1RxPadoutDeprecated
  • UART1TxPadoutDeprecated
  • UART2PadoutDeprecated
  • UART2RxPadoutDeprecated
  • UART2TxPadoutDeprecated
  • UART3PadoutDeprecated
  • UART3RxPadoutDeprecated
  • UART3TxPadoutDeprecated