Crate fdcan

source ·
Expand description

Driver for the STM32 FDCAN peripheral.

This crate provides a reusable driver for the FDCAN peripheral found in STM32 microcontrollers. HALs can re-export this crate and implement its traits to easily expose a CAN driver.

Features

Limitations

Cargo Features

FeatureDescription
embedded-can-03Implements the embedded-can 0.3 traits.

Modules

  • Configuration of an FDCAN instance
  • Filtering of CAN Messages
  • Header and info of transmitted and receiving frames
  • Standard and Extended Id CAN Identifiers.
  • Interrupt Line Information Interrupt types.
  • Message RAM block

Structs

  • In Bus monitoring mode (for more details refer to ISO11898-1, 10.12 Bus monitoring), the FDCAN is able to receive valid data frames and valid remote frames, but cannot start a transmission. In this mode, it sends only recessive bits on the CAN bus. If the FDCAN is required to send a dominant bit (ACK bit, overload flag, active error flag), the bit is rerouted internally so that the FDCAN can monitor it, even if the CAN bus remains in recessive state. In Bus monitoring mode the TXBRP register is held in reset state. The Bus monitoring mode can be used to analyze the traffic on a CAN bus without affecting it by the transmission of dominant bits.
  • Allows for the configuration for the Instance
  • Error Counters
  • This mode is provided for hardware self-test. To be independent from external stimulation, the FDCAN ignores acknowledge errors (recessive bit sampled in the acknowledge slot of a data / remote frame) in Loop Back mode. In this mode the FDCAN performs an internal feedback from its transmit output to its receive input. The actual value of the FDCAN_RX input pin is disregarded by the FDCAN. The transmitted messages can be monitored at the FDCAN_TX transmit pin.
  • Interface to a FdCAN peripheral.
  • FdCanControl Struct Used to house some information during an FdCan split. and can be used for some generic information retrieval during operation.
  • This mode can be used for a “Hot Selftest”, meaning the FDCAN can be tested without affecting a running CAN system connected to the FDCAN_TX and FDCAN_RX pins. In this mode, FDCAN_RX pin is disconnected from the FDCAN and FDCAN_TX pin is held recessive.
  • The normal use of the FdCan instance after configurations
  • Allows for the FdCan Instance to be released or to enter ConfigMode
  • Some status indications regarding the FDCAN protocl
  • Register block
  • In Restricted operation mode the node is able to receive data and remote frames and to give acknowledge to valid frames, but it does not send data frames, remote frames, active error frames, or overload frames. In case of an error condition or overload condition, it does not send dominant bits, instead it waits for the occurrence of bus idle condition to resynchronize itself to the CAN communication. The error counters for transmit and receive are frozen while error logging (can_errors) is active. TODO: automatically enter in this mode?
  • Interface to the CAN receiver part.
  • Test mode must be used for production tests or self test only. The software control for FDCAN_TX pin interferes with all CAN protocol functions. It is not recommended to use test modes for application.
  • Interface to the CAN transmitter part.

Enums

  • Bus Activity
  • Indicates the type of the last error which occurred on the CAN bus
  • The three mailboxes. These are used for the transmit queue and the two Receive FIFOs
  • Indicates if an Receive Overflow has occurred
  • Notes whether an overrun has occurred. Since both arms contain T, this can be ’unwrap’ed without causing a panic.
  • states of the test.tx register

Traits