 Hello and welcome to this presentation of the STM32L4 Basic Extended Controller Area Network Interface. It will cover the main features of this interface, which is widely used to connect multiple devices to the microcontroller. The Controller Area Network, or CAN, is a standard serial differential bus broadcast interface, allowing the microcontroller to communicate with external devices connected to the same network bus. The CAN interface is highly configurable, allowing nodes to easily connect using two wires. Applications benefit from the low-cost, robust and direct asynchronous serial interface. The STM32 CAN peripheral supports the basic extended CAN protocol versions 2.0, A and B active, with a maximum bitrate of 1 megabit per second. The BX CAN includes three transmit mailboxes with a configurable transmit priority option, and two receive FIFOs with three stages with 14 scalable filter banks. This allows the CAN to efficiently manage a high number of incoming and outgoing messages with a minimum CPU load. The BX CAN peripheral also manages four dedicated interrupt vectors. The BX CAN has three main operating modes, initialization, normal, and sleep. After a hardware reset, the BX CAN is in sleep mode, which operates at a lower power. Note, in sleep mode, the internal pull-up is active on pin CAN-TX. The BX CAN enters initialization mode via software to allow the configuration of the peripheral. Before entering normal mode, the BX CAN must synchronize with the CAN bus, so it waits until the bus is idle. This means 11 consecutive recessive bits have been monitored on pin CAN-RX. When the CAN is in normal mode, the user can select whether to run in operation or test mode. The BX CAN supports three test modes. In silent mode, the BX CAN is able to receive valid frames, but it sends only recessive bits on the CAN bus and it cannot start a transmission. Silent mode can be used to analyze traffic on a CAN bus without affecting it by the transmission of dominant bits. In loopback mode, the BX CAN treats its own transmitted messages as received messages and stores them if they pass acceptance filtering in a received mailbox. Loopback mode is provided for self-test functions. Combined loopback and silent mode. In this mode, the BX CAN can be tested in loopback mode, but without affecting the running CAN system connected to the CAN-TX and CAN-RX pins. This simplified block diagram of the CAN shows its basic functional and control features. Three types of registers. Control configuration registers, filter configuration registers, and status registers. Three transmit mailboxes are provided to the software for setting up messages. The transmission scheduler decides which mailbox has priority to be transmitted first. The BX CAN provides 14 scalable and configurable identifier filters for selecting the incoming messages the application needs and discarding the others. To receive FIFOs, FIFO 0 and FIFO 1 are used by hardware to store incoming messages. Each FIFO can store three complete messages. The FIFOs are managed completely by hardware. This simplified block diagram of the BX CAN in dual CAN configuration shows the shared 28 acceptance filters between the two BX CAN modules. The user can assign each filter to either FIFO 0 or FIFO 1 and configure each filter for identifier mask or list mode. Note that this dual CAN configuration is only available for STM32-L496 for A6 devices. The controller area network CAN-BUS was originally designed for automotive applications but is now also used in many other contexts. Here is a summary of CAN interrupt events. Transmit, receive buffers for FIFO 0 and FIFO 1 and error and status change interrupts. Here is an overview of the CAN low power configuration modes. The device is not able to perform any communications in stop, standby or shutdown modes. It is important to ensure that all CAN traffic is completed before the peripheral enters stop or powered down modes. For additional information, refer to the training modules for these peripherals which may affect BX CAN behavior. Reset and clock controller or RCC for more information about the CAN clock control and enable reset. Interrupts for more information about the mapping of the BX CAN's interrupts. General purpose IOs or GPIO for more information about the BX CAN's input and output pins. There are few dedicated application notes with the CAN topic. To learn more about the CAN interface, you can visit a wide range of webpages discussing CAN interface issues and bus monitoring tools. Many digital oscilloscopes support direct reading and analysis of data performed on the CAN bus.