Hallo allerseits Ich verwende Matlab Simulink um serielle Daten vom Mikrocontroller zu senden und zu empfangen (siehe anhang). Ich schaff es problemlos Daten von Matlab zum Controller zu senden, aber ich kriege es nicht hin, dass er daraufhin Daten wieder zurücksendet. Der ablauf sieht so aus: Matlab sendet Daten --> Controller Controller empfängt gültige Daten ---> sendet "OK" an Matlab zurück Anstatt das "OK" zu erhalten, empfange ich nur daten, die ich gesendet habe. Nun hab ich gelesen, dass man RTS verwenden muss, um zwischen Senden und Empfangen zu schalten. Ich habe auch unter Matlab eine Option gefunden, um auf RTS zu schalten. Meine Frage ist, wie wird es auf der Controllerseite gemacht? Gibt es dazu ein Register? Oder ist RTS gar nicht nötig und muss nur vor dem Senden an Matlab das Empfangsregister deaktivieren? Über eure Tipps wäre ich sehr dankbar!! Grüsse
RTS hat mit deinem Problem ziemlich sicher nichts zu tun. CTS/RTS ist eine Handshake Methodik. Damit sagt der Empfänger dem Sender: "Hey nicht so schnell, ich komme nicht nach. Warte mal ein wenig"
Karl heinz Buchegger schrieb: > CTS/RTS ist eine Handshake Methodik. Damit sagt der Empfänger dem > Sender: "Hey nicht so schnell, ich komme nicht nach. Warte mal ein > wenig" Ja, das kommt noch aus den Urzeiten, wo die UARTs noch keine FIFO hatten und der PC noch mit 4,77MHz lief. Heutzutage sind unter Windows 4kB FIFO üblich, das reicht in der Regel. Und auf seinem MC sollte man auch nen FIFO einrichten, der der zu erwartenden Paketlänge entspricht. Die zusätzlichen "Bremsleitungen" werden daher kaum noch verwendet. Peter
Hallo danke erstmal für die Info. Ich verwende den Baustain MAX483 und dieser hat ein Enable Pin, welcher zwischen Senden und Empfangen schaltet (laut Datenblatt). Dieser Pin ist bei mir mit PD2 verbunden. Frage: Muss ich diesen Pin immer vor dem Senden auf High schalten und sofort danach wieder auf low in der Art: Set Port PinD to High // enable sending TransmitData(Data); Set Port PinD to Low // disable sending So hab ich es verstanden. Wird das so gemacht od. mach ich es mir wieder viel zu einfach? :P
Hallo Kann das sein das du irgendwo eine Brücke zwischen Rx und Tx hast? Dann würden die Daten die du über Tx sendest sofort wieder über Rx Empfangen. Gruß Michael
http://de.wikipedia.org/wiki/RS485 rtfm!!! 1. Es ist normal bei rs485 seine eigene Nachricht wieder zu empfangen 2. ja der enable pin ist anzusteuern 3. hast du überhaupt mal das Datenblatt gelesen und verstanden? geschweige die Texte über rs485?
Hi >Muss ich diesen Pin immer vor dem Senden auf High schalten und sofort >danach wieder auf low in der Art:... Vorsicht. Die UART des ATMega8515 ist gepuffert. D.h. wenn du das Senden nicht unterbrechen willst, musst du abwarten, dis das letzte Byte raus ist -> TXC-Bit in UCSRA auswerten. MfG Spess
Hallo ich verwende einen RS-485 Interface Konverter. Das Gerät hat 4 Anschlusspins: DCE/DTE....................Monitor ---------------------------------- Transmitter +V.............Receiver 1 +V Transmitter -V.............Receiver 1 -V Receiver -V................Receiver 2 -V Receiver +V................Receiver 2 +V Zurzeit sind jeweils Transmitter und Receiver gebrückt. Wie müsste man die Pins richtig verschalten? Hat jemand erfahrung mit dem konverter? Die Anleitung ist ziemlich mager, da steht kaum was drinen :(
Hi >Receiver -V................Receiver 2 -V >Receiver +V................Receiver 2 +V ???????? MfG Spess
hallo spess das steht so im Manual. weiss auch nicht was die damit sagen wollen. der konverter ist dieser hier http://shop.deinfo.net/p/43460522/aten-konverter-rs-232-auf-rs-422-rs-485-point-to-point?cid=google_base von meinem kontroller kommen halt nur zwei drähte (Bus über MAX483) zum Konverter. wie ich die beiden bus-leitungen am konverter verschalten kann, steht da nicht drin. bei zwei drähten ist nur halb-duplex möglich. hab es so verstanden, dass zwischen senden und empfangen über das "Enable" geschaltet werden muss. Hab es auch so in meiner routine. Aber entweder schaff ich es nur zu senden oder nur zu empfangen :( Hat denn och nie einer diesen komischen konverter bbenutzt?
Hi >von meinem kontroller kommen halt nur zwei drähte (Bus über MAX483) zum >Konverter. Nur 2? Du brauchst TX,RX und Masse. MfG Spess
Hallo nein, ich spreche von einem Bus. TX und RX gehen auf den MAX483 und die Ausgänge sind die beiden Bus-Leitungen ;) µC (RX,TX, EnablePin für Senden/Empfangen) ----> MAX483 ---> 2 Leitungen (A, B) ----> Konverter ----> PC Monitor Habe die Verdrahtung jetzt nach Halb-duplex umgeändert. Und ich schaffe es zwar zu senden ( RTS im Hyperterminal eingeschaltet). Aber das empfangen auf dem hyperterminal geht gar nicht, trotz dass ich RTS ausschalte.
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.