Forum: Mikrocontroller und Digitale Elektronik Transceiver, Warum geht es nicht


von cerberus (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mal mit einer heissen Nadel aus dem Datenblatt eines 
Can-Transceivers eine kleine Schaltung gestrickt, mit der ich 2 
Can-Systeme miteinander verbinden kann. Die Idee dahinter ist ganz 
banal. Ich benutze einen CAN-Transceiver um das Differenzielle CAN - 
Signal wieder in ein Logisches Signal umzuwandeln, trenne dieses über 2 
Optokoppler galvanisch auf und speise es wieder in einen Can-Transceiver 
ein, so als käme es gerade aus einem uC.
Zum testen habe ich 2 90Can128 mit nicht galvanisch getrenntem 
CAN-Transceiver angebunden. Verbinde ich die Boards direkt funktioniert 
alles . Schalte ich aber meine kleine Schaltung dazwischen geht nix 
mehr. Ist in der Schaltung ein offensichtlicher Fehler?
Alternativ dazu.
Hat jemand eine funktionierende Schaltung dieser Art mit der es möglich 
ist mehr als 32 CAn Teilnehmer zu verbinden und die Kreise galvanisch 
voneinader zu trennen um Spannungsverschleppungen zu vermeiden?

von A.K. (Gast)


Lesenswert?

Versuch mal RxD mit RxD und TxD mit TxD zu verbinden. Galvanische 
Trennung ist kein Nullmodem ;-).

von cerberus (Gast)


Lesenswert?

Also wenn ich mir den original Schaltplan aus dem Datenblatt zur Hand 
nehme ist rx am can-transceiver ein Ausgang, denn er tribt eien LED im 
Optokoppler, wogegen tx ein Eingang ist, der durch den transistor eines 
Optokopplers nach Masse gezogen wird, sonst zieht ihn der 390 Ohm R gen 
+.
Ergo muss doch die Rückseite des ganzen genauso aussehen?
Bist Du sicher das das stimmen kann Rx an Rx?

von Profi (Gast)


Lesenswert?

Rechts unten hast Du 2x 60 Ohm nach GND gezeichnet. Das geht auf keinen 
Fall, er Bus muss beidseitig mit 120 Ohm abgeschlossen sein, und zwar 
zwischen CanH und CanL.

Sind die Optokoppler schnell genug?

Viel Erfolg!

Wenn Du's professionell lösen willst:
IXXAT CAN-bridge
kann Messages filtern, Baudraten wandeln und optional opto-trennen.

von cerberus (Gast)


Lesenswert?

<< 2x 60 Ohm nach GND gezeichnet. Das geht auf keinen
Fall,  >>
Hatte ich aus einem Datenblatt eines CAN-Transceivers...
Es geht aber auch nicht mit 120Ohm ohne Masse und auch nicht ganz ohne R

von Hubert.G (Gast)


Lesenswert?

RX ist immer ein Eingang "Receiver" und TX ist immer ein Ausgang 
"Transmitter"
Du hast nur die Optokoppler Ein-Ausgänge vertauscht. Also TX auf die 
Diode im Optokoppler und RX an den Transistor.

von cerberus (Gast)


Lesenswert?

@Hubert
So hätte ich das auch gedacht aber im Datenblatt des sn65 230 steht R 
receiver output und im Datenblatt des 6250 das Gleiche Bild

RxD CAN receive data output;

Bist Du sicher das es bei den CAN-Transceivern genauso ist? Dann wären 
die Datenblätter von Infinion und TI beide flasch ...

von A.K. (Gast)


Lesenswert?

Datasheet TI: R ist Ausgang vom Receiver. RxD vom Controller ist Eingang 
von dessen Receiver. Ausgang an Eingang passt. Ausgang an Ausgang passt 
indes nicht.

von cerberus (Gast)


Lesenswert?

Die Transceiver an den Controllern passen und funktionieren auch.
Alles, was streikt sind die aneinandergekoppelten Transceiver, aber die 
haben keinen Controller drin. Es geht nur darum das Signal galvanisch 
getrennt von einem CAN-Netzwerk zum nächsten zu übertragen.

von Hubert.G (Gast)


Lesenswert?

@ cerberus
Hab mir das Datenblatt angesehen, deine Version stimmt, das ist das 
erste mal das ich so was sehe, RXD ist Ausgang, naja sehr gewagte 
Ansicht.

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

anbei mal ne Schaltung, die schon seit einiger Zeit im Einsatz ist.

von A.K. (Gast)


Lesenswert?

Ok, ich hatte das für eine galvanische getrennte Kopplung von Controller 
und Tranceiver gehalten. Sorry. Soll wohl ein CAN Repeater sein.

Aber eine dumme Frage hab ich schon noch: Wie kommt die Schaltung jemals 
wieder aus dem dominanten Zustand raus? Dieser Zustand scheint mir 
nämlich ausgesprochen stabil zu sein.

von A.K. (Gast)


Lesenswert?

NB: Laut Datasheets von MCP2551, SN65HDV2xx und 82C25x sind damit 
110-120 Nodes möglich. Nur der TDA1054 ist sparsamer.

von cerberus (Gast)


Lesenswert?

<< Aber eine dumme Frage hab ich schon noch: Wie kommt die Schaltung 
jemals
wieder aus dem dominanten Zustand raus? >>

Das ist möglicher Weise der Fehler weil ich keine Ahnung habe, was DU 
damit meinst. Klar, das Signal im Ruhezustand ist 0 und damit für den 
CAN-Bus dominant, aber ich kann es ja schlecht dauzerhaft auf 1 ziehen, 
oder?

An den funktionierenden CAN-Transceivern, die an den uCs hängen, ist es 
im Ruhezustand meiner Meinung nach auch 0 oder ich habe Mist gemessen? 
Keine Ahnung. Wie schlägst Du vor die Schaltung zu verändern um das 
Problem zu lösen? Es müßte ja auf beiden Seiten des Repeaters geändert 
werden.

von A.K. (Gast)


Lesenswert?

Transmitter: Rezessiv: CANL,CANH offen. Abschluss zieht bei auf gleichen 
Pegel, egal welchen. Dominant: CANL=0, CANH=+V.

Receiver: Ab einer Mindestdifferenz zwischen CANH und CANL wird die 
Leitung als dominant erkannt.

Bei dir heisst das: Wird eine Seite dominant, wird dies auf die andere 
Seite übertragen. Soweit ok. Nur ist das ja symmetrisch, da ist kein 
Gedächtnis drin wer als erstes kam. Folglich wird der Zustand "dominant" 
auch wieder zurück übertragen. Wenn der ursprüngliche Transmitter jetzt 
abschaltet, ändert sich nichts mehr, die Leitung bleibt dauerhaft 
dominant und sämtliche Nodes erkennen über kurz oder lang einen 
Busfehler und schalten ab.

Es gibt kommerziell CAN Repeater, bestimmt auch welche mit galvanischer 
Trennung. Aber wie die arbeiten weiss ich nicht.

von cerberus (Gast)


Lesenswert?

wenn man ein bisschen drüber nachdenkt ist es ganz logisch. Es fehlt der 
Controller, der im Hintergrund prüft ob die 0 auch wirklich von ihm kam 
oder nicht ...
Mist!
Also als Alternative fällt mir jetzt nur ein zwei kleine CAN - uCs 
miteinander zu verheiraten. Das ist natürlich viel Größer, als ich es 
haben wollte.
Hat jemand eine bessere Idee?

von Steffen (Gast)


Lesenswert?

hatte oben nicht richtig gelesen, das Du einen Repeater brauchst. Schau 
Dir mal den AMIS-42700 von AMI-Semiconductor an. Der ist zwar nicht 
galvanisch  getrennt, aber alles in einem Baustein. Man kann damit auch 
CAN-BUS Extender aufbauen. Im Prinzip ist das ein Dual-CAN Transceiver.

http://www.amis.com/products/transceivers/amis_42700.html

von cerberus (Gast)


Lesenswert?

der sieht ja schon nicht schlecht aus, aber...
wo bekomme ich den her? Sergor muss ihn anfragen, Reichelt und Spoerle 
Fehlanzeige...
Ich habe schon mal bei AMI nach einem Muster gefragt, aber da kam nicht 
mal eine Antwort...

von Steffen (Gast)


Lesenswert?


versuche es mal über den Distributor:
http://uk.azzurri.com/index.htm

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
Noch kein Account? Hier anmelden.