Raspberry Pi MCP2515 CAN-Bus

      Keine Kommentare zu Raspberry Pi MCP2515 CAN-Bus

Anbei eine Anleitung für die Inbetriebnahme eines ET-MINI SPI CAN CONTROL (Microchip MCP2515) auf dem Raspberry Pi:

mcp2515
Aktuelle Versionen von Wheezy / Jessie verfügen über einen SPI MCP2515 Treiber, der lediglich aktiviert werden muss:

  1. Board anschließen
  2.         Folgende PINs müssen konnektiert werden:
            +3,3V und GND
            SPI (MOSI, MISO, CLK, CE0)
            Interruptleitung (GPIO025 entspricht PIN22)
  3. Das System auf einen aktuellen Stand bringen
  4. sudo apt-get update 
    sudo apt-get upgrade 
    sudo reboot

    SPI aktivieren: Anleitung

  5. Die Datei /boot/config.txt bearbeiten.
  6. dtparam=spi=on
    dtoverlay=mcp2515-can0-overlay,oscillator=20000000,interrupt=25 
    dtoverlay=spi-bcm2835-overlay
    
    sudo reboot

    Das Board hat einen 20MHZ Quarz und der Interrupt PIN ist mit dem Raspberry GPIO025 also dem PIN 22 verbunden. Diese Informationen werden dem Treiber über die Datei /boot/config.txt mitgeteilt.

  7. SocketCAN installieren (can-utils)
  8. sudo apt-get install git
    cd ~
    git clone https://github.com/linux-can/can-utils.git
    cd ~/can-utils
    ./configure
    make
    

    Buildumgebung installieren: Anleitung

  9. Inbetriebnahme
  10. Das Device can0 aktivieren und die Baudrate einstellen (hier 500000 baud):

    sudo /sbin/ip link set can0 up type can bitrate 500000

    Einen CAN Trace erstellen:

    pi@raspberrypi:~/can-utils $ ./candump can0
      can0  214   [8]  00 01 02 03 04 05 06 00
      can0  214   [8]  01 01 02 03 04 05 06 01
      can0  214   [8]  02 01 02 03 04 05 06 02
      can0  214   [8]  03 01 02 03 04 05 06 03
      can0  214   [8]  04 01 02 03 04 05 06 04
      can0  214   [8]  05 01 02 03 04 05 06 05
      can0  214   [8]  06 01 02 03 04 05 06 06
      can0  214   [8]  07 01 02 03 04 05 06 07
      can0  214   [8]  08 01 02 03 04 05 06 08
      can0  214   [8]  09 01 02 03 04 05 06 09
      can0  214   [8]  0A 01 02 03 04 05 06 00
      can0  214   [8]  0B 01 02 03 04 05 06 01
      can0  214   [8]  0C 01 02 03 04 05 06 02
      can0  214   [8]  0D 01 02 03 04 05 06 03
      can0  214   [8]  0E 01 02 03 04 05 06 04
    

    Einen CAN Frame senden:

    ./cansend can0 7E0#013E000000000000