libopencm3
A free/libre/open-source firmware library for various ARM Cortex-M3 microcontrollers.
g4/fdcan.h File Reference

Go to the source code of this file.

Macros

#define CAN1   FDCAN1_BASE
 
#define CAN2   FDCAN2_BASE
 
#define CAN3   FDCAN3_BASE
 
#define CAN_MSG_BASE   FDCAN1_RAM_BASE
 
#define FDCAN_RXFIS_BASE   0x0090
 
#define FDCAN_RXFIA_BASE   0x0094
 
#define FDCAN_RXFI_OFFSET   0x0008
 
#define FDCAN_RXGFC(can_base)   MMIO32(can_base + 0x0080)
 
#define FDCAN_XIDAM(can_base)   MMIO32(can_base + 0x0084)
 
#define FDCAN_HPMS(can_base)   MMIO32(can_base + 0x0088)
 
#define FDCAN_TXBRP(can_base)   MMIO32(can_base + 0x00C8)
 
#define FDCAN_TXBAR(can_base)   MMIO32(can_base + 0x00CC)
 
#define FDCAN_TXBCR(can_base)   MMIO32(can_base + 0x00D0)
 
#define FDCAN_TXBTO(can_base)   MMIO32(can_base + 0x00D4)
 
#define FDCAN_TXBCF(can_base)   MMIO32(can_base + 0x00D8)
 
#define FDCAN_TXBTIE(can_base)   MMIO32(can_base + 0x00DC)
 
#define FDCAN_TXBCIE(can_base)   MMIO32(can_base + 0x00E0)
 
#define FDCAN_TXEFS(can_base)   MMIO32(can_base + 0x00E4)
 
#define FDCAN_TXEFA(can_base)   MMIO32(can_base + 0x00E8)
 
#define FDCAN_CKDIV(can_base)   MMIO32(can_base + 0x0100)
 
#define FDCAN_RXGFC_RRFE   (1 << 0)
 
#define FDCAN_RXGFC_RRFS   (1 << 1)
 
#define FDCAN_RXGFC_ANFE_SHIFT   2
 ANFE[1:0]: Accept non-matching frames w/ extended ID. More...
 
#define FDCAN_RXGFC_ANFE_MASK   0x3
 
#define FDCAN_RXGFC_ANFS_SHIFT   4
 ANFS[1:0]: Accept non-matching frames w/ standard ID. More...
 
#define FDCAN_RXGFC_ANFS_MASK   0x3
 
#define FDCAN_RXGFC_F1OM   (1 << 8)
 
#define FDCAN_RXGFC_F0OM   (1 << 9)
 
#define FDCAN_RXGFC_LSS_SHIFT   16
 LSS[4:0]: List size of standard ID filters. More...
 
#define FDCAN_RXGFC_LSS_MASK   0x1F
 
#define FDCAN_RXGFC_LSE_SHIFT   24
 LSE[3:0]: List size of extended ID filters. More...
 
#define FDCAN_RXGFC_LSE_MASK   0xF
 
#define FDCAN_RXFIFO_FL_MASK   0xF
 
#define FDCAN_RXFIFO_GI_MASK   0x3
 
#define FDCAN_RXFIFO_PI_MASK   0x3
 
#define FDCAN_RXFIFO_AI_MASK   0x3
 
#define FDCAN_TXFQS_TFFL_MASK   0x7
 
#define FDCAN_TXFQS_TFGI_MASK   0x3
 
#define FDCAN_TXFQS_TFQPI_MASK   0x3
 
#define FDCAN_TXEFS_EFFL_MASK   0x7
 
#define FDCAN_TXEFS_EFGI_MASK   0x3
 
#define FDCAN_TXEFS_EFPI_MASK   0x3
 
#define FDCAN_CKDIV_PDIV_SHIFT   0
 
#define FDCAN_CKDIV_PDIV_MASK   0xF
 
#define FDCAN_SFT_MAX_NR   28
 Amount of standard filters allocated in Message RAM This number may vary between devices. More...
 
#define FDCAN_EFT_MAX_NR   8
 Amount of extended filters allocated in Message RAM This number may vary between devices. More...
 
#define FDCAN_LFSSA_OFFSET(can_base)   ((FDCAN_BLOCK_ID(can_base) * 0x0350) + 0x0000)
 
#define FDCAN_LFESA_OFFSET(can_base)   ((FDCAN_BLOCK_ID(can_base) * 0x0350) + 0x0070)
 
#define FDCAN_RXFIFOS_OFFSET(can_base)   ((FDCAN_BLOCK_ID(can_base) * 0x0350) + 0x00B0)
 
#define FDCAN_RXFIFO_OFFSET(can_base, fifo_id)    (FDCAN_RXFIFOS_OFFSET(can_base) + (0x00D8 * (fifo_id)))
 
#define FDCAN_TXEVT_OFFSET(can_base)   ((FDCAN_BLOCK_ID(can_base) * 0x0350) + 0x0260)
 
#define FDCAN_TXBUF_OFFSET(can_base)   ((FDCAN_BLOCK_ID(can_base) * 0x0350) + 0x0278)