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
