MCP2515 CAN-Bus Modul

OP #8073492
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

Angehängte Dateien:
: Bearbeitet durch User
#8073516
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.

Beitrag #8073519 wurde von einem Moderator gelöscht.
OP #8073543
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.

#8073558
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

#8073683
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

#8073692
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

#8073710
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
#8073758
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

#8073821
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.

#8073853
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).

#8073925
Lesenswert?

Alexander schrieb:

Das Modul wurde so oft kopiert dass es praktisch überall zu haben ist.

Es ist ja auch UNGLAUBLICH schwierig [tm], das Modul zu nutzen.

a) Betrieb mit 5V an 5V Controller -> Null Problemo b) Betrieb mit 3,3V an 3,3V Controller der Tranceiver muss extra mit 5V gespeist werden RXD vom Tranceiver braucht ca. 2k Vorwiderstand in Richtung Controller als Pegelwandler/Strombegrenzung

Mehr braucht es nicht. Der TJA1050 ist an TXD TTL-kompatibel, verdaut also problemlos 3,3V Signale. Dann braucht es auch KEINERLEI weitere Pegelwandler.

Angehängte Dateien:
: Bearbeitet durch User
#8076575
Lesenswert?

Alexander schrieb:

Die blauen Module haben eigentlich immer mit 3V3 funktioniert. Als pragmatischen Workaround habe ich dem Nutzer geschrieben er soll VCC mit dem 5V Pin verbinden.

Vieles im Elektronikbereich funktioniert außerhalb der Spec „irgendwie“, jedoch: Wenn TJA1050 verbaut dann 3.3V (only) Murks, 5V okay Wenn 65HVD230 verbaut 3.3V okay, 5V Murks

: Bearbeitet durch User
OP #8079033
Lesenswert?

Noch mal ne Murksfrage wenn ich nun beide Modulvarianten am selben SPI betreiben will, eines mit separatem 3v3 Interface für den MCP2515 und eines auf 5V.

Für INT habe ich Pull-Up zu 3v3 für beide MCP2515, sollte funktionieren.

MOSI, SCLK und CS jeweils ohne Pegelwandler funktionieren trotzdem. Ist nicht ganz 0,7 x Vdd aber die MCP2515 haben ja noch eine Sicherheit ggü den Datenblattwerten, in der Praxis passen die Pegel noch mit der halben Versorgungsspannung, also ca. 2,5V

Für MISO des 5V MCP2515 Moduls habe ich einen Spannungsteiler 4k7/10k zum ESP32 dazwischen geschaltet. Passt soweit auch.

Für MISO von dem (höherwertigeren) MCP2515 Modul (mit separatem 3v3 Interface) möchte ich direkt auf den ESP32 gehen.

Da es für beide Module derselbe GPIO ist, wird dann aber in den Knotenpunkt des MISO Spannungsteilers eingespeist - ist das vertretbar oder kann das Probleme machen?

Über CS0, CS1 gesteuert darf ja eigentlich nur jeweils einer senden.

Angehängte Dateien:
: Bearbeitet durch User
OP #8079056
Lesenswert?

Ich habe Dir bereits mitgeteilt dass es hier um Maker Kram mit Fertigmodulen geht. Die blauen 5V Module sind das Thema dieses Threads.

Und ja, es /ist/ UNGLAUBLICH schwierig [tm] /dieses/ Modul an einem ESP32 zu nutzen (innerhalb der Specs)

: Bearbeitet durch User
OP #8079102
Lesenswert?

Gut dann passt es ja soweit danke. Querströme sind über 4k7 nicht das Thema.

Die Pegelwandler für die Gegenrichtung hatte ich ja schon vorgesehen (74LVC2T45 liegen hier) hab ich aus Platzgründen aber erstmal weggelassen. Nicht dass die Platz wegnehmen aber es war kein Platz mehr für nachträgliche Leiterbahnen. MISO hat jetzt noch die zwei Widerstände bekommen, das ging ohne noch mal alles neu zu routen. Die 0,7xVDD kann ich nachträglich mit dem Poti an der 5V Schiene noch einstellen, dass passt auch.

Ziel war es die Trägerplatine mit dem ursprünglichen blauen CAN Modul kompatibel zu halten, dann bleibt es austauschbar.

Die Idee mit dem SN65HVD230 hatte ich auch schon, aber es ist letztendlich einfacher das Modul mit 5V zu betreiben.

: Bearbeitet durch User
OP #8080770
Lesenswert?

Frank K. schrieb:

Wenn Du normgerechte Buspegel haben willst: Pegelwandler. Und zwar solche mit manueller Richtungsumschaltung: 74LVC1T45 und 74LVC2T45.

Werde aus dem Datenblatt nicht so recht schlau. Wozu braucht es eine Richtungsumschaltung?

Habe mir jetzt hier abgeguckt wie die verschaltet werden. Ich würd die ja gern drauf machen, aber die brauchen schon etwas Platz. Vor allem wenn da noch Kerkos dazu müssen.

https://protosupplies.com/product/hi-speed-spi-logic-level-converter-module

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren