Blue Flower

CAN-BUS

  • CAN-Modul

    Universelles CAN-Modul basierend auf den MCP2515 CAN-Controller und dem ATA6660 CAN-Treiber.

    Kurzbeschreibung

    Hiebei handelt es sich um eine kleine Adapterplatine die über ein 10poliges Flachbandkabel mit dem Host-Controller-Board verbunden werden kann. Für die Ansteuerung des CAN-Controlles  wird die SPI-Schnittstelle vom Host-Prozessor verwendet. Der CAN-Controller wird mit einem externen 20 MHz Quarz betrieben.

    Die CAN-BUS Datenleitungen werden auf einen 9 poligen SUB-D Stecker geführt und die Pin-Belegegung richtet sich nach dem CIA-Standard.

    Mittels Jumper JP1 kann eine 120 ohm Terminierung für die Signalleitungen CAN-H und CAN-L aktiviert werden.
    Mit den  optionalen  Widerstände R2 (Pullup für CAN-H nach +5V) und R10 (Pulldown nach GND) kann das Modul an hersteller spezifischen Bussysteme angepasst werden.

    Mit dem Jumper JP4 kann der StandBy Modus vom CAN-Bustreiber verhindert werden (bei gesetzen Jumper ist der Treiber immer aktiviert) ansonsten hängt der StandBy-Mode vom Eingangssignal "CTR_ATA" (Pin 7) ab.

    Schnittstellen Beschreibung:

    • 2x5 poliger Pin Header

      Pin Funktionsbeschreibung
      1 MOSI - SPI-Schnittstelle Dateneingangssignal
      2 SS - Chip Select Signal für den CAN-Controller (low aktiv)
      3 MISO - SPI Schnittstelle Datenausgangssignal
      4 INt1_MCP - Interrupt Ausgangssignal vom CAN-Controller (10 k Pull-Up nach +5V)
      5 SCK - SPI Schnittstelle Taktsignal (Eingang)
      6 RXCAN - RX-Signal vom CAN-Transceiver. Bietet die Möglichkeit den Host-Controller mittels Interrupt aus dem Sleepmoudus zu wecken. Bei Bedarf kann der Widerstand R1 (10 kohm) als PullUp nach +5V bestückt werden.
      7 CTR_ATA - Eingangssignal um den CAN-Transceiver in den StandBy Mode zu versetzen:
      - High: CAN-Transceiver ist aktiviert
      - Low: CAN-Transceiver im StandBy Mode
      8 OSC1_MCP2515 - Bei Bedarf kann bei gesetzen Jumper JP3 das Taktsignal vom 20 MHz Quarz abgegriffen werden, bzw. wenn der Quarz nicht bestückt ist ein externes Taktsignal von den CAN-Controller eingespeisst werden.
      9 +5 V Versorgungsspannungs Eingang
      10 GND- Masse

      Hinweis: Mit den Widerstände R5-R6 (1k)  erfolgt die Entkopplung von der SPI-Programmierschnittstelle, werden mehrere CAN-Module an der SPI-Schnittstelle betrieben so müssen diese Widerstände gebrückt werden und und auf dem Host-Controller müssen die Signalleitungen für die ISP-Programmierschnittstelle entkoppelt werden.
    • SUB-D9 Stecker X1 (männlich)

      Pin Beschreibung
      1 nicht belegt
      2 CAN-Low
      3 Masse
      4 nicht belegt
      5 nicht belegt
      6 nicht belegt
      7 CAN-High
      8 nicht belegt
      9 nicht belegt

     

    Schaltplan

    Schaltplan MCP 2515 - Adapter
    Abb. 1.1 - MCP 2515 Adapter Schaltplan

    Download als PDF:  Schaltplan.pdf

    3D-Ansichten (Eagle3D)

    CAN MCP2515 Adapter

    Abb. 1.2   MCP 2515 Adapter - Eagle 3D Ansicht von der Bestückungsseite

    MCP 2515 Adapter - Eagle3D Ansicht von der Leiterbahnseite

    Abb. 1.3 MCP 2515 Adapter - Eagle3D Ansicht von der Leiterbahnseite

    Layout (Google Sketchup)

    Bestückungsseite incl. Bestückungsdruck   Leiterbahnseite
    Abb.1.4-Bestückungsseite   Abb.1.5 - Leiterbahnseite

    Und so siehts in echt aus

     

    Leiterplatte von oben   Leiterplatte von Unten
    Abb.1.6 - Foto von der Bestückunsseite   Abb. 1.7 Foto von der Leiterbahnseite

     

    Betrieb des Moduls an einem Raspberry Pi 3 

    Um das Modul mit dem Raspberry Pi 3 zu verwenden, muss die Hardware leicht modifiziert werden, da der Pi keine +5V an seine Eingänge verträgt. Dadurch wird nun der MCP2515 und die Pull-Up Widerstände von den SPI-Leitungen (und IRQ) mit +3,3V vom Raspberriy versorgt. Und der Rest der Schaltung hängt weiterhin an den +5V die auch vom Raspberry zur Verfügung gestellt werden. Mein Testaufbau mit dem modifzierten Modul und Raspberry Pi 3 hat prima funktioniert.

    Hier folgt nun eine Beschreibung der Modifikationen für den Betrieb mit einem Raspberry Pi 3

    • Widerstand R4 um 90° drehen so das er Kontakt mit dem unteren Ende von R3 hat.Raspi PI3 - Modifikation Bestückungsseite
      Abb.1.8 - Foto von der Modifikation auf der Bestückunsseite und Anschlussbelegung
    • Leiterbahn am oberen Pad von R4 unterbrechen (+5V werden abgetrennt).
    • JP6 oberer Pin  wird als Anschluss für die +3,3V vom Raspberry verwendet.
    • JP6: die Leiterbahn am oberen Pin auf der Leiterbahnseite auftrennen.Raspberry Pi 3 - Modifikation Leiterbahnseite
      Abb.1.9 - Foto von der Modifikation auf der Leiterbahnseite

    • Anderer Seite von der aufgetrennten Leiterbahn nun mit +5V (oben am Elko) verbinden.
    • Jumper "JP4" setzen, keine Standby Kontroller über den Anschlussstecker. Der MCP ist immer aktiviert.

    Raspberry Pi3 konfigurieren für den SPI-Support (wirklich nur eine Kurzanleitung, bzw. Gedankestüzte):

    https://geier99.de/wiki/doku.php?id=pi3_tipps

     

  • STM32-CAN – Hardware V1.2

     STM32-CAN - Hardware V1.2
         Abb. 1.1  STM32-CAN V1.2 Hardware

     

    Hardware Modifikationen (L10009.02):

    • Bugfix V-Bus  Signal  
    • LED 3 (grün) hinzugefügt, dient jetzt als Rx-Status LED
    • Low-Speed CAN-Bus jetzt fest auf SUB-D9.  (Pin 4 - CAN-LOW, Pin 9 - CAN-High)
      Somit kann das Interface mit einer speziellen Firmware als Gateway zwischen dem Low-Speed und High-Speed CAN-Bus eingesetzt werden.

    Schaltplan:
    Schaltplan STM32-CAN  - Version 1.2

    Abb. 1.2 Schaltplan STM32-CAN Version V1.2

     

    SUB-D9 Steckerbelegung (männlich):

    Pin-Nr.  Beschreibung
    1  nicht verwendet
    2  CAN-LOW -Signal
     Auswahl LOW/HIGH Speed CAN Bus erfolgt mittels DIP-Schalter 
    3  GND (optional)
    4  CAN2 -  LOW
     vom  CAN LOW-Speed Bus Treiber
    5  nicht verwendet
    6  GND
    7  CAN-HIGH Signal
     Auswahl LOW/HIGH Speed CAN Bus erfolgt mittels DIP-Schalter 
    8  nicht verwendet
    9  CAN2 - High
     vom CAN Low Speed Bus Treiber

     

     

    Software:

    Die neue Hardware wird ab den Softwareversionen V2.0.x  unterstützt. Wobei grundsätzlich auch die alte Version verwendet werden kann, allerdings wird dann die grüne LED nicht unterstützt.

    Software V2.0.3 / V3.0.3:

    • Benutzerdefinierte Baudrate für 47,619 kBaud (Saab-Fahrzeuge) hinzugefügt.
      ( Benutzerdefinierte Baudrate = 4762 )

    Software V2.0.2 / V3.0.2:

    • Benutzerdefinierte Baudrate von 95,234 kBaud  hinzugefügt.
      (Benutzerdefinierte Baudrate = 9500))
    • Versionsnummer ab V3.x.x    (ab V3.0.2) ist die CAN-Hacker kompatible Variante die die Baudraten von:
      - 800 kBit
      - 1 Mit 
      unterstützt.

    Software V2.0.1:

    • Lawicel Protokoll um den Befehl F[CR] - Read Error Status erweitert
    • CAN-Error Status abfragen (Vorerst wird nur das 'Bus Error (BEI)' Bit unterstützt! )
    • Anzeige von CAN-Buss Error mittels synchronem Blinke aller LEDs.
      Ebenso wird beim Buserror die Read Error Status Meldung ohne Anforderung gesendet (maximal 1 mal pro Sekunde)

    Software V2.0.0:

    • Rx-Status, LED 3 (grün) toggeln wenn CAN-Botschaften empfangen werden
    • Watchdog abgeschaltet
    • CAN-Error Handling verbessert (ABOM auf enabled gesetzt)

     
    Die neune Software Versionen sind auf der  STM32-CAN - Download Page  zu finden!     (nur registrierte Benutzer)

     

    STM32CubeMX - Testprojekt für STM32-CAN

    In Kürze werde ich hier eine kleine Anleitung für STM32CubeMX veröffentlichen, die beschreibt wie man meine Hardware mit dem CubeMX programmieren kann. Zur Kurzbeschreibung gehts hier:
    STM32-CAN CubeMX - Projekt

    Das CubeMX-Projekt ist hier: Github: STM32-CAN - CubeMX Testprojekt veröffentlicht.

    Status (V0.3):
    - LED ansteuern
    - Lawcel Protokoll teilweise implementiert, so das der CAN-Hacker als CAN-Logger verwendet werden kann
    - CAN TX-Message Testbotschaft  senden, beim Empfang (Lawicel)  zum Senden einer CAN-Botschaft
    - Rx-Message empfangen (blaue LED wird getoggelt) und die Daten über Lawicel an den PC senden (CAN-Hacker zeigt
      die Botschaft im Monitor oer Trace-Fenster an)
    - Normal Mode oder Listen Only Mode werden unterstützt
    - Auswahl der Baudrate vom CAN-Hacker übernehmen

    Status (V0.1):
    - LED ansteuern
    - CAN1 initialisiere  500 kBaud
    - TX-Message senden
    - Rx-Message empfangen (blaue LED wird getoggelt)

     

    Wichtiger Hinweis für die Leute, die mein Protoypen-Board von mir erhalten haben:
    Bitte nicht flashen, da sonst mein Bootloader überschrieben wird, und somit kein Firmware update mehr möglich ist.

    Important not for the people who got my protoype interface from me:
    Do not flash the interface, becaus my integrated bootloader will be erased, and so no further firmware upodates are possible.

     

     


    Zur Zeit sind alle Prototypen verkauft. Eventuell, wenn sich noch ein paar Interessenten finden, werde ich wieder welche fertigen lassen.

    für 25,-EUR inkl. Versand erwerben könnt. Wer kein PayPal verwenden will, kann mich auch über das Kontaktformular kontaktieren.

    Der Lieferumfang entspricht obiger Abbildung Abb.1.1

    Hinweise:
    - Unversicherter Postversand
    - Versand nur innerhalb der EU - Außerhalb der EU nur auf Anfrage
    - Es handelt sich hierbei um einen Privatverkauf! 
    - Die gesetzliche Gewährleistung wird hiermit ausgeschlossen. Der Käufer akzeptiert dies mit Klick auf den "Jetzt kaufen" Button
    -  Das Interface wird vor dem Versand nochmal auf Funktion geprüft.