MCP2515 class

MCP2515(dvr, cs, rst=None, clk=800000):

Creates an instance of the MCP2515 class. This class allows the control of MCP2515 devices.

Parameters:
  • drv – SPI Driver used ‘(SPI0, ...)’
  • cs – Chip select of the SPI driver
  • rst – Reset pin (default None)
  • clk – Clock speed, default 800 kHz
init(idmode, speed, clock)

Initializes the MCP2515 chip

Parameters:
  • idmode – set the RX buffer id mode (selectable from mcp2515.MCP_STDEXT, mcp2515.MCP_STD, mcp2515.MCP_EXT, or mcp2515.MCP_ANY
  • speed – set the speed of the CAN communication
  • clock – set the clock of the CAN Communication

Possible combination of values for Clock and Speed are:

  • Clock –> 8MHZ

    Clock Speed
    “8MHZ” “5KBPS”
    “8MHZ” “10KBPS”
    “8MHZ” “20KBPS”
    “8MHZ” “31KBPS”
    “8MHZ” “33KBPS”
    “8MHZ” “40KBPS”
    “8MHZ” “50KBPS”
    “8MHZ” “80KBPS”
    “8MHZ” “100KBPS”
    “8MHZ” “125KBPS”
    “8MHZ” “200KBPS”
    “8MHZ” “250KBPS”
    “8MHZ” “500KBPS”
    “8MHZ” “1000KBPS”
  • Clock –> 16MHZ

    Clock Speed
    “16MHZ” “5KBPS”
    “16MHZ” “10KBPS”
    “16MHZ” “20KBPS”
    “16MHZ” “33KBPS”
    “16MHZ” “40KBPS”
    “16MHZ” “50KBPS”
    “16MHZ” “80KBPS”
    “16MHZ” “100KBPS”
    “16MHZ” “125KBPS”
    “16MHZ” “200KBPS”
    “16MHZ” “250KBPS”
    “16MHZ” “500KBPS”
    “16MHZ” “1000KBPS”
  • Clock –> 20MHZ

    Clock Speed
    “20MHZ” “40KBPS”
    “20MHZ” “50KBPS”
    “20MHZ” “80KBPS”
    “20MHZ” “100KBPS”
    “20MHZ” “125KBPS”
    “20MHZ” “200KBPS”
    “20MHZ” “250KBPS”
    “20MHZ” “500KBPS”
    “20MHZ” “1000KBPS”
set_mode(mode)

Sets the operation mode of the MCP2515

Parameters:mode – operation mode (“NORMAL”, “SLEEP”, “LOOPBACK”, “LISTENONLY”, “CONFIG”, “POWERUP”, “ONE_SHOT”)
init_mask(num, data, ext)

Initializes Masks

Parameters:
  • num – 0 to set mask 0 on RX buffer, 1 to set mask 1 on RX buffer
  • data – Data Mask
  • ext – 0 for standard ID, 1 for Extended ID
init_filter(num, data, ext)

Initializes Filters

Parameters:
  • num – number of filter to be set in RX buffer (from 0 to 5)
  • data – Data Filter
  • ext – 0 for standard ID, 1 for Extended ID
send(canid, data, ext=None)

Sends CAN messages

Parameters:
  • canid – ID of the CAN message (bytearray of 4 bytes)
  • data – Data to be sent (list of 8 bytes)
  • ext – 0 for standard ID, 1 for Extended ID (default None - auto detected)
recv()

Receives CAN messages returnung CAN id value and related data message

Returns canid, msg