Hallo, habe mein µC mit nem Max485 am USB-RS485 verbunden und sende mit .NET mit nem simplem Dialog openport(), WriteFile(), ReadFile(),ClosPort() meine Daten. Die Kommunikation funktioniert soweit gut abei 115kBaud doch leider empfange ich im RxBuf auch meine gesendeteten Daten. Wenn ich die Verbindung mit dem µC trenne habe ich auch noch die gesendeten Daten aus meinem TxBuf am Anfang von RxBuf stehen. Mit anderen Konvertern habe ich nicht das Problem! I füge das Programm einfach mal an, welches nurt noch comliliert werden muss mit einem screenshot vom watch-fenster. Hat jemand schon mal mit so einem Konvertor gearbeitet? Normalerweise, darf er die Kommunikation nicht beeinflussen und einfach den ComPort "spielen"! Der Konverter ist ein FT232BM mit dem Treiber von: http://www.ftdichip.com/Drivers/VCP.htm 2.04.06
Dir ist klar, daß RS485 eine Halbduplexverbindung ist und daß ein Sender am RS485 die eigenen gesendeten Daten "mithört"?
Da es keine wirliche "RX" bzw "TX" Leitung gibt sondern A&B kann ich anhand /RE und DI erkenne ob ich sende oder im Empfangsmodus bin. Aber der Konverter muß sowas doch wissen bzw. mit der Entprechenden Pinbelegung aus dem Datenblatt genau diese Problem schlatungstechnisch intern Vermeiden, da er ja sonst mein Protokoll beeinflusst. Mein RS485 sendet meinem µC ja auch nicht die vom µC gesendetetn Daten zurück... oder ist das etwa anders... ich hänge das pdf von der Manual man an. gruß
> ... Aber der Konverter muß sowas doch wissen bzw. mit der Entprechenden > Pinbelegung aus dem Datenblatt genau diese Problem schlatungstechnisch > intern Vermeiden, da er ja sonst mein Protokoll beeinflusst. Nein, eben nicht! Zur Erläuterung (und wie Rufus bereits sagte) hört sich ein RS485-Teilnehmer selber reden. Und das ist gut so, weil er dann erkennen kann, ob ein anderer Busteilnehmer gleichzeitig gesendet hat, was den Bus stört. Man muss dazu den Tx- mit dem Rx-Buffer vergleichen, nachdem das letzte Zeichen gesendet wurde. FTDI verwendet in den AppNotes genau diese Schaltungsart und steuert soweit ich weiss /RE und DI getrennt an. Wenn du nicht hören willst, was du rauspustest, dann musst du /RE und DI mit dem gleichen Signal ansteuern. Ralf
Das heist, dass ich beim öffnen des ComPort auch die Handshake-Signale DTR und RTS setzten / zurücksetzten muss, damit der Konverter weis, das er jetzt sendet und ich damit RE und DI setzte zurücksetzte... ich versuches mal...
nix.... ich kann doch bestimmt mit DCB settings meinem Konverter sagen wnn ich sende oder wann ich empfangen soll, da intern villeicht ein Handshake wie beim rs232 geschieht oder? ... in diesem Falle müsste mann mit folgenden Funktionen arbeiten: z.B.: EscapeCommFunction(_hCom, SETRTS); oder generell einstellen: // CtsRtsFlowControl: dcb.fOutxCtsFlow = TRUE; dcb.fOutxDsrFlow = FALSE; dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; dcb.fOutX = FALSE; dcb.fInX = FALSE; // CtsDtrFlowControl: dcb.fOutxCtsFlow = TRUE; dcb.fOutxDsrFlow = FALSE; dcb.fDtrControl = DTR_CONTROL_HANDSHAKE; dcb.fOutX = FALSE; dcb.fInX = FALSE; // DsrRtsFlowControl: dcb.fOutxCtsFlow = FALSE; dcb.fOutxDsrFlow = TRUE; dcb.fRtsControl = RTS_CONTROL_HANDSHAKE; dcb.fOutX = FALSE; dcb.fInX = FALSE; //DsrDtrFlowControl: dcb.fOutxCtsFlow = FALSE; dcb.fOutxDsrFlow = TRUE; dcb.fDtrControl = DTR_CONTROL_HANDSHAKE; dcb.fOutX = FALSE; dcb.fInX = FALSE; Gibt es zusätzlich noch ein Byte was ich setzten muss umd wirlich nur ein Senden zu realisieren? Gruß
Mir war eigentlich so, als ob die FTDIs das Umschalten über eine spezielle IO-Funktion unterstützen. Nix mit Umschalten per RTS/CTS oder DTR/DSR. Guck doch nochmal im Datenblatt nach, müsst mich arg täuschen, wenns nicht so ist. Ralf
> Mir war eigentlich so, als ob die FTDIs das Umschalten über eine > spezielle IO-Funktion unterstützen. Nix mit Umschalten per RTS/CTS oder > DTR/DSR. Guck doch nochmal im Datenblatt nach, müsst mich arg täuschen, > wenns nicht so ist. Sorry, ich hatte recht und doch unrecht :) Die könnens zwar, aber erst seit der R-Version. Okay, an meiner Aussage die Richtungsumschaltung mit dem gleichen Signal zu machen ändert sich dadurch aber nix. Damit stellst du den Treiber dann auf taub, wenn er sendet. Ralf
Bei FTDI Support sagte man mir, das ich je nachdam welchen Pin ich vom SUB-Stecker beschalte ECHO ON/OFF schalten kann. Natürlich íst es von Nutzen seine eigenen gesendetetn Daten zu sehen, aber bei einem Master und mehreren Slaves die Antworten, kann das besser SW-technisch ermöglicht werden, um somit die Datenrate zu reduzieren etc.. ... leider habe ich von FTDI noch keine Anwort, welche Pins ich jetzte genau und wie beschalten muss...
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.