Ich möchte Kommunikation mit RS485 zwischen Atmega8 und Computer machen. Datan können richtig von Computer zur Atmega8 transmitted werden. Aber von Atmega8 zur Computer ist immer falsch. Vorher habe ich solche Kommunikation mit RS232 gemacht. Beide Richtungen funktionieren. -Ich wollte fragen, ob ich außer den Treiber MAX485 für Atmega8 noch Gerät für Computer anschließen? -RS232 hat drei Leitungen für Transport, aber RS485 nur zwei Leitungen. Kann Computer sich automatisch entscheiden, ob er mit RS232 oder mit RS485 Kommunikation machen? Vielen Dank! Hua
Gibt es jemand, der auch soleche Kommunikation mit RS485 gemacht? Was hast du gemacht?
Der MAX 485 ist ein half duplex Treiber. Wie wählst du am Computer die übertragungsrichtung aus?
Ich weiß nicht, wie ich am Computer die Übertragungsrichtung auswählen. Deshalb habe ich sie nicht am Computer ausgewählt. Meinst du, wenn ich ein voll duplex Treiber benutzen, dann geht es? Aber wieso kann ich auch Daten transmit und receive? Wenn Computer wie RS845 arbeitet und die Übertragungsrichtung am Computer nicht ausgewählt wird, könne die Daten nicht transmit oder receive, oder? Oder vielleicht arbeitet Computer noch wie RS232, dann benutzt er TxD für Transmit, RxD für Receive. Sowieso, TxD und RS485/B sowie RxD und RS485/A haben gleich Pins. Wie findest du?
Hi Es wäre einfacher ,wenn du Can-Bustreiber (PCA82C250) nimmst. Der Bus ist ähnlich RS485, aber die Treiber haben eine automatische Umschaltung auf Senden, wenn der TX-Eingang angesprochen wird. MfG HG
geht auch bei RS485. Normalerweise sind die Transceiver auf Empfang. Das Startbit aus der RS232 schaltet den Transceiver auf senden um. Rückschaltung per Monoflop. Irgendwo hab ich noch eine Schaltung dafür.
hi, schaue Dir mal das hier an : http://www.elektronik-projekt.de/include.php?path=content/articles.php&contentid=16&PHPKITSID=44755c116e7ff8f1132ce079dd6d8668 steht alles schön beschrieben. Du kannst ohne "RS485/RS232" Adapter keinen BUS an einen PC anschließen. Der PC muss ja wissen, ob er sendet oder empfängt. mfg Kay
ich hab den ltc485 für rs485 verwendet. sind 2 pins für sende und empfang-auswahl, die üblicherweise einfach gebrückt werden und mit einem IO des PC oder COntrollers auf Senden / Empfangen geschaltet werden. wichtig dabei ist, das die umschaltung erst erfolgt nachdem alle Daten verschickt sind und nicht noch welche im Puffer hängen. Am Mega 8 einfach RX und TX anschliessen und einen zusätzlichen Steuerpin. Beim PC könnte CTS oder RTS als Steuerleitung verwendet werden um nen Bustreiberbaustein anzusteuern. Was ich nicht ganz verstanden habe, haste den RS-485 einfach auf den COM-Port des PC angeschlossen (RS232) oder hast du da eine separate Karte für oder ein Bustreiber ala max485? Vollduplex ist mit RS485 nicht drin, geht nicht (!), nur halbduplex ... einer sendet einer empfängt. Ein MOnoflop zu konstruieren und dafür Pins am Mega8 brach liegen zu lassen oder RTS CTS zu ignorieren find ich nicht der Weisheit letzer Schuss, mal abgesehen von den evtl. auftretenden Timingproblemen.
PS: ich hab meinen RS485 so konstruiert, das alle Busteilnehmer auf empfang sind bis sie dazu aufgefordert werden was zu senden.
@marko: die Monoflop-Lösung bezieht sich eher auf die PC-Seite... Bei eigener Software kann man freilich die Statussignale für die Umschaltung nutzen, schlechter sieht es aus, wenn fertige Software benutzt wird.
naja, wenn die software für rs232 ausgelegt wird wirds eng mit der Umsetzung. Ich würd dann n µC zwischenschalten, der einfach 2-mal uart bereitstellt. eine für pc-seite, eine für rs-485 - seite so als Dolmetscher
Wenn ich diese Frage stellt habe, habe ich den RS-485 einfach auf den COM-Port des PC angeschlossen (RS232). Jetzt weiß ich, das ist falsch. Aber damals konnte ich Daten von Computer richtig receive. Dies scheint sehr strange. Jetzt benutze ich eine separate Karte für RS485. Und kann ich Daten von Atmega8 nach Computer richtig senden. Aber kann ich nicht Daten von Computer receive. Ich glaube, der Grund ist, ich weiß nicht, wie ich auf die PC-Seite die Statussignal einstellen. to marko: Du hast RTS als Steuerleitung beim PC verwendet, aber wie hast du diese Signal steuern? Beim software in Windows?
genau, zum Beispiel in Visual Basic oder VC++ kanst Du die RTS CTS direkt steuern
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.