Hallo zusammen, ich experimentiere aktuell mit dem CAN-Bus, um die Protokoll-Physik im Detail zu verstehen. Mein Testaufbau: Knoten 1: Ein OLIMEX ESP32-EVB, das simulierte Batteriedaten (Pylontech-Format) sendet. Knoten 2: Ein Victron Venus OS Gerät als Empfänger. Verbindung: Ca. 30 cm CAT5-Kabel. Terminierung: Beidseitig (am Venus reguläre 120 Ω, am Olimex testweise ein 100 Ω Widerstand, woraus sich ein statischer Bus-Widerstand von knapp 55 Ω ergibt). Messung: Oszilloskop im reinen Akkubetrieb (kein Netzbezug), Tastkopf rein differenziell direkt zwischen CAN_H und CAN_L am Abschlusswiderstand geklemmt. Das Phänomen: Die Kommunikation läuft absolut fehlerfrei, alle Daten kommen im Venus OS an. Auf dem Oszilloskop (siehe angehängtes Bild mit 20 μs Zeitbasis) zeigt sich jedoch ein seltsamer Amplitudensprung: Die normalen Daten- und ID-Bits (gesendet vom Olimex) haben einen differenziellen Hub von gut 1 V. Exakt an der Stelle des ACK-Bits schießt die Amplitude als absolut sauberes, perfektes Rechteck auf den exakt doppelten Wert nach oben. Die Bit-Zeit wird sauber eingehalten. Ein induktiver Spike oder eine Einstreuung scheidet aufgrund der perfekten Rechteckform und der zeitlichen Konstanz im Frame-Verlauf aus. Wenn ich das rein theoretisch über das klassische Ersatzschaltbild (Parallelschaltung zweier identischer Treiber-Endstufen gegen die 55 Ω Buslast) durchrechne, dürfte sich die Differenzspannung durch die Innenwiderstands-Halbierung zwar leicht erhöhen, aber niemals verdoppeln. Woher kommt dieser massive Amplitudensprung im ACK-Slot? Arbeitet der Transceiver auf dem Olimex eventuell intern auf 3,3 V-Basis und liefert daher einen geringeren Hub, während das Venus-Gerät im ACK-Slot mit einer harten 5 V-Industriestufe dagegenhält? Oder übersehe ich einen dynamischen Effekt im Widerstandsnetzwerk beim Umschalten der Treiber? Ich werde als Nächstes noch mal beide Adern separat gegen GND messen, bin aber vorab auf eure fundierten Meinungen gespannt! Viele Grüße
Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 & Vic
Re: Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 &
Wo ist das angehängte Bild? Wie sieht die Differenz zwischen CanH und CanL aus (am Ausgang des Transceivers)? Nur die ist relevant.
:
Bearbeitet durch User
Re: Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 &
Mischverbau von High-Speed CAN und Low-Speed CAN Transceivern ?
Re: Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 &
Karl-alfred R. schrieb: > Messung: Oszilloskop im reinen Akkubetrieb (kein Netzbezug), Tastkopf > rein differenziell direkt zwischen CAN_H und CAN_L am > Abschlusswiderstand geklemmt. Kapazitiv ist das Oszi trotzdem an den Rest der Welt angekoppelt. An Stelle eines Romans könntest du einfach den relevanten Schaltplanteil zeigen (inkl. CAN-Bus Treiber).
Re: Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 &
Ist normal, dass verschiedene Transceivertypen verschiedene dominante Pegel liefern. Im Zweifelsfall schauen, welche Transceiver drauf sind und die Datenblätter vergleichen.
Re: Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 &
Karl-alfred R. schrieb: > Woher kommt dieser massive Amplitudensprung im ACK-Slot? Arbeitet der > Transceiver auf dem Olimex eventuell intern auf 3,3 V-Basis und liefert > daher einen geringeren Hub, während das Venus-Gerät im ACK-Slot mit > einer harten 5 V-Industriestufe dagegenhält? Schau doch einfach, was bestückt ist. Reine 3.3V Transceiver können natürlich die 3.5V für CAN_H im dominanten Zustand nicht liefern. Die tricksen daher und liefern 3.0V an CAN_H und 1.0V statt 1.5V an CAN_L, damit die Differenz weiterhin 2V beträgt. Ist zwar nicht normgerecht, funktioniert aber meistens. Wenn Du mischt, kann/wird es jedoch zu Sprüngen in den Amplituden der Teilsignale kommen. Das ist dann halt so. Wenn das zu Problemen führt, ersetze den Transceiver durch einen mit zwei Versorgungsspannungen wie MCP2562. fchk
Re: Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 &
Hier das angehängte Bild. Ist irgendwie verschluckt worden. Ich hatte den Thread zweimal abgesendet und einmal wieder gelöscht.
Re: Titel: CAN-Bus: ACK-Bit zeigt doppelte Differenz-Amplitude am Oszilloskop (Setup: Olimex ESP32 &
Vielen Dank für Eure Antworten. Habe sie mir gerade noch mal genauer durchgelesen. Mir war nicht klar, dass unterschiedliche Transceiver mit unterschiedlichen Spannungen arbeiten können. (bzw können ja, aber dass das erlaubt wäre) Ich dachte, das wäre im Standard felsenfest festgelegt. Das kann gut sein, dass der Olimex mit 3,3 V arbeitet und der Victron Venus mit 5 V. Tatsächlich habe ich auch ganze Datenpakete mit höherer Spannung gesehen. Das waren dann wahrscheinlich die Anfragen des Victron Venus an den Bus, und die Antworten mit der geringeren Amplitude kamen immer vom Olimex. Und das ACK vom Victron direkt nach der Antwort vom Olimex sieht dann genau so aus wie auf dem Bild. Damit ist die Sache für mich physikalisch und schaltungstechnisch absolut geklärt. Solange das im Alltag so tolerant und fehlerfrei funktioniert, ist ja alles bestens.
:
Bearbeitet durch User
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.
