Forum: Mikrocontroller und Digitale Elektronik MCP2515 CAN-Bus Modul


von Alexander (alecxs)


Angehängte Dateien:

Lesenswert?

Ich hab solche MCP2515 CAN-Bus Module im Einsatz, aber die letzte 
Bestellung aus China funktioniert nicht wie erwartet. Liegt wohl daran 
dass ich die Module mit 3v3 vom ESP32 versorge. Der INT hat einen 10k 
Pull-up aber liegt dauerhaft auf GND. Deswegen werden auch keine 
Nachrichten abgeholt. Mit den optisch gleichen Modulen aus der alten 
Bestellung funktioniert es.

Kann ich einfach den CAN Transceiver austauschen gegen einen SN65HVD230D 
oder sollte das Modul mit 5v versorgt werden?

https://www.az-delivery.de/en/products/mcp2515-can-bus-modul

https://www.aliexpress.com/item/1005008333144061.html
: Bearbeitet durch User
von Jens M. (schuchkleisser)


Lesenswert?

Der MCP2515 kann beides, aber der TJA1050 will 5V sehen.
Wenn deine alten Module die gleichen Chips haben hast du arg Glück das 
die gehen, denn du bist definitiv außerhalb der Specs.
von Wastl (hartundweichware)


Lesenswert?

Jens M. schrieb:
> hast du arg Glück das die gehen

Nein! Sondern: "hast du arg Glück dass die gehen"

Jens M. schrieb:
> denn du bist definitiv außerhalb der Specs.

Kannst du das auch begründen?
von Jens M. (schuchkleisser)


Lesenswert?

Wastl schrieb:
> Kannst du das auch begründen?

RTFM

Im Dabla steht eindeutig "Supply 4,75 - 5,25V".
von Peter S. (peter_sch)


Lesenswert?

Es gibt auch ein CAN-Modul mit dem MCP2515, das zwar mit 5 V betrieben 
wird, aber die separate Einspeisung der I/O-Spannung ermöglicht. Bei 
Reichelt kostet es etwas über 11 €. Bei AliExpress habe ich ein solches 
Modul bisher nicht gefunden.

https://www.reichelt.de/de/de/shop/produkt/entwicklerboards_-_can-modul_mcp2562-239277
von Wastl (hartundweichware)


Lesenswert?

Alexander schrieb:
> aber die letzte
> Bestellung aus China funktioniert nicht wie erwartet.

Das versteht kein Schwein. Warum soviel Ärger einhandeln wenn
man für wenig mehr Geld die Module in Deutschland kaufen kann?
Beim deutschen Händler könntest du die Teile einfach zurück-
schicken, beim Chinesen wird das echt Äggdschn. Aber es besteht
für Käufe in Deutschland die Chance dass die Module einwandfrei
funktionieren.
von Wastl (hartundweichware)


Angehängte Dateien:

Lesenswert?

Jens M. schrieb:
> Im Dabla steht eindeutig "Supply 4,75 - 5,25V".

Ja, schuchkleisser, du machst deinen Namen alle Ehre.
von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Alexander schrieb:
> Kann ich einfach den CAN Transceiver austauschen gegen einen SN65HVD230D

Been there, done that.
Hat bei mir funktioniert. Du musst halt schauen, was die sonstigen Pins 
an deinem CAN-Treiber machen und wie die auf der Platine belegt sind. 
(Pin 5 und 8)
von Alexander (alecxs)


Lesenswert?

Jens M. schrieb:
> Der MCP2515 kann beides, aber der TJA1050 will 5V sehen.

Ja da hatte ich wohl nur Glück. War irgendwie der Meinung das auf den 
alten  TJA1051T/3 drauf wären, aber selbst die benötigen ja 5V.

Wastl schrieb:
> Warum soviel Ärger einhandeln wenn
> man für wenig mehr Geld die Module in Deutschland kaufen kann?

Inkl. Versand € 5,19 für 5x Stück, kann man nichts falsch machen. Mit 5V 
funktionieren die auch. Der ESP32 ist an den VSPI Pins 5V tolerant, 
deswegen konnte ich das testen.

Tilo R. schrieb:
> (Pin 5 und 8)

Bin einfach davon ausgegangen die sind pinkompatibel. Wollte nur wissen 
ob Widerstände geändert werden müssen. Also wenn's bei Dir funktioniert 
hat teste ich das auch noch mal.
von Frank K. (fchk)


Lesenswert?

Alexander schrieb:

> Wastl schrieb:
>> Warum soviel Ärger einhandeln wenn
>> man für wenig mehr Geld die Module in Deutschland kaufen kann?
>
> Inkl. Versand € 5,19 für 5x Stück, kann man nichts falsch machen. Mit 5V
> funktionieren die auch. Der ESP32 ist an den VSPI Pins 5V tolerant,
> deswegen konnte ich das testen.

Ja, aber das ist Murks. Schon mal in die Datenblätter geschaut? Auch 
alles verstanden?

Der MCP2515 erkennt an seinen Eingangspins High, wenn die Spannung ≥ 
0.7×Vcc ist. Bei Vcc=5V sind das 3.5V. Kannst Du nachrechnen. Dein ESP 
wird als 3.3V System niemals 3.5V an seinen Ausgangspins liefern. Wenn 
es funktioniert hat, dann nur zufällig. Und wenn es nur zufällig 
funktioniert, dann sind auch 5€ 5€ zuviel.
Also muss der MCP2515 mit 3.3V versorgt werden, damit alles sauber 
funktioniert.

Nächster Punkt: Transceiver. Ja, es gibt reine 3.3V Transceiver. Die 
müssen aber etwas rumtricksen. Schau: CAN ist ein 5V-Standard. 
Rezessiver Pegel ist VCC/2, als 2.5V auf CAN_H und CAN_L. Beim 
dominanten Pegel (also 0) wird CAN_L um 1V runtergezogen und CAN_H um 1V 
hochgezogen. Also CAN_L=1.5V und CAN_H=3.5V. Ein 3.3V Transceiver 
schafft aber niemals 3.5V am CAN_H. Der schafft bestenfalls 3.0V. Zu 
wenig. Als Ausgleich zieht er CAN_L auf 1.0V statt der normgerechten 
1.5V. Ist zwar nicht wirklich konform zur ISO 11898-2, funktioniert aber 
meistens.

Wenn ich 5V zur Verfügung habe, dann nehme ich immer Dual-Supply 
Transceiver wie den MCP2562(FD). Der hat 3.3V am Logikteil und 5V an der 
Busseite, passt also zu einem 3.3V Controller und erzeugt normgerechte 
Buspegel. Das ist dann alles sauber und funktioniert dann nicht nur 
zufällig, sondern immer.

Ich bezahle lieber etwas mehr und habe dafür wirklich funktionierende 
Lösungen.

fchk
von Florian L. (muut) Benutzerseite


Lesenswert?

Warum eigentlich einen MCP2515 verwenden?

Der ESP32 hat ein TWAI, was dem CAN entspricht.
Transceiver mit VIO 3,3V ran wie z.B. ein TJA1043 / TJA1051T/3 oder halt 
ein Tranceiver für 3,3V only (nicht ganz standardkonform mit CAN) wie 
den SN65HVD230.
von Alexander (alecxs)


Lesenswert?

Florian L. schrieb:
> Warum eigentlich einen MCP2515 verwenden?

Wegen der Arduino Libs. Und da sowieso mehrere (2) angeschlossen sind.

Frank K. schrieb:
> Wenn ich 5V zur Verfügung habe, dann nehme ich immer Dual-Supply
> Transceiver wie den MCP2562(FD).

Das wäre der Reichelt Link weiter oben
von Jens M. (schuchkleisser)


Lesenswert?

Wastl schrieb:
> Ja, schuchkleisser, du machst deinen Namen alle Ehre.

Wenn man mich anscheißen will, dann sollte man auch richtig lesen und 
mit überlegen.
Setzen, sechs, nochmal versuchen.
von J. T. (chaoskind)


Lesenswert?

Wastl schrieb:
> Jens M. schrieb:
>> hast du arg Glück das die gehen
>
> Nein! Sondern: "hast du arg Glück dass die gehen"

Ja Herr Oberlehrer. Dieser Hinweis wird auch wahnsinnig viel zur Lösung 
der eigentlichen Problemstellung beitragen. Du darfst dir auf die 
Schulter klopfen.
von Rainer W. (rawi)


Lesenswert?

Alexander schrieb:
> ... aber der TJA1050 will 5V sehen.

Wastl schrieb:
> MCP2515.png
[Operates from 2.7V - 5.5V]
: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Frank K. schrieb:
> Der MCP2515 erkennt an seinen Eingangspins High, wenn die Spannung ≥
> 0.7×Vcc ist.

Ich kann die 5V etwas runter drehen auf 4.75V dann passt es.
: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Alexander schrieb:
> Frank K. schrieb:
>> Der MCP2515 erkennt an seinen Eingangspins High, wenn die Spannung ≥
>> 0.7×Vcc ist.
>
> Ich kann die 5V etwas runter drehen auf 4.75V dann passt es.

Nein, passt nicht. Schon mal das Datenblatt des ESP32 gelesen? Da steht 
drin:
"VOH High-level output voltage min: 0.8 × VDD max: -"
Der Hersteller garantiert nur, dass der High-Pegel am Ausgang mindestens 
0.8×Vcc ist. Und Du willst noch etwas Toleranz haben.

fchk
von Alexander (alecxs)


Lesenswert?

Frank K. schrieb:
> Schon mal das Datenblatt des ESP32 gelesen? D

Nö aber gemessen sind es eher 0.95x

Ich habe halt keine Lust auf den CAN Modulen eine Leiterbahn zu trennen. 
Was wäre denn sinnvoller ein Pegelwandler für 10 MHz, oder die 
SN65HVD230?
: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Frank K. schrieb:
> Da steht drin:
> "VOH High-level output voltage min: 0.8 × VDD max: -"

Bei welchem Ausgangsstrom?
von Frank K. (fchk)


Lesenswert?

Alexander schrieb:
> Frank K. schrieb:
>> Schon mal das Datenblatt des ESP32 gelesen? D
>
> Nö aber gemessen sind es eher 0.95x

Bei Deinem konketen Exemplar mag das aktuell zufällig so sein. Bei einem 
anderen Exemplar kann das weniger sein. Für den Hersteller ist alles 
größer gleich 0.8 ok. Und der schreibt das nicht ohne Grund so rein. Das 
kann sich auch mit der Temperatur ändern, oder mit dem Alter des Chips 
usw. Das weißt Du alles nicht.

> Ich habe halt keine Lust auf den CAN Modulen eine Leiterbahn zu trennen.
> Was wäre denn sinnvoller ein Pegelwandler für 10 MHz, oder die
> SN65HVD230?

Wenn Du normgerechte Buspegel haben willst: Pegelwandler. Und zwar 
solche mit manueller Richtungsumschaltung: 74LVC1T45 und 74LVC2T45. Die 
mit automatischer Richtungsumschaltung wie TXB0108 nimmst Du genau nur 
dann, wenn Du dieses Feature auch tatsächlich brauchst und weißt, was Du 
machst. Die automatische Richtungsumschaltung ist nämlich etwas 
empfindlich.

fchk
von Frank K. (fchk)


Lesenswert?

Rainer W. schrieb:
> Frank K. schrieb:
>> Da steht drin:
>> "VOH High-level output voltage min: 0.8 × VDD max: -"
>
> Bei welchem Ausgangsstrom?

Ist nicht angegeben.

fchk
von Rainer W. (rawi)


Lesenswert?

Frank K. schrieb:
>> Bei welchem Ausgangsstrom?
>
> Ist nicht angegeben.

eben

Frank K. schrieb:
> Bei Deinem konketen Exemplar mag das aktuell zufällig so sein. Bei einem
> anderen Exemplar kann das weniger sein. Für den Hersteller ist alles
> größer gleich 0.8 ok.

Die Ausgangsspannung hängt vom Strom ab. Ohne diese Angabe steht diese 
Worst-Case-Angabe für die Ausgangsspannung in keiner Relation zur 
Anwendung - Exemplarstreuungen hin oder her.
: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Frank K. schrieb:
> 74LVC1T45 und 74LVC2T45

Das wäre dann ein Baustein pro Leitung. Ich glaub dann kann ich CAN bei 
der nächsten Revision auch gleich direkt mit drauf machen und verzichte 
auf das Modul.
von Frank K. (fchk)


Lesenswert?

Alexander schrieb:
> Frank K. schrieb:
>> 74LVC1T45 und 74LVC2T45
>
> Das wäre dann ein Baustein pro Leitung.
oder zwei Leitungen pro Baustein. Du hast CS, SCK, MOSI als EIngang und 
MISO und INT als Ausgang. Wären also zwei 74LVC2T45. Da das SOT23-6 
sind, hält sich der Platzbedarf in Grenzen.

> Ich glaub dann kann ich CAN bei
> der nächsten Revision auch gleich direkt mit drauf machen und verzichte
> auf das Modul.

Das wäre extrem sinnvoll. Und dann nimmst Du Dual-Supply-Transceiver.

fchk
von Alexander (alecxs)


Lesenswert?

Frank K. schrieb:
> Wären also zwei 74LVC2T45

Kannst Du mir eine Mouser Artikelnr. geben, ich steh grad mit Frauchen 
in der Umkleide und bin mit den Suchergebnissen überfordert.
: Bearbeitet durch User
von Frank O. (frank_o)


Angehängte Dateien:

Lesenswert?

Wastl schrieb:
> Jens M. schrieb:
>> Im Dabla steht eindeutig "Supply 4,75 - 5,25V".
>
> Ja, schuchkleisser, du machst deinen Namen alle Ehre.

Das ist aber nicht nett.
von Wastl (hartundweichware)


Lesenswert?

Frank O. schrieb:
> Das ist aber nicht nett.

Wir sprachen vom Chip, nicht von einem Modul wo jeder Hersteller
sein eigenes Süppchen kocht. Der MCP2515 ist nicht auf 5V
Versorgung beschränkt.
von Rahul D. (rahul)


Lesenswert?

Wastl schrieb:
> Hersteller
> sein eigenes Süppchen kocht. Der MCP2515 ist nicht auf 5V
> Versorgung beschränkt.

Alexander schrieb:
> https://www.az-delivery.de/en/products/mcp2515-can-bus-modul

Die Firma ist aber bekannt dafür, auch bei den Chips "ihr eigenes 
Süppchen zu kochen".
von Frank K. (fchk)


Lesenswert?

Alexander schrieb:
> Frank K. schrieb:
>> Wären also zwei 74LVC2T45
>
> Kannst Du mir eine Mouser Artikelnr. geben, ich steh grad mit Frauchen
> in der Umkleide und bin mit den Suchergebnissen überfordert.

595-SN74LVC2T45DCUR

ist im MSOP08 Package. Nicht das kleinste, aber noch gut zu löten.

fchk
von Jens M. (schuchkleisser)


Lesenswert?

Wastl schrieb:
> Der MCP2515 ist nicht auf 5V
> Versorgung beschränkt.

Richtig, der ist ja auch nicht das Problem.
Ich hab oben klar geschrieben das der TJA1050 nicht passt.
Welch sinnlose Idee es war einen 3-5V Controller mit einem 
5V-only-Transceiver zu verheiraten, weiß ich auch nicht.
Aber das ist "Makerschrott", der wird billig ohne technische Info 
vertickt, wird schon passen, Hauptsache ich hab dein Geld.
von Rainer W. (rawi)


Lesenswert?

Rahul D. schrieb:
> Alexander schrieb:
>> https://www.az-delivery.de/en/products/mcp2515-can-bus-modul
>
> Die Firma ist aber bekannt dafür, auch bei den Chips "ihr eigenes
> Süppchen zu kochen".

Die machen überhaupt nichts mit eigenen Chips, sondern haben viel 
CN-Module, angereichert mit Doku, auf dem deutschen Markt verkauft.
: Bearbeitet durch User
von Alexander (alecxs)


Lesenswert?

Das Modul wurde so oft kopiert dass es praktisch überall zu haben ist.
von Rahul D. (rahul)


Lesenswert?

Rainer W. schrieb:
> Die machen überhaupt nichts mit eigenen Chips, sondern haben viel
> CN-Module, angereichert mit Doku, auf dem deutschen Markt verkauft.

Das sag mal Herrn Kirnbichler!
Es ist aber schon komisch, dass sie für manche Bausteine / Module eigene 
(Arduino-)Ansprech-Routinen vorschlagen, obwohl die Bausteine 
originalgetreue Herstellernummer haben, sich aber nicht wie das Original 
verhalten.
Für einen Maker-Stuff-Lieferanten war der Laden vorbildlich bzgl. Doku.
Demnächst ist da dann aber Schicht (im Schacht).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.