pub enum OperatingMode {
InternalLoopbackMode,
ExternalLoopbackMode,
NormalOperationMode,
RestrictedOperationMode,
BusMonitoringMode,
}
Expand description
Different operating modes
Variants§
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.
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.
NormalOperationMode
The normal use of the Fdcan instance after configurations
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?
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.
Trait Implementations§
source§impl Clone for OperatingMode
impl Clone for OperatingMode
source§fn clone(&self) -> OperatingMode
fn clone(&self) -> OperatingMode
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for OperatingMode
impl Debug for OperatingMode
source§impl Format for OperatingMode
impl Format for OperatingMode
source§impl PartialEq for OperatingMode
impl PartialEq for OperatingMode
impl Copy for OperatingMode
impl Eq for OperatingMode
impl StructuralPartialEq for OperatingMode
Auto Trait Implementations§
impl Freeze for OperatingMode
impl RefUnwindSafe for OperatingMode
impl Send for OperatingMode
impl Sync for OperatingMode
impl Unpin for OperatingMode
impl UnwindSafe for OperatingMode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)