PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Problem mit MCP2551



Kampi
21.02.2012, 16:51
Hallo Forum,

ich habe heute meine MCP2551 bekommen und wollte ein wenig damit rumexperimentieren.
Ich habe folgende Schaltung aufgebaut:

http://img14.imageshack.us/img14/3595/unbenanntnau.png (http://imageshack.us/photo/my-images/14/unbenanntnau.png/)

Rx und Tx sowie +5V und GND kommen von einem FT232 und mein Plan war das ich mittels Terminal Buchstaben eingebe, der MCP2551 diese in den CAN-Pegel umsetzt und der andere diese weiter schickt. Der andere wandelt das dann wieder Rx und Tx um und da diese gebrückt sind wird das zurück geschickt.
Nur es funktioniert nicht. Am Terminal kommt nichts an.
Was habe ich falsch gemacht?
Ist mein Denkansatz vielleicht falsch?
Danke für die Hilfe.

ePyx
21.02.2012, 16:54
Brauchst du die Referenzspannung ( 12Volt) nicht ? Sind doch beides nichts anderes als galvanisch getrennte Pegelwandler.

Kampi
21.02.2012, 16:56
Ne die hängen beide an den selben FT232.
Normal kann man bei einem FT232 ja Rx und Tx überbrücken und dann sieht man im Terminal ja die Buchstaben die man eintippt. Ich will im Prinzip dasselbe machen nur das ich da halt zwei CAN-Pegelwandler zwischen habe.
+5V und GND von beiden CAN-Wandlern geht auf dasselbe FT232 Modul. Nur von dem ersten Wandler gehen Tx und Rx an das FT232 Modul und CANH und CANL an den zweiten CAN-Wandler. Bei dem zweiten CAN-Wandler sind Rx und Tx dann gebrückt.
Hab gerade auch nochmal mit dem Oszi gemessen. An Pin 1(TXD) von dem CAN-Wandler 2 liefert das selbe Bitmuster wie der Tx Pin vom FT232 Modul. Das heißt die Daten sollten ja ankommen. Aber wieso kommt nichts zurück?

BastelWastel
21.02.2012, 17:12
Servus..
Ohne je mit CAN, geschweige dem Chip in Beruehrung gekommen zu sein..
Du hast CAN-H auf CAN-L und CAN-L auf CAN-H, sollten die nicht ueber den ganzen Bus 1:1 verbunden sein?
Du sagst dem Chip durch deine Bruecke dass er direkt wieder zurueck senden soll... Ist das nicht nur ein reiner Pegelwandler? Wenn ja, dann kann nichts zurueck kommen da es dann am Bus zur kollision kommen wuerde.

Gruss, Andreas

ePyx
21.02.2012, 17:16
Du hast CAN-H auf CAN-L und CAN-L auf CAN-H, sollten die nicht ueber den ganzen Bus 1:1 verbunden sein?


Stimmt eigentlich. Hab ich gar nicht gesehen. CAN-L bezeichnet ja nur das niedrige Potential.

Kampi
21.02.2012, 17:16
Äh ja CANH und CANH sowie CANL und CANL sind miteinander verbunden. Hab es in der Skizze falsch eingezeichnet.
Danke für den Hinweis! Und das mit den Kollisionen kann gut sein.... .
Ich teste es mal mit einem zweiten FT232 Modul. Mal gucken ob es dann geht.
Danke euch beiden für die Hilfe :)

Edit:
Ok es war wirklich eine Buskollision.....
Danke für den Hinweis. Hab es nun mit einem zweiten FT232 probiert und nun funktioniert es.
Danke nochmals euch beiden :)

BastelWastel
21.02.2012, 17:24
Hab kurz mal nach dem Datenblatt gegoogelt..

"The MCP2551 is a .. device that serves as the interface between a CAN protocol controller and the physical bus."

Sprich, er wandelt dir nur die TTL Pegel auf ein CAN gerechtes differential Signal (CAN hat keine getrennten Tx/Rx Leitungen, aehnlich z.B. wie RS485)
Um etwas zurueck zu bekommen musst du mit dem zurueck senden "aktiv" warten bis das vom PC gesendete fertig ist, etwa mit einem uC...
oder wie du gesagt hast mit einem zweiten FT232 am PC ueber den zweiten COM Port auslesen.

Gruss, Andreas

Kampi
21.02.2012, 17:36
Ja den Job übernehmen später dann meine CAN-Controller, also meine MCP2515.