(CAN) CAN-Bus & Co
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 Lawicell AB
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

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

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
- Platine per USB-Datenkabel anschließen; FTDI-Treiber normalerweise automatisch installieren lassen, andernfalls das offizielle FTDI-Paket verwenden.
- Geräte-Manager: passenden „USB Serial Converter“ anhand Gerätebeschreibung „CANUSB“ identifizieren.
- Für COM-Port-Zugriff: Eigenschaften → Erweitert → „Load VCP“ aktivieren, USB abziehen und wieder einstecken.
- 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.
- 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.
- ↑ https://www.canusb.com/products/canusb-oem-iso/ – Hersteller-Produktseite, abgerufen am 11.10.2026.
- ↑ 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.
- ↑ https://elmicro.com/en/canusb-oem-iso.html – OEM-Produkt- und Bestellseite, abgerufen am 11.10.2026.
- ↑ 4,0 4,1 4,2 4,3 https://www.canusb.com/products/canusb/ – LAWICEL CANUSB, Spezifikationen und Anschlussinformationen.
- ↑ 5,0 5,1 https://www.canusb.com/files/canusb_manual.pdf – LAWICEL CANUSB User Manual, Rev. 1.1-en, 12.07.2026.
- ↑ https://www.canusb.com/support/howto-check-canusb/ – Hersteller-Testanleitung, 02.02.2026.
- ↑ 7,0 7,1 7,2 https://www.canusb.com/support/canusb-support/ – Treiber, DLL, Beispiele, Legacy-Hinweise.
- ↑ https://raw.githubusercontent.com/linux-can/can-utils/master/slcand.c – Offizieller can-utils-Quelltext, insbesondere print_usage; abgerufen am 11.10.2026.
- ↑ 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)