(CAN) CAN-Bus & Co

Aus TippvomTibb
Zur Navigation springen Zur Suche springen

Allgemeines

Hin und wieder begegnet mir der CAN-Bus auch außerhalb des Einsatzortes KFZ (z.B. (CAN) USB2CAN). Um nicht jedes mal recht mühsam die Infos zum weiteren Verständnis aus Büchern (ja, sowas gibt's auch noch;-)) und dem Internet zusammensuchen zu müssen, habe ich hier mal angefangen die für mich notwendigen Informationen zusammenzustellen.

Feldbusse

CAN (Controller Area Network) gehoert mit dem

  • LIN-Bus
  • FlexRay
  • MOST
  • Byteflight und
  • Intellibus

zu den Fledbus-Systemen, die im Bereich Automotive die groeszte Verbreitung finden.

Die Pseudodefinition aus Wikipedia

Ein Feldbus ist ein Bussystem, das in einer Anlage Feldgeräte wie Messfühler (Sensoren) und Stellglieder (Aktoren) zur Kommunikation mit einem Automatisierungsgerät verbindet.

finde ich in sofern widerspruechlich, als auch zu eng gefasst, da weiter unten im Artikel die o. g. Bussysteme aufgelistet werden, aber ein Auto als Feldgeraet einzuordnen braucht doch ein wenig Fantasie.

Historie

Im Schnelldurchlauf:

Das CAN ist ein serielles Bus-System.

Entwickelt wurde es von der Robert-Bosch GmbH ab 1983.

Das CAN-Protokoll ist durch Patente geschuetzt.

Specification 2.0 wurde 1991 veroeffentlicht.

CAN ist eine reine DataLinkLayer (Sicherungsschicht) Implementation.

ISO 11898 wurde 1993 veroeffentlicht (Road vehicles - Interchange of digital information - Controller area network (CAN) for high speed communication.

CANopen Protokoll von CiA (CANinAutomation) 1995 veroeffentlicht.

CiA spezifiziert CAL (CAN Applikation Layer)

2000 Entwicklung von TTCAN (Time-triggered communication)

Eigenschaften

  • Busstruktur (Topologie) mit einem TrunkCable
  • Zweileitungssystem (verdrillt)
  • Busterminierung an jedem Ende des TrunkCables mit einem 120 Ohm Widerstand
  • Anschluss der Teilnehmer mit einem DropCable
  • Bis zu 1 Mbps, dann aber max TrunkCable-Laenge 40 m
  • Bis zu 8 Bytes können mit einer Nachricht (Frames) uebertragen werden.
  • Multi-Master Zugriff
  • Bus Arbitration (Streit-Schlichter) bei gleichzeitigem Zugriff mehrerer Sender
  • Broadcast Nachrichten
  • Keine Teilnehmer-Adressen (relevante Nachrichten werden gefiltert)
  • Nachrichten Anforderung moeglich
  • Error Detection und Signaling durch spezielle Frames.
  • Automatische Wiederholung der Nachricht bei einem Fehler.
  • Automatische Deaktivierung von Teilnehmern (nodes) bei dauerhaften Fehlern.


Controllerboard CANUSB-OEM-ISO INTERFACE ADAPTER TYP 122

CANUSB-OEM-ISO

Recherchestand: 11. Oktober 2026. Die CANUSB-OEM-ISO ist die galvanisch getrennte Einbauplatine des LAWICEL CANUSB. Hersteller/Fertigung: ELMICRO Computer. Treiber, ASCII-Protokoll und API sind mit CANUSB kompatibel.[1]

Schnellanschluss:

  • USB an den Computer
  • CAN_H an D-Sub-Pin 7, CAN_L an Pin 2, CAN_GND an Pin 3.
  • Keine externe Versorgung am CAN-Stecker einspeisen.


Platinenbilder

Paltinenfoto der Standardbestückung mit Mini-B und D-Sub9


Eckdaten und Varianten

Merkmal Angabe / Einordnung
Bauform Offene FR4-Einbauplatine; kein Gehäuse
Isolation Bauteile mindestens 1 kV; Kriechstrecke mindestens 3 mm
Bedeutung der Isolation Kurzzeitige Bauteilprüfspannung, keine zulässige dauernde Betriebsspannung; Datenblatt sieht Versorgungsspannungen über 42 V DC nicht vor
Platinenmaß 66,04 × 45,72 mm
Befestigung Vier Bohrungen Ø 3,20 mm; Lochabstände 58,42 × 38,10 mm
Standardanschlüsse USB Mini-B; CAN D-Sub9, männlich
Optionen USB 2×5-Pads, Raster 2,54 mm; CAN sechspolige Federkraftklemme, Raster 5,08 mm
Bestellbezeichnung CANUSB/OEM122: isoliert / Mini-B / D-Sub9

OEM-spezifische Angaben: Datenblatt vom 24.06.2015.[2] Varianten und Lieferbestückung vor Bestellung bestätigen. Die Hersteller-Shopseite nennt 122,90 € netto zuzüglich Versand; das ist ein abgelesenes Angebot, kein verbindlicher aktueller Kaufpreis.[3]

CANUSB-Funktion Angabe
Bus Classical CAN 2.0A/2.0B; 11-/29-Bit-Identifier, RTR; bis 1 Mbit/s
USB USB 2.0 Full Speed, Versorgung über USB
CAN-Controller SJA1000, 16 MHz
Empfang 32 Frames FIFO; optionale Millisekunden-Zeitstempel
Anzeigen Grün: CAN-Aktivität; Rot: CAN-Fehler
Software FTDI VCP oder D2XX; LAWICEL API-DLL 32/64 Bit

Diese Funktionen stammen vom kompatiblen CANUSB.[4] CAN FD wird nicht unterstützt. Die Gehäusemaße, Stromaufnahme und Temperaturfreigabe des normalen Dongles sind kein eigenständiger OEM-Nachweis. Ebenso darf 1 Mbit/s nicht als Garantie verlustfreier Aufzeichnung eines voll ausgelasteten Busses verstanden werden.

Anschlussbelegungen

D-Sub9: CAN

Pinzahlen am Steckverbinder verwenden: Lötseite und Steckseite sind spiegelverkehrt. Die folgenden drei Signale sind vom Hersteller ausdrücklich für den Betrieb genannt.[4]

Pin Verwendung an dieser Baugruppe
1 Für Betrieb nicht verwenden; tatsächliche OEM-Verschaltung nicht separat dokumentiert
2 CAN_L
3 CAN_GND, galvanisch getrennte Busseite
4 Für Betrieb nicht verwenden; nicht separat dokumentiert
5 Für Betrieb nicht verwenden; Schirmbehandlung nicht separat dokumentiert
6 Für Betrieb nicht verwenden; zusätzliche Masseverbindung nicht separat bestätigt
7 CAN_H
8 Für Betrieb nicht verwenden; nicht separat dokumentiert
9 Keine externe Versorgung erforderlich; nicht mit Batteriespannung verbinden

Ein D-Sub9-Stecker macht das Gerät nicht zu RS232. Insbesondere nicht an einen seriellen PC-Port anschließen.

USB-Pads: 2×5

Orientierung wie in der Maßzeichnung: USB-Pads links, CAN-Pads rechts. Beide Spalten haben dieselbe Zeilenbelegung. Keine erfundene fortlaufende Pin-Nummerierung: Das Datenblatt benennt Signale, keine Pinnummern.[2]

Zeile von oben Linkes Pad Rechtes Pad
1 VCC (+5 V USB) VCC (+5 V USB)
2 D− D−
3 D+ D+
4 GND (USB-Seite) GND (USB-Seite)
5 n.c. n.c.

Nicht blind einen beliebigen Mainboard-USB-Stecker aufsetzen: Position des fehlenden Pins und der freien Leitung am konkreten Kabel prüfen. USB-GND nicht mit CAN_GND brücken, wenn die galvanische Trennung erhalten bleiben soll. Mini-B und Header nicht gleichzeitig an zwei USB-Hosts anschließen.

CAN-Pads / optionale Klemme

Die Zeichnung zeigt sechs Signalpositionen mit jeweils zwei horizontalen Lötpads. Von oben nach unten in der Herstellerzeichnung:[2]

Position Signal Verbindung zum D-Sub
1 CAN_H Pin 7
2 CAN_H Pin 7
3 CAN_L Pin 2
4 CAN_L Pin 2
5 CAN_GND Pin 3
6 CAN_GND Pin 3

Signalreihenfolge aus der Zeichnung, D-Sub-Zuordnung aus den CANUSB-Anschlussangaben. Die Nummern 1–6 sind hier Positionshilfen, keine aufgedruckten Hersteller-Pinnummern. Masse auf der Busseite ist nicht USB-Masse.

Praktischer Kabelaufbau

Computer / Board Gegenstelle
USB Mini-B USB-Host über geeignetes Datenkabel
D-Sub 7 / CAN_H-Pad CAN_H der Gegenstelle
D-Sub 2 / CAN_L-Pad CAN_L der Gegenstelle
D-Sub 3 / CAN_GND-Pad CAN-Bezugsmasse der Gegenstelle

CAN_H/CAN_L als verdrilltes Paar führen. An beiden physikalischen Busenden jeweils 120 Ω zwischen H und L; einen zusätzlichen Abschluss nur setzen, wenn die Platine am Busende sitzt und dort noch kein Abschluss vorhanden ist. Bei ausgeschalteten Geräten ergeben zwei parallele 120-Ω-Abschlüsse rechnerisch etwa 60 Ω. Eine onboard zuschaltbare Terminierung ist in den recherchierten OEM-Unterlagen nicht belegt. Für normales Senden braucht es einen weiteren aktiven CAN-Knoten, der quittiert.[4]

Bauteile / Teilstückliste

Keine vollständige Hersteller-BOM gefunden. Die Tabelle ist eine Funktions- und Identifikationsliste, keine belastbare Einkaufsstückliste. Nicht lesbare Werte und Bestückungsreferenzen werden nicht ergänzt.

Baugruppe / Bauteil Identifikation Belegstatus
USB-FIFO FTDI FT245RL In CANUSB-Unterlagen genannt; entsprechendes IC im OEM-Foto
CAN-Controller NXP/Philips SJA1000 Dokumentiert; NXP-IC im Platinenfoto
Mikrocontroller Atmel AVR CANUSB-Handbuch; konkreten OEM-Typ am eigenen Board ablesen
CAN-Transceiver CANUSB nennt 82C251 Nicht als verbindliche OEM-BOM behandeln; exakten Aufdruck prüfen
Isolations-Signalbauteile Typ nicht sicher bestimmt Im OEM-Foto sichtbar; keine öffentliche Bestückungsliste gefunden
Isolierte Versorgung DC/DC-Funktionsblock plausibel Bauteiltyp und Kennwerte nicht verifiziert
Taktbauteile Quarz / Resonator Foto; vollständige Frequenz- und Typzuordnung offen
USB-Buchse Mini-B, SMD OEM-Datenblatt
CAN-Stecker D-Sub9 male, SMD mit mechanischen TH-Pads OEM-Datenblatt
Optionale USB-Stiftleiste 2×5, 2,54 mm Variante; Standardfoto zeigt freie Pads
Optionale CAN-Klemme 6-polig, 5,08 mm Variante; Standardfoto zeigt freie Pads
LEDs / R / C / Schutzbeschaltung Einzelwerte unbekannt Keine vollständige BOM gefunden

Basis-ICs: CANUSB-Produktseite und Handbuch; Sichtbefunde: Herstellerfoto.[4][5]

Schaltung und Schaltplan

Eigenes vereinfachtes Funktionsschema; kein Hersteller-Schaltplan.

Ein vollständiger öffentlich zugänglicher OEM-Schaltplan wurde nicht gefunden. Ebenso fehlen verifizierte Gerberdaten, Netzliste und vollständige BOM. Das Schema zeigt nur die funktionale Architektur. Es ist weder eine Rekonstruktion der tatsächlichen Verdrahtung noch eine Nachbauvorlage. Ein SJA1000-Datenblatt ersetzt keinen OEM-Schaltplan.

Betrieb unter Windows

  1. Platine per USB-Datenkabel anschließen; FTDI-Treiber normalerweise automatisch installieren lassen, andernfalls das offizielle FTDI-Paket verwenden.
  2. Geräte-Manager: passenden „USB Serial Converter“ anhand Gerätebeschreibung „CANUSB“ identifizieren.
  3. Für COM-Port-Zugriff: Eigenschaften → Erweitert → „Load VCP“ aktivieren, USB abziehen und wieder einstecken.
  4. Zugewiesenen COM-Port notieren. Terminal mit 8N1, ohne Handshake und mit CR allein als Sendeabschluss öffnen. Laut Hersteller ist die eingestellte virtuelle Baudrate beliebig; sie ist nicht die CAN-Bitrate.
  5. Zuerst nur Version mit V abfragen; danach passende CAN-Bitrate setzen und Kanal öffnen.

Diese VCP-Schritte sind im Hersteller-Testtutorial beschrieben.[6]

Alternative: D2XX und LAWICEL CANUSB-DLL. DLL-Architektur muss zur Anwendung passen: canusbdrv.dll für 32 Bit, canusbdrv64.dll für 64 Bit. Auch eine 32-Bit-Anwendung unter 64-Bit-Windows braucht die 32-Bit-DLL. Hersteller-Supportseite enthält DLL-Paket, Beispiele und CAN Monitor Lite. Alte Geräte vor Februar 2015 können PID FFA8 statt 6001 besitzen und benötigen besondere Behandlung. Derselbe Adapter sollte nicht parallel von Terminal und D2XX-Anwendung geöffnet werden.[7]

Windows 11 ist hier nicht als separat getestete OEM-Konfiguration nachgewiesen. Den passenden aktuellen FTDI-Treiber und die Anwendungskompatibilität prüfen; alte Windows-Treiber nicht ungeprüft übernehmen.

ASCII-Befehle

Groß-/Kleinschreibung beachten; jede Zeile endet mit CR (0x0D). Konfiguration bei geschlossenem CAN-Kanal.[5]

Befehl Bedeutung
V / N Version / Seriennummer
S0, S1, S2, S3, S4 10, 20, 50, 100, 125 kbit/s
S5, S6, S7, S8 250, 500, 800, 1000 kbit/s
sxxyy SJA1000 BTR0/BTR1 setzen
O / C Kanal öffnen / schließen
tiiildd… / Tiiiiiiiildd… 11-/29-Bit-Datenframe; DLC 0–8
riiil / Riiiiiiiil RTR mit 11-/29-Bit-ID
F Fehlerstatus
Mxxxxxxxx / mxxxxxxxx Acceptance-Code / -Maske
Z0 / Z1 Empfangszeitstempel aus / an

Beispiel für einen eigenen Testbus mit 500 kbit/s; jede Zeile einzeln senden und Antwort abwarten:

V
S6
O
F
C

Ein Sendetest erst am geeigneten Testbus:

t12320102

Bedeutung: ID 0x123, zwei Datenbytes 01 02. Nicht als BMS-Abfrage oder sonstigen gerätespezifischen Befehl interpretieren. Erfolg bei Datenframes: z beziehungsweise Z plus CR; Fehler: BEL (0x07). Ein angenommenes Sendekommando ist kein Nachweis, dass die Zielanwendung die Daten verstanden hat.

Betrieb unter Linux

Erkennung

lsusb
sudo modprobe ftdi_sio
journalctl -k -n 50
ls -l /dev/serial/by-id/

Typischer Port: /dev/ttyUSB0; bei mehreren Adaptern stabilen by-id-Pfad bevorzugen. Moderne Geräte verwenden FTDI-PID 6001, alte FFA8.[7] Kein ttyUSB-Port: USB-Datenkabel, Treiberbindung, PID und Zugriffsrechte prüfen. D2XX-Zugriff und ftdi_sio können um das Gerät konkurrieren.

So wurde die Karte bei mir eingebunden.

lrwxrwxrwx. 1 root root 13 11. Okt 19:24 usb-LAWICEL_CANUSB_LWZ2QLNW-if00-port0 -> ../../ttyUSB1
Bus 003 Device 056: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC

SocketCAN mit slcand

Benötigt can-utils, iproute2 und Kernelmodul slcan. Beispielinstallation je nach Distribution:

# Debian / Ubuntu
sudo apt install can-utils iproute2
# Fedora
sudo dnf install can-utils iproute
# openSUSE: Paketverfügbarkeit im verwendeten Release prüfen
sudo zypper install can-utils iproute2

Vorher andere Programme am seriellen Port schließen. 500-kbit/s-Beispiel:

sudo modprobe slcan
sudo slcand -o -c -f -s6 -S 115200 /dev/ttyUSB0 can0
sudo ip link set can0 up
ip -details -statistics link show can0
candump -tz can0

-s6 setzt CAN auf 500 kbit/s; -S 115200 betrifft den seriellen Port. -c/-o schließen/öffnen den Kanal, -f liest Status. Dies ist die Verwendung des can-utils-Werkzeugs, kein nativer USB-CAN-Netzwerktreiber.[8]

Nur am Testbus senden:

cansend can0 123#0102

Für das Beenden: can0 mit ip link herunterfahren und den zu diesem Adapter gehörenden slcand-Prozess gezielt beenden. Keine pauschale Beendigung anderer Adapterprozesse.

Python unter Linux und Windows

Alternative ohne slcand; VCP muss erreichbar sein. Beispiel erzeugt keine eigenen Datenframes, arbeitet jedoch im normalen aktiven CAN-Modus und kann ACK/Fehlerverhalten des Busses beeinflussen.

python -m venv .venv
# Linux:
source .venv/bin/activate
# Windows PowerShell stattdessen:
# .venv\Scripts\Activate.ps1
python -m pip install python-can pyserial
import can

PORT = "/dev/ttyUSB0"  # Windows: z. B. "COM5"
with can.Bus(interface="slcan", channel=PORT,
             tty_baudrate=115200, bitrate=500000,
             listen_only=False) as bus:
    try:
        while True:
            message = bus.recv(timeout=1.0)
            if message is not None:
                print(message)
    except KeyboardInterrupt:
        pass

API gemäß python-can-SLCAN-Dokumentation.[9] Das Beispiel ist dokumentationsbasiert, nicht mit einer realen CANUSB-OEM-ISO getestet.

Listen-only nicht voraussetzen: python-can bietet listen_only=True und slcand bietet -l; beide senden dafür L. Dieser Befehl steht nicht im aktuellen CANUSB-Handbuch. Seine Unterstützung durch die konkrete Firmware muss gesondert nachgewiesen werden. Ein lediglich lesendes Programm ist kein garantierter Silent-Sniffer.

Fehlerdiagnose und Grenzen

Symptom Prüfung
Kein COM-Port unter Windows Load VCP aktivieren; richtigen Converter auswählen; neu verbinden
Kein ttyUSB unter Linux ftdi_sio, PID, Kabel und konkurrierender D2XX-Zugriff
V antwortet, aber keine CAN-Frames CAN-Bitrate, H/L, Bezugsmasse, offene/geschlossene Schnittstelle
Rote LED / Busfehler Terminierung, Verkabelung, aktiver quittierender Gegenknoten
Verluste bei hoher Last FIFO/USB/ASCII-Durchsatz; Hardwarefilter und Buslast prüfen
29-Bit-Nachrichten fehlen im Monitor Fähigkeiten der Software prüfen; Hardware unterstützt 29-Bit-IDs

Keine mitgelieferten höheren Protokolle wie CANopen/J1939/BMS-Decodierung; dafür zusätzliche Software und Protokollwissen erforderlich.[7] Batterie-RJ45-Belegungen sind herstellerspezifisch und nicht aus dieser D-Sub-Belegung ableitbar.

Quellen und offene Punkte

Die Recherche begann bei der angegebenen canusb.com-Produktseite und umfasste ELMICRO-Datenblatt, aktuelle CANUSB-Unterlagen, Supportseite und Software-Primärquellen. Gefunden: Herstellerfoto, Datenblattfoto, mechanische Padzeichnung und Treiber-/Protokollunterlagen. Nicht gefunden: separate Rückseitenaufnahme, vollständiger OEM-Schaltplan, vollständige BOM oder eine belastbare OEM-spezifische Dokumentation zusätzlicher Test-/Programmierpads. Bestückung und Firmware können revisionsabhängig sein.

  1. ↑ https://www.canusb.com/products/canusb-oem-iso/ – Hersteller-Produktseite, abgerufen am 11.10.2026.
  2. ↑ 2,0 2,1 2,2 https://elmicro.com/files/elmicro/canusb-oem-iso_spec003.pdf – CANUSB-OEM-ISO Produktspezifikation, 24.06.2015, 2 Seiten.
  3. ↑ https://elmicro.com/en/canusb-oem-iso.html – OEM-Produkt- und Bestellseite, abgerufen am 11.10.2026.
  4. ↑ 4,0 4,1 4,2 4,3 https://www.canusb.com/products/canusb/ – LAWICEL CANUSB, Spezifikationen und Anschlussinformationen.
  5. ↑ 5,0 5,1 https://www.canusb.com/files/canusb_manual.pdf – LAWICEL CANUSB User Manual, Rev. 1.1-en, 12.07.2026.
  6. ↑ https://www.canusb.com/support/howto-check-canusb/ – Hersteller-Testanleitung, 02.02.2026.
  7. ↑ 7,0 7,1 7,2 https://www.canusb.com/support/canusb-support/ – Treiber, DLL, Beispiele, Legacy-Hinweise.
  8. ↑ https://raw.githubusercontent.com/linux-can/can-utils/master/slcand.c – Offizieller can-utils-Quelltext, insbesondere print_usage; abgerufen am 11.10.2026.
  9. ↑ https://python-can.readthedocs.io/en/stable/interfaces/slcan.html – Offizielle python-can-Dokumentation, abgerufen am 11.10.2026.

MCP2515

Modul TODO

MCP2515 vs SJA10001

Wenn man den MCP2515 einsetzen und mit einer klassischen industriellen Kombination wie dem SJA1000 (CAN-Controller) und einem ISO1050 (galvanisch isolierter CAN-Transceiver) vergleicht, muss man wesentliche Unterschiede in der Architektur, Leistungsfaehigkeit und Physik beachten. \[1, 2\]

Architektur und Performance (MCP2515 vs. SJA1000)

Der SJA1000 von NXP gilt als der "Panzer" unter den klassischen CAN-Controllern, waehrend der MCP2515 von Microchip ein kompakter Standalone-Controller fuer kleinere eingebettete Systeme ist. \[2, 3\]

| Kriterium | MCP2515 | SJA1000 | | :---- | :---- | :---- | | Schnittstelle zum Host | SPI (seriell, max. 10 MHz) | Paraller Bus (8-Bit, direkt im Speicher-Interface) | | Empfangspuffer (RX) | Sehr klein: Nur 2 Message Buffer | Groesser: 64-Byte FIFO-Puffer (PeliCAN-Modus) | | Gefahr von Frame-Loss | Hoch bei hoher Buslast (Buffer Overflow) | Sehr gering durch echten Hardware-FIFO |

> * > * Das Puffer-Problem (Rx-Overflow): Da der MCP2515 nur zwei Empfangspuffer besitzt, muessen Sie eingehende Nachrichten extrem schnell via SPI auslesen. Bei einer Busgeschwindigkeit von 500 kbit/s oder 1 Mbit/s und hoher Buslast (\> 40–50 %) kommt es bei SPI-Controllern schnell zu einem Rx-Overflow, bei dem ungelesene CAN-Nachrichten einfach verworfen werden. Der SJA1000 faengt solche Bursts durch seinen 64-Byte-FIFO problemlos ab. \[2, 4\] > * Interrupt-Handling: Beim MCP2515 muessen Sie zwingend mit dem Hardware-Interrupt-Pin (INT) arbeiten. Reines Polling ueber SPI ist bei schnellen Bussen zu langsam und fuehrt unweigerlich zu Datenverlust. \[5, 6\] > * Hardware-Filter nutzen: Da der Host-Prozessor beim MCP2515 durch das langsame SPI-Protokoll gebremst wird, sollten Sie die integrierten 6 Acceptance Filter und 2 Masken des MCP2515 penibel konfigurieren. Lassen Sie den MCP2515 nur die Nachrichten per Interrupt an den PC/Mikrocontroller weitergeben, die Sie wirklich auswerten wollen. \[2, 4\] > *

Transceiver und galvanische Trennung (Die Rolle des ISO1050)

Typische billige MCP2515-Fertigmodule (z. B. fuer Arduino oder Raspberry Pi) nutzen als Transceiver den TJA1050 oder MCP2551. Wenn Sie dies mit einem ISO1050 vergleichen, ergeben sich massive Sicherheits- und Layout-Unterschiede: \[7, 8\]

> * > * Fehlende Isolation beim Standard-MCP2515-Modul: Der ISO1050 ist ein *galvanisch isolierter* Transceiver (bis zu 5000 V), der die empfindliche Elektronik (PC/Raspberry Pi) vor Spannungsspitzen auf dem CAN-Bus (z.B. im Auto oder in der Industrie) schuetzt. Standard-MCP2515-Boards mit dem TJA1050 besitzen keine galvanische Trennung. Schliesst man diese direkt an ein Fahrzeug-Bordnetz an, kann eine Masseschleife oder Ueberspannung den gesamten PC zerstoeren. \[7\] > * Spannungsversorgung (3.3V vs. 5V): Der ISO1050 besitzt getrennte Spannungsversorgungen fuer die Logikseite (VCC1: 3V bis 5.5V) und die Busseite (VCC2: 4.75V bis 5.25V). Guenstige MCP2515+TJA1050-Module laufen oft strikt mit 5V. Wenn Sie ein solches Modul an ein 3.3V-Geraet (wie den Raspberry Pi oder ESP32) anschliessen, benoetigen Sie Pegelwandler (Level Shifter) auf den SPI-Leitungen (vor allem auf der MISO-Leitung), um das Board nicht zu beschaedigen. \[7\] > *

Zusammenfassende Empfehlungen fuer die Praxis

> 1. Fuer Industrie & Automotive: Wenn Sie den MCP2515 in rauen Umgebungen einsetzen wollen, nutzen Sie kein billiges 2-Euro-Modul. Setzen Sie stattdessen auf Boards mit integrierter galvanischer Trennung (z. B. mit einem ISO1050 oder ADM3053 Transceiver) und integrierten TVS-Schutzdioden. > 2. SPI-Takt maximieren: Nutzen Sie einen moeglichst hohen SPI-Takt (der MCP2515 vertraegt bis zu 10 MHz), um die Puffer so schnell wie moeglich zu leeren. Achten Sie dabei auf kurze, gut geschirmte SPI-Leitungen. > 3. Taktquarz beachten: Achten Sie in der Software-Konfiguration (Bit-Timing) penibel darauf, ob auf Ihrem MCP2515-Board ein 8-MHz- oder ein 16-MHz-Quarz verbaut ist. Eine falsche Angabe fuehrt dazu, dass die CAN-Baudrate halbiert oder verdoppelt wird und die Kommunikation komplett fehlschlaegt. \[2, 6, 7\]

\[1\] [https\://adaptivesupport.amd.com](https://adaptivesupport.amd.com/s/question/0D52E00006iHjy4SAC/can-bus-implement-in-spartan-kit?language=zh_CN) \[2\] [https\://www\.flywing-tech.com](https://www.flywing-tech.com/blog/mcp2515-can-bus-overview-performance-and-alternatives/) \[3\] [https\://www\.mikrocontroller.net](https://www.mikrocontroller.net/topic/226261) \[4\] [https\://www\.flywing-tech.com](https://www.flywing-tech.com/blog/mcp2515-can-bus-overview-performance-and-alternatives/) \[5\] [https\://forum.arduino.cc](https://forum.arduino.cc/t/mcp2515-using-coryjfowler-library-on-esp32/1342270?page=2) \[6\] [https\://www\.kreatives-chaos.com](http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515) \[7\] [https\://microcontrollerslab.com](https://microcontrollerslab.com/best-can-bus-modules-mcp2515-buying-guide/) \[8\] [https\://www\.ebay.de](https://www.ebay.de/itm/314870492130)