Hallo zusammen, es gibt mal wieder ein echt interessantes Problem :-) Habe die Schaltung im Anhang für einen CAN-Repeater nachgebaut, halt nur mit 2 statt 3 Abgängen (ist beliebig erweiterbar). Sowohl die Simulation der Gatter in LTSPICE, als auch die Schaltung real funktioniert, ABER: Es gibt scheinbar einen Zustand, wo der Repeater sich selbst "aufhängt" und den Bus dauerhaft lahmlegt, was mich etwas ratos zurücklässt, da das unterschiediche Delay bei Übergang Rez.->Dom. und Dom.->Rez. dies ja eigentlich verhindern sollte. Mit dem Freq.-Generator + weiterem PC82C250 habe ich mal testweise unterschiedliche Pulse über den CAN eingespeist. Am Oszi sehe ich, daß der Repeater anfängt, ungewollt nachzutoggeln, wenn die (dominante) Pulsbreite ähnlich kurz oder kürzer als die Verzögerungszeit der OR-Gatter mit dem RC-Glied ist. Schaltungstechnisch gesehen fehlt dann ab dieser Pulsbreite das erwähnte asymmetrische Delay, da durch die kurzen Pulse der Kondensator nicht so hoch aufgeladen werden kann, damit der OR-Gatter-Ausgang länger high bleibt als der Puls selber. Was meine ich mit ungewolltem Toggeln? Beispiel: Die Baudrate des CAN-Bus ist mit 38,4kBd eher gemütlich, die Sperrzeit, also die der Verzögerungsglieder ist (empfohlen ca. 10-20% der Bitzeit) mit ca. 3µs dimensioniert. Über den CAN-Bus werden testweise 5 dominante Pulse mit 4µs Pulsbreite eingespeist, dazwischen jeweils 4ms rezessiv - alles funktioniert wie erwartet. Mache man das Gleiche, nur mit ~3µs Pulsbreite und 3ms rezessiv, toggelt die Schaltung nach den 5 Pulsen noch weiter! Anfangs beim Einsetzen nur 1-2 Mal, verkürze ich die Pulsbreite weiter, bleibt das Toggeln immer länger bestehen. Als wenn das ganze Konstrukt eine Rückkopplungsschleife ergäbe... Sowohl bei HCxxx als auch HCTxxx sehe ich das Verhalten. Soweit die Messungen. Real am Lowspeed-CAN-Haubus funktioniert der Repeater wie erwähnt, aber irgendwann, nach Stunden bleibt der halt hängen. Ich vermute, daß dann zuvor ein kurzer low-Spike mit t<Sperrzeit über den Bus gekommen ist, Störungen, evtl. Arbitrierung, keine Ahnung aktuell, was das provoziert. :-( Ich hatte irgendwo im Netz in einem Forum einen Post gefunden, wo man sich über obige Schaltung vs. dem isolated reference design von TI für einen CAN-repeater unterhält, das auch als PDF im Netz häufig zu finden ist. Der Typ von TI hielt beide Schaltungen in Bezug auf die Gatterlogik für sehr ähnlich, empfahl aber für obige Schaltung die Verwendung von OR-Gattern mit Schmitt-Trigger-Eingängen. Was haltet Ihr davon? Könnte der falsche Gattertyp genau das beschriebene Verhalten verursachen? Frage mich nur, warum das nicht im originalen Schaltplan ist... Bin wie immer dankbar für jeden sachdienlichen Beitrag! MFG Andy
Was mir dazu einfällt: - HC vs HCT, alles so wie „Original“? - Meiner Meinung nach steht die Dimensionierung mit den Verzögerungsgliedern auf wackeligen Füßen, da könnte schon eine andere Baureihe der Gatter den entscheidenden Unterschied geben. Wie Du schon sagst, ob das mit den Umladezeiten immer so hinkommt? - Sollte man evtl das Gattergrab gegen eine SW in einer CPU tauschen? Die muss ja prinzipiell kein 3x CAN haben, das wäre ja reines Bitbanging. 32bit CPU 50MHz gibt es ja notfalls für <1€. Ich habe das aber nicht bis ins Letzte durchgespielt, ob das in Software so umsetzbar ist.
:
Bearbeitet durch User
Andy W. schrieb: > Sowohl die Simulation der Gatter in LTSPICE, als auch die Schaltung real > funktioniert, ABER: > ... Dann passt die Simulation nicht zur Schaltung/Anregung. Wenn das Konstrukt bei passender Anregung schwingt, würde ich das nicht als real funktionierend bezeichnen.
Weil es ja viel Text war, dachte ich, ich lass Bilder sprechen :-) Anbei 3 Oszibilder von 3 Pulsbreiten. Es reicht schon ein genügend kurzer Puls, um das Teil zum Schwingen zu bringen. Eingespeist wird natürlich von Bussseite her, nicht direkt an RX1. Harald A. schrieb: > - HC vs HCT, alles so wie „Original“? Ich habe zwei PCBs, jeweils komplett mit HC/HCT bestückt. Neben den unterschiedlichen Zeitkonstanten wegen der unterschiedlichen Schaltschwellen ist das Verhalten prinzipiell gleich. Rainer W. schrieb: > Dann passt die Simulation nicht zur Schaltung/Anregung. Die Gatterschaltung an sich zu simulieren, war kein Problem, das passt auch von den Zeitkonstanten. Nur sobald ich noch einen CAN-Transceiver (LTC2875) mit eingebunden hatte, hörte LTSPICE nicht mehr auf zu rechnen, weiß nicht warum - das wäre sicher gut für einen neuen Thread.
Andy W. schrieb: > Habe die Schaltung im Anhang für einen CAN-Repeater nachgebaut, halt nur > mit 2 statt 3 Abgängen Hast du mal die Originalschaltung probiert und nur 2 der 3 "Abgänge" in Betrieb genommen? > Könnte der falsche Gattertyp genau das beschriebene Verhalten > verursachen? Meine Erfahrung: solche rückgekoppelte Schaltungen kann alles mögliche ins Schwingen bringen. Und wenns mal läuft, dann solltest du unbedingt genau gar nichts dran ändern. Auf keinen Fall den Hersteller der ICs. BTW und weil da kein einziger Kondensator im Schaltplan zu sehen ist: die Versorgung an den 6 ICs hast du schon ordentlich geblockt?
:
Bearbeitet durch Moderator
Das sind Platinen mit zwei Abgängen, die ich sowohl einzeln als auch im Verbund (=4 CANs) getestet habe, ohne angeschlossene Busteilnehmer oder mit - macht keinen Unterschied. Termininierung natürlich immer vorhanden und jeder IC hat seinen 100n Keramikkondensator. :-)
Andy W. schrieb: > Nur sobald ich noch einen CAN-Transceiver (LTC2875) mit eingebunden > hatte, hörte LTSPICE nicht mehr auf zu rechnen, weiß nicht warum Ohne zu wissen, was du da genau simuliert hast, ist es schwer zu sagen, womit du LTSpice in die Verzweiflung treibst. Flanken zu steil? > Weil es ja viel Text war, dachte ich, ich lass Bilder sprechen :-) Erstmal sagen sie, dass du anscheinend weder eine Screenshot Funktion zu nutzen weißt, noch eine Möglichkeit besitzt, halbwegs parallaxenfrei zu photographieren? scnr Wer erzeugt die Spikes auf Kanal TX1 und TX2 in Puls_3_3? Allein Ein- und Ausgang zu betrachten, wird nicht reichen, um zu verstehen, was die Rückkopplung erzeugt.
:
Bearbeitet durch User
So, habe jetzt die 4 Kapazitäten an den RC-Gliedern mal testweise Faktor 10 nach oben gesetzt. Das Verhalten ist gleich, d.h. die Schaltung schwingt nach Ende des Pulses, nur dann halt schon startend bei größerer Pulsbreite. Dann im Gegenzug wieder die Kapazitäten auf die 100pF laut Plan verkleinert und voilá, da sehe ich nur noch bei ganz kurzen Pulsen <1µs ein paar Artefakte, eine Schwingung stellt sich aber nicht mehr ein, d.h. der Plan ist prinzipiell korrekt. Mit 68pF ist es dann perfekt. Fazit: Meine eigenmächtige Vergrößerung der Zeitkonstanten um die 10% der Bitbreite für die Sperrzeit @38,4kBd einzustellen, hat die Schaltung durch die Neigung zum Oszillieren unbrauchbar gemacht. Ich werde jetzt erstmal damit fahren. Was das jetzt für die angesprochenen Sperrzeiten bedeutet, vermag ich nicht zu sagen, d.h. ob das überhaupt relevant ist, wenn ich die für höhere Baudraten ~500kBd "optimierte" Schaltung für niedrigere Busgeschwindigkeiten einsetze - ich denke eher nicht. Rainer W. schrieb: > Ohne zu wissen, was du da genau simuliert hast, ist es schwer zu sagen, > womit du LTSpice in die Verzweiflung treibst. Flanken zu steil? Habe es mal angehängt. Einfach die kommentierte Verbindung zwischen RX2/TX2 durch den Transceiver ersetzen der busseitig mit 120R abgeschlossen ist + 33k am Rs-Pin gegen GND. Rainer W. schrieb: > Erstmal sagen sie, dass du anscheinend weder eine Screenshot Funktion zu > nutzen weißt, noch eine Möglichkeit besitzt, halbwegs parallaxenfrei zu > photographieren? Sorry für die Plots 1) kein USB-Stick zur Hand 2) wollte kein direktes Spiegelbild, alle wichtigen Infos entnehmbar und extra noch nachträglich beschriftet :-) MFG Andy
Andy W. schrieb: > So, habe jetzt die 4 Kapazitäten an den RC-Gliedern mal testweise Ich würde die mal testweise asymmetrisch auslegen. Und nur jeweils entweder die geradzahligen bzw. die ungeradzahligen Kondensatoren um den Faktor 10 größer machen...
:
Bearbeitet durch Moderator
Für CAN Repeater gab es mal den AMIS42770. Wenn man 2 von denen eingesetzt hat konnte man sogar eine galvanische Trennung dazwischen haben. Leider gibt es den nicht mehr, vielleicht gibt es davon nun einen Nachfolger. Wegen der Schaltung: Ich würde bei einem Repeater zugleich noch eine galvanische Trennung vorsehen, z.B. mit dem ISO1050 Ich denke mal diese Gatter mit Verzögerungsglieder gehe nicht richtig. Ich kann mir eher vorstellen, dass die Logik in etwa so aussehen sollte: Der Kanal der zu erst das Dominate Bit sendet, setzt ein Flipflop, dann muss auch dieser Kanal das Dominante Bit wieder weg nehmen und der andere Kanal ist in der Zeit nur Dominat gesetzt (TX) und das Flipflop von dem anderen Kanal wird gesperrt bis das erste Flipflop wieder frei ist. Bei dem Kanal mit dem gesetzten FlipFlop darf Tx nicht gesetzt sein, damit die Gegenstelle das dominate Bit wieder weg nehmen kann. Wenn man das mit Flipflops aufbaut, ohne Verzögerungen, dann sollte das auch mit FD-CAN (5MHz) gehen. Isoliert wäre es dann z.B. ISO1044B (Es ist jetzt nur so gedacht wie es logisch funktionieren könnte) Gerade gefunden, von TI gibt es ein Reference Design, incl. Schaltplan: https://www.ti.com/tool/TIDA-01487
:
Bearbeitet durch User
Probiere mal diese 2 Dioden je Kanal ein zu bauen, dann sollte es besser gehen. Bei der Schaltung von TI wurden ein Buffer-Treiber "OC" verwendet (und deren Logik beim RC-Glied funktioniert anders herum) und nach dem RC Glied ein Schmitt-Trigger. Wenn es mit der Diode immer noch nicht korrekt geht müsste man das wohl so ähnlich umbauen. Wegen den C's, ich denke die kann man auch verkleinern, müsste man ausrechnen wie viel ns Verzug diese generieren und wie schnell die Gatter sind. Edit: Noch was gefunden, sieht recht simpel aus: https://os.mbed.com/users/hudakz/notebook/can-bus-repeater/
:
Bearbeitet durch User
Hallo zusammen, nur als kurze Rückmeldung, da hier noch zwei gute Ansätze vorgeschlagen wurden: Lothar M. schrieb: > Ich würde die mal testweise asymmetrisch auslegen. Das bringt schon viel, ich sehe hier nur noch einen einzigen Einbruch (<1µs) auf TX1, der so nicht auftreten sollte, ansonsten ist alles sauber! Markus M. schrieb: > Probiere mal diese 2 Dioden je Kanal ein zu bauen, dann sollte es besser > gehen. Mit den Dioden ist das Signal wirklich komplett ohne Störungen, konnte hier auch mit den Kapazitäten wieder etwas nach oben gehen, um die Sperrzeit zu erreichen. Würde daher aktuell diese Lösung favorisieren. Danke nochmals für Euren Input! MFG Andy
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.