Hallo Forum! Ich habe eine Platine designed auf der ich zwei CAN-Ports an einem Teensy 3.2 über SPI ansteuern möchte. Die CAN-Ports habe ich jeweils mit einem MCP2515 und MCP2551 realisiert. Ich habe jetzt jedoch den seltsamen Effekt, dass mein Spannungsteiler zwischen dem RXD-Ausgangspin am MCP2551 (5V) und dem RXCAN-Eingangspin (3.3V) eine ganz andere Spannung ergibt als ich es erwartet hätte. Damit ich eher knapp unter als über die Versorgungsspannung des MCP2515 komme, habe ich in Reihe einen 10kOhm-Widerstand und danach zu GND einen 18kOhm-Widerstand. Daraus sollten sich bei 5V Eingang rechnerisch ca. 3.2V ergeben die am RXCAN-Pin des MCP2515 ankommen sollten. Mir kommt jedoch statt der 3.2V nur ca. 2.5V an. Beim zweiten Port ist es - obwohl der Spannungsteiler dort identisch aufgebaut ist - sogar noch extremer: Dort sind es ca. 1.9V. Der zweite MCP2515 soll jedoch über den CLKOUT des 1. MCP2515 getaktet werden und das ist noch nicht richtig konfiguriert, daher evtl. andere interne Widerstände im IC? Mein Board hat auf TOP- als auch BOTTOM-Layer GND geflutet, aber ich habe schon gesehen das meine GND-Führung vom 18kOhm-Widerstand zu den größeren GND-Flächen nicht die Beste ist. Hier hätte ich aber gehofft das das nicht so einen extremen Einfluss haben sollte!? Kann sich jemand erklären warum mein Spannungsteiler also weit unter 3.2V ergibt? Ich bin leider etwas ratlos. Noch zur Info: * Lötbrücken habe ich geprüft und was da war entfernt * Alle Pins sind korrekt gelötet * Zum Messen habe ich nur ein einfaches Multimeter Danke vorab & Gruß Daniel
Widerstände nachgemessen? LG, Sebastian PS: Warum benutzt du nicht das interne CAN des Teensy?
Vlt ist es der Eingangswiderstand des RxCAN-Pins. Mach die Widerstände mal um einen Faktor 10 kleiner.
:
Bearbeitet durch User
@Sebastian: Da die Widerstände ja bereits in der Schaltung sind weiß ich nicht ob die mir beim Nachmessen genau die puren Werte der einzelnen widerstände geben oder eben aufgrund der Gesamtschaltung "verfälschte Werte" raus kommen. Jedenfalls sind die Werte tatsächlich wenn ich stromlos nachmesse sehr unterschiedlich: R3 (SOLL: 10kOhm, IST: 9,69kOhm) R5 (SOLL: 18kOhm, IST: 11,1kOhm) Ich hab einen meiner übrigens 18kOhm-Widerstände mal ohne Schaltung gemessen: Das war +/-1% korrekt. Können der MCP2515 oder MCP2551 so einen Einfluss auf den Widerstand gegen GND haben aufgrund deren interner Beschaltung? Zum CAN des Teensy: Den nutze ich bewusst nicht, da ich ja wie gesagt zwei CAN-Ports auf dem Board habe und der Teensy nur einen CAN. Ich könnte natürlich 1x Teensy und 1x separat MCP2515 nutzen, aber ich dachte für die Lib die ich verwenden will könnte es einfacher sein 2x den selben Controller zu verwenden.
@T.F.: Aber wenn man generell Widerstände mit 1/10 des Wertes den ich verwendet habe verwenden soll dann müsste das doch bekannt sein? Zumindest in zwei unabhängigen Beispielschaltungen für MCP2551 und MCP2515 im Netz habe ich jetzt gesehen das Leute Widerstände in dem Bereich 10 & 18-22 kOhm verwendet haben. Aber die Widerstände wechseln wäre mal ein Versuch wert. Danke für den Hinweis! Ich schau noch was sich hier an Ideen ergibt und werde ggf. wenn ich die Widerstände wechsel berichten.
Für solche Geschichten gibt es doch extra Transceiver mit eingebautem Pegelwandler. SN65HVDA540 zum Beispiel.
Daniel H. schrieb: > Ich habe jetzt jedoch den seltsamen Effekt, dass mein Spannungsteiler > zwischen dem RXD-Ausgangspin am MCP2551 (5V) und dem RXCAN-Eingangspin > (3.3V) eine ganz andere Spannung ergibt als ich es erwartet hätte. Warum so hochohmig? > Mir kommt jedoch statt der 3.2V nur ca. 2.5V an. Beim zweiten Port ist > es - obwohl der Spannungsteiler dort identisch aufgebaut ist - sogar > noch extremer: Dort sind es ca. 1.9V. Dann hat das Pin einen relativ niedrigen Eingangswiderstand von einigen Dutzend kOhm. Hat das Ding interne, schaltbare Pull-Down Widerstände? Ein normaler CMOS-Eingang hat mehrere Megaohm, da sollte der Spannungsteiler nicht verfälscht werden. Trotzdem ist er unnötig hochohmig. Faktor 10 kleiner ist OK. > Der zweite MCP2515 soll jedoch > über den CLKOUT des 1. MCP2515 getaktet werden und das ist noch nicht > richtig konfiguriert, daher evtl. andere interne Widerstände im IC? Nö. > Mein Board hat auf TOP- als auch BOTTOM-Layer GND geflutet, aber ich > habe schon gesehen das meine GND-Führung vom 18kOhm-Widerstand zu den > größeren GND-Flächen nicht die Beste ist. Hier hätte ich aber gehofft > das das nicht so einen extremen Einfluss haben sollte!? Vollkommen egal. > Kann sich jemand erklären warum mein Spannungsteiler also weit unter > 3.2V ergibt? Ich bin leider etwas ratlos. Falsche Widerstände Interner Pull-Down im Controller
Daniel H. schrieb: > Aber wenn man generell Widerstände mit 1/10 des Wertes den ich verwendet > habe verwenden soll dann müsste das doch bekannt sein? Zumindest in zwei > unabhängigen Beispielschaltungen für MCP2551 und MCP2515 im Netz habe > ich jetzt gesehen das Leute Widerstände in dem Bereich 10 & 18-22 kOhm > verwendet haben. Das Problem ist nicht der MCP2551, denn der hat einen niederohmigen Ausgang. Es ist der MCP2515, der ggf. einen eher niederohmigen EINGANG hat. Das kann man leicht messen. Beide Widerstände auslöten Schalte dein Multimeter in den Strommeßbereich (mA) und verbinde das Eingangspin vom MCP2515 mit 3,3V. Da siehst du, wieviel Eingangsstrom fließt. Das werden einige Dutzend uA sein. Laut Datenblatt sollten es aber nur max. 1uA sein. Entweder ist dein IC durch ESD beschädigt worden oder es gibt noch einen anderen Fehler.
Falk B. schrieb: > Es ist der MCP2515, der ggf. einen eher niederohmigen EINGANG > hat. Das kann man leicht messen. Hat er ja schon. Statt R5 = 18kΩ hat er 11kΩ gemessen. Das erklärt, warum der Spannungsteiler (samt Last) die Spannung halbiert hat. Ich finde deine Empfehlung gut, nochmal in getrenntem zustand zu messen und zu erwägen, dass das IC defekt sein könnte.
Luca E. schrieb: > Für solche Geschichten gibt es doch extra Transceiver mit eingebautem > Pegelwandler. > SN65HVDA540 zum Beispiel. oder welche die direkt mit 3,3V arbeiten - SN65HVD23x Aber trotzdem muss natürlich auch die Spannungsteilerlösung funktionieren.
Daniel H. schrieb: > Da die Widerstände ja bereits in der Schaltung sind Du kannst nicht sinnvoll Widerstände IN einer Schaltung messen. > wenn ich stromlos nachmesse Da ist ja trotzdem alles Mögliche parallel geschaltet. Auch nicht, wenn du "stromlos" misst (einen Widerstand in einer laufenden Schaltung unter Spannung zu messen wäre ja auch echt ausgemachter Unsinn). Stefan ⛄ F. schrieb: > Falk B. schrieb: >> Es ist der MCP2515, der ggf. einen eher niederohmigen EINGANG >> hat. Das kann man leicht messen. > Hat er ja schon. Statt R5 = 18kΩ hat er 11kΩ gemessen. So wie dieser Wert 11k ermittelt wurde (mit dem Ohmmeter an der strolosen Schaltung), misst man aber keine Eingangswiderstände. > Statt R5 = 18kΩ hat er 11kΩ gemessen. Mich würde eher wundern, wenn er 22k gemessen hätte... Daniel H. schrieb: > Können der MCP2515 oder MCP2551 so einen Einfluss auf den Widerstand > gegen GND haben aufgrund deren interner Beschaltung? Arg viel mehr Bauteile sind ja nicht beteiligt.
Ich "oute" mich mal und beanspruche die Urheberschaft für den vermurksten Versuch um einen 3V3 Schaltungsteil mit 5V zu verbinden: http://lnxpps.de/rpie/ Es ist interessant wie diese Unzulänglichkeit wie ein Wasserzeichen in verschiedenen Reinkarnationen der Schaltung weiter lebt. Wie bereits angemerkt sind die Widerstände zu hoch -> 1k + 1k8 wären sicherlich besser geeignet. TL;DR: Der MCP2551 ist obsolet. Die legitimen Nachfolger MCP2561/2 sind besser geeignet. Der MCP2562 kann mit zwei Spannungen arbeiten. Hier entfällt sogar die Pegelanpassung bzw. der Spannungsteiler über die Widerstände - weniger Bauteile -> weniger Fehlerquellen
:
Bearbeitet durch User
Gerd B. schrieb: > Es ist interessant wie diese Unzulänglichkeit wie ein Wasserzeichen in > verschiedenen Reinkarnationen der Schaltung weiter lebt. Warum schaust du denn weiter zu, anstatt den Plan zu korrigieren? Weil es so interessant ist? Weißt du, ich habe auch einigen Käse veröffentlicht, aber ich korrigiere die groben Fehler wenigstens umgehend, sobald sie mir bekannt werden.
Daniel H. schrieb: > Können der MCP2515 oder MCP2551 so einen Einfluss auf den Widerstand > gegen GND haben aufgrund deren interner Beschaltung? Im Datenblatt des MCP2551 sind für RXD min 0.7 VDD spezifiziert, das wären 3.5V. Hast du die 5V an RXD gemessen? Daniel H. schrieb: > Zum CAN des Teensy: Den nutze ich bewusst nicht, da ich ja wie gesagt > zwei CAN-Ports auf dem Board habe und der Teensy nur einen CAN. Teensy 4.0 hätte drei CAN-Ports ... LG, Sebastian
Stefan ⛄ F. schrieb: > Gerd B. schrieb: >> Es ist interessant wie diese Unzulänglichkeit wie ein Wasserzeichen in >> verschiedenen Reinkarnationen der Schaltung weiter lebt. > > Warum schaust du denn weiter zu, anstatt den Plan zu korrigieren? Weil > es so interessant ist? Nein, reine Trägheit. Kritik ist angekommen - Zeichnung korrigiert. IMHO ist die Wahl mit 1k/2k2 besser geeignet. > Weißt du, ich habe auch einigen Käse veröffentlicht, aber ich korrigiere > die groben Fehler wenigstens umgehend, sobald sie mir bekannt werden. Ich hatte ja bereits die verbesserte Version mit dem MCP2562 unter dem alten Schaltplan angefügt.
wie gesagt wenn dein µC schon einen CAN Controller integriert hat brauchst du nicht über den SPI Flaschenhals zu gehen und lässt den MCP2515 weg.
Thomas O. schrieb: > wie gesagt wenn dein µC schon einen CAN Controller integriert hat > brauchst du nicht über den SPI Flaschenhals zu gehen und lässt den > MCP2515 weg. Ich hatte weiter oben geschrieben das ich 2 CAN-Ports auf dem Board habe bzw. für meinen Fall brauche. Ich hätte natürlich 1x CAN vom Teensy und 1x über SPI im MCP2515 nutzen können, aber ich habe mich bewusst für 2x MCP2515 entschieden da ich das vorab auch auf CAN-Shields so getestet hatte und ich mir dachte die Lib die ich verwende hätte damit weniger Schwierigkeiten. Für ein Redesign würde ich aber wohl tatsächlich auf einen Teensy 4.0 oder etwas Ähnliches mit 2+ integrierten CAN-Controllern gehen + MCP2562 als Transceiver. Unabhängig davon habe ich jetzt mal die Widerstände gegen 1k und 1k8 getauscht: Die Spannung ist jetzt tatsächlich besser (im Bereich >3V beim Port der vorher 2.5 hatte, und ca. 2.5V beim Port der vorher 1.9 hatte). ------ Allerdings habe ich zwischen den RX- und TX-Pins (Pins 1 & 2) am MCP2515 einen SEHR niedrigen Widerstand (wenige Ohm), weshalb ich tatsächlich befürchte, dass mir dieser MCP2515 (und evtl. auch der Zweite) durch sind. ------EDIT: Zwischen den Pins schien hinten Lötfett-Rückstand. Das sollte dachte ich eigentlich nicht leiten, aber nachdem ich noch etwas mit dem Lötkolben hin bin um das zu verdampfen habe ich nun denke ich 'normalere' ~30kOhm zwischen den Pins.
:
Bearbeitet durch User
Daniel H. schrieb: > Lötfett-Rückstand ??? Du redest hoffentlich nicht wirklich von Lötfett. Thomas O. schrieb: > brauchst du nicht über den SPI Flaschenhals Nachgequatschtes Hörensagen, es ist kein nennenswerter Flaschenhals. Das Ziel muss ja nicht sein >95% Leerlauf am MC zu erreichen.
H.Joachim S. schrieb: > ??? Du redest hoffentlich nicht wirklich von Lötfett. (Leider?) ja. Ich hab das seit Ewigkeiten und hab das aber auch nur sehr selten mit hergenommen. Ich hab gerade auch etwas nachgelesen und offenbar ist es 1) aggressiv und 2) teils zu einem gewissen Grad leitfähig. Das wandert also in die Tonne und wird gegen einen Flussmittelstift o.ä. ersetzt. Ich hatte die Platine nach dem Löten auch mal sauber gemacht mit etwas Bremsenreiniger aber zum Nachlöten später nochmal etwas Lötfett an einer Stelle am MCP2515 verwendet.
Auch wenn es eine vielleicht etwas unbefriedigende Rückmeldung ist: Ich habe jetzt ein weiteres Board aufgebaut und ebenso (inkl. der verringerten Widerstände wie empfohlen - also 1k und 1k8) bestückt. Ich habe diesmal kein Lötfett verwendet und mich auch penibel geerdet: Jetzt habe ich auf beiden Controllern zwischen den RXCAN und TXCAN-Pins recht konstante 140 kOhm Widerstand. Der Spannungsteiler liefert jetzt auch bei beiden Ports die selben richtigen Werte: Aus ~4.8V am TXD-Pin der MCP2551 werden ca. 3.1V an den TXCAN-Pins der jeweiligen MCP2515. Ich vermute schlichtweg das das Lötfett mir einen oder beide MCP2515 gegrillt hatte. Nachdem ich nun auch noch einen Bug in meiner SPI-Implementierung behoben habe kann ich nun beide Controller wunderbar per SPI ansprechen und mich an die weitere Programmierung machen. Vielen Dank nochmal für die vielen lehrreichen Ideen und Tipps!
Daniel H. schrieb: > Lötfett > Bremsenreiniger Wow, was treibst du da bitte? Die von dir beschriebenen Hilfsstoffe kannst du zum Dachrinnenlöten nehmen, aber in der Nähe von Elektronik haben die nichts verloren! Bremsenreiniger kann gut gehen, wenn du ihn nicht zu lange einwirken lässt und dann gründlich wieder abwäschst, aber genau wie Lötfett ist das Zeug ebenfalls extrem aggressiv. Kaufe dir für Elektronikzwecke stattdessen lieber einen Liter Isopropanol. Und Flussmittelzusatz habe ich in meinen Jahrzehnten Löter"karriere" tatsächlich noch nie gebraucht – alles, was du brauchst, ist ein ordentliches Elektroniklot; dessen Flussmittelseele reicht vollkommen aus.
H.Joachim S. schrieb: > Thomas O. schrieb: >> brauchst du nicht über den SPI Flaschenhals > > Nachgequatschtes Hörensagen, es ist kein nennenswerter Flaschenhals. Das > Ziel muss ja nicht sein >95% Leerlauf am MC zu erreichen. Ich meine die Verzögerung die durch eine weitere Übertragung vom CAN-Controller über den SPI Bus zustande kommt. Wann das alles integriert ist holt man die Daten innerhalb ein paar Takte ab und bei der anderen Version weiß man noch garnicht das etwas da ist. Das ist einfach ne Notlösung für Raspberrys oder Arduinos die das nicht integriert haben. Es mag für viele Fälle reichen es kann aber auch zum Flaschenhals werden.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.