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§

config
Configuration of an FDCAN instance
filter
Filtering of CAN Messages
frame
Header and info of transmitted and receiving frames
id
Standard and Extended Id CAN Identifiers.
interrupt
Interrupt Line Information Interrupt types.
message_ram
Message RAM block

Structs§

BusMonitoringMode
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.
ConfigMode
Allows for the configuration for the Instance
ErrorCounters
Error Counters
ExternalLoopbackMode
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.
FdCan
Interface to a FdCAN peripheral.
FdCanControl
FdCanControl Struct Used to house some information during an FdCan split. and can be used for some generic information retrieval during operation.
InternalLoopbackMode
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.
NormalOperationMode
The normal use of the FdCan instance after configurations
PoweredDownMode
Allows for the FdCan Instance to be released or to enter ConfigMode
ProtocolStatus
Some status indications regarding the FDCAN protocl
RegisterBlock
Register block
RestrictedOperationMode
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?
Rx
Interface to the CAN receiver part.
TestMode
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.
Tx
Interface to the CAN transmitter part.

Enums§

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

Traits§

Instance
An FDCAN peripheral instance.
Receive
Allows for Receive Operations
Transmit
Allows for Transmit Operations