candev_mcp2515.h File Reference

Definition of the implementation of the CAN controller driver. More...

Detailed Description

Definition of the implementation of the CAN controller driver.

Author
Toon Stegen toon..nosp@m.steg.nosp@m.en@al.nosp@m.tran.nosp@m..com
Vincent Dupont vince.nosp@m.nt@o.nosp@m.takey.nosp@m.s.co.nosp@m.m
Wouter Symons wosym.nosp@m.@air.nosp@m.sante.nosp@m.lmo..nosp@m.com

Definition in file candev_mcp2515.h.

#include <stdbool.h>
#include "can/candev.h"
#include "cpu_conf.h"
#include "periph/gpio.h"
#include "periph/spi.h"
#include "mutex.h"
#include "xtimer.h"
+ Include dependency graph for candev_mcp2515.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  candev_mcp2515_conf
 MCP2515 configuration descriptor. More...
 
struct  candev_mcp2515
 MCP2515 device descriptor. More...
 

Macros

#define CANDEV_MCP2515_DEFAULT_BITRATE   125000
 Default CAN bitrate.
 
#define CANDEV_MCP2515_DEFAULT_SPT   875
 Default sampling point setup.
 
#define MCP2515_TX_MAILBOXES   3
 Number of transmit mailboxes.
 

Typedefs

typedef struct candev_mcp2515 candev_mcp2515_t
 MCP2515 candev descriptor.
 
typedef struct candev_mcp2515_conf candev_mcp2515_conf_t
 MCP2515 configuration descriptor.
 

Functions

void candev_mcp2515_init (candev_mcp2515_t *dev, const candev_mcp2515_conf_t *conf)
 Initialize a mcp2515 device by assigning a timing and an SPI configuration conf. More...
 

Receive mailboxes and filters number

for RX buffers: the MCP2515 managed 6 acceptance filters in 2 mailboxes:

  • MB0 contains 2 acceptance filters in relation with 1 acceptance mask
  • MB1 contains 4 acceptance filters in relation with 1 acceptance mask
                MB0          MB1
              +------+    +------+
      mask 0  | RXM0 |    | RXM1 | mask 1
              +======+    +======+
     filter 0 | RXF0 |    | RXF2 | filter 2
              +------+    +------+
     filter 1 | RXF1 |    | RXF3 | filter 3
              +------+    +------+
                          | RXF4 | filter 4
                          +------+
                          | RXF5 | filter 5
                          +------+
    
#define MCP2515_RX_MAILBOXES   2
 
#define MCP2515_FILTERS_MB0   2
 
#define MCP2515_FILTERS_MB1   4
 
#define MCP2515_FILTERS   (MCP2515_FILTERS_MB0 + MCP2515_FILTERS_MB1)