Hallo Allerseits, ich stehe vor einem riesengroßen Problem, bei dem ich einfach nicht mehr weiterkomme. Ich habe die Aufgabe einen Koppler für den Single-Wire-CAN zu entwerfen. Der Koppler muss also bidirektional sein und mit 2 unterschiedlichen Pegeln klar kommen (5v/12V). Und genau das mit den 2 Spannungen bereitet mir Schwierigkeiten. Habt ihr vielleicht eine Idee wie man das möglichst einfach lösen könnte? Vielen Dank schonmal! Gruß, Jens
Zwischen IC mit CAN und dem AU5790 SW-CAN Transceiver - 2 Optokoppler rein - einen DCDC-Wandler fertig.
Wie I2C zeigt kann man bidirektionale O.C. Busse entkoppeln. Aber ganz so trivial ist das jedenfalls nicht, denn da gilt sonst "einmal dominant immer dominant". Die eine oder andere für I2C vorgestellte Lösung könnte vielleicht auch hier funktionieren. Direkt, ohne zwischengeschaltete Transceiver.
Dann mache es soch so: Ein SW-CAN >> AU5790 >> Optokoppler/DCDC Wandler >> AU5790 >> 2. Strang mit SW-CAN
Also unidirektional links nach rechts? Etwas einseitiges CAN. Wenn du bidirektional meinst, dann überleg mal, wie diese Konstruktion aus dem beiderseitigen Zustand "dominant" wieder rauskommt.
Natürlich 2 Optokoppler, für jede Richtung einen. Datenblatt AU5790: http://www.nxp.com/documents/data_sheet/AU5790.pdf
Also denn. Links dominant überträgt nach rechts dominant. Beide Seiten sind jetzt dominant. Sender geht auf rezessiv. Leitiung bleibt dominant, weil beide Transceiver sich stur stellen.
>beide Transceiver sich stur stellen
Müsste man probieren.
Eventuell eine CPU dazwischen schalten mit 2 CAN Busse die die
Telegramme weitereicht.
Markus Müller schrieb: >>beide Transceiver sich stur stellen > Müsste man probieren. Bischen denken reicht. > Eventuell eine CPU dazwischen schalten mit 2 CAN Busse die die > Telegramme weitereicht. Yep, das geht.
Bei "Normalem CAN" würde ich den nehmen: AMIS42770 Gibts leider nicht für SW-CAN. Man könnte vieleicht das machen: SW-CAN AU5790 ADUM1401 82C250 CAN AMIS42770 CAN 82C250 ADUM1401 AU5790 SW-CAN Also 7 IC's hintereinander. Vom Timing her solle es gut gehen, da SW-CAN nur 20KBaud maximal hat. Dann braucht man nichts programmieren.
Ich würde eher dort anfangen zu suchen, denn I2C ist auf dieser Ebene recht ähnlich: http://www.mikrocontroller.net/articles/I2C#Galvanische_Trennung
Es gibt irgendwo auch eine galvanische Trennung für 1-Wire (ich weiß nur nicht wo - könnte auch in einer Appnote von Dallas gewesen sein). Das ist ebenfalls dem SW-CAN ähnlich.
Die wissen warscheinlich warum ihr (winziges) Teil 145 Dollar kostet. http://www.gridconnect.com/optoadapter.html
Also 7 IC's hintereinander wird dann wahrscheinlich doch etwas ins Geld gehen. Ich hatte mir das eher wie im Anhang vorgestellt. Da würde jetzt eben noch eine Pegelerkennung fehlen die, falls mal 12V über den Bus kommen, die Spannung auf 5V runter regelt und die Info das 12V wieder raus sollen auf die Gegenseite überträgt. Oder kennt ihr Logiken/Koppler die mit 5 und mit 12V klarkommen?
Bei den niedrigen Bitraten kann man das auch einfacher lösen. Dazu braucht man nur einen halbwegs schnellen Mikrocontroller nebst 2 passenden Bustreiber-Bausteinen, ich hab das mal gemacht um zwei LIN Busse galvanisch zu trennen. Die sind ja ähnlich gestrickt, nur dass Dominant- und Rezessivpegel genau umgedreht sind. Der Controller tastet sehr schnell beide Leitungen ab. Ist eine dominant, schaltet er die andere auch auf dominant und tastet daraufhin nur die erste dominat empfangene Leitung ab. Wechselt diese wieder nach rezessiv, wird auch die zweite Leitung rezessiv geschaltet und der Controller springt wieder in die Grundschleife zurück, in der er beide Leitungen abtastet. Man könnte das sicher auch mit einem kleinen CPLD realisieren, wobei man abwechselnd abtasten oder eine Leitung priorisieren muss. Jörg
Joerg Wolfram schrieb: > Der Controller tastet sehr schnell beide Leitungen ab. Ist eine > dominant, schaltet er die andere auch auf dominant und tastet daraufhin > nur die erste dominat empfangene Leitung ab. Wechselt diese wieder nach > rezessiv, wird auch die zweite Leitung rezessiv geschaltet und der > Controller springt wieder in die Grundschleife zurück, in der er beide > Leitungen abtastet. Das müsste eigentlich zu einem Glitch führen, wenn in der Arbitrationsphase beidseitig aktiv dominant gesetzt ist. Wenn der Erste davon auf rezessiv geht, dann geht dort die Leitung kurz auf rezessiv, bis von der anderen Seite wieder das dominante Signal kommt.
Dazu müssen beide Seiten nahezu gleichzeitig anfangen zu senden und der dominate Pegel der niedriger priorisierten Nachricht zuerst erkannt wird. Das führt dann auch zu einem Glitch, allerdings kurz nach einem Bitwechsel. Da bei CAN meist bei ca. 80% Bitzeit abgetastet wird, sollte das eigentlich keine Störungen bei der Kommunikation hervorrufen. Jörg
Joerg Wolfram schrieb: > Das führt dann auch zu einem Glitch, allerdings kurz nach einem > Bitwechsel. Da bei CAN meist bei ca. 80% Bitzeit abgetastet wird, sollte > das eigentlich keine Störungen bei der Kommunikation hervorrufen. Ich weiss grad nicht, ob die CAN Controller einen Glitch-Filter in der Taktrückgewinnung drin haben, Wenn nicht, dann könnte die Flanke rezessiv->dominant die Synchronisation beeinflussen.
Hallo, möglich wäre auch ein ADUM 125x / 225x. Beispiel: http://www.analog.com/en/interface/digital-isolators/adum1251/products/product.html Über die 5...12V habe ich jetzt nicht weiter nachgedacht. David
Der ADUM 125x klingt schon mal nicht schlecht... Ob der die 12V verträgt schau ich Montag mal nach (jetzt hab ich Feierabend^^) Vielen dank erstmal an alle^^
Also der Baustein packt die 12V leider nicht. Falls jemand noch eine Idee hat wie man das einfach (billig) realisieren könnte, kann er es ja hier loswerden.
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.