CAN controller driver for ESP32 (esp_can) More...
CAN controller driver for ESP32 (esp_can)
The ESP32 intregates a CAN controller which is compatible with the NXP SJA1000 CAN controller. Thus, it is CAN 2.0B specification compliant and supports two message formats:
As with the SJA1000, the ESP32 CAN controller provides only the data link layer and the physical layer signaling sublayer. Therefore, depending on the physical layer requirements, an external transceiver module is required which converts the CAN-RX
and CAN-TX
signals of the ESP32 into CAN_H
and CAN_L
bus signals, e.g., the MCP2551 or SN65HVD23X transceiver for compatibility with ISO 11898-2.
The driver realizes a low-level CAN driver interface for the ESP32 CAN controller and provides a CAN DLL device that can be used in RIOT's CAN protocol stack. It uses the ESP32 CAN controller in SJA1000 PeliCAN mode. Please refer the SJA1000 Datasheet for detailed information about the CAN controller and its programming.
Files | |
file | can_esp.h |
file | can_params.h |
ESP32 CAN controller driver (esp_can) default parameters. | |
Data Structures | |
struct | can |
Low level device structure for ESP32 CAN (extension of candev_t) More... | |
struct | can_conf_t |
ESP CAN device configuration. More... | |
Macros | |
#define | ESP_CAN_MAX_RX_FILTERS (16) |
Number of receiver acceptance filters. | |
#define | ESP_CAN_MAX_RX_FRAMES (8) |
Number of frames in receiver buffer, must be a power of two. | |
#define | HAVE_CAN_T |
CAN device type can_t is redefined by ESP CAN. | |
#define | HAVE_CAN_CONF_T |
CAN device configuration type can_conf_t is redefined by ESP CAN. | |
Typedefs | |
typedef struct can | can_t |
Low level device structure for ESP32 CAN (extension of candev_t) | |