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
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...