Gast
#396258
Hallo, wie kann ich mit einem Atmega128 eine RS485-Schnittstelle realisieren und damit dann Daten an Computer senden? Vielen Dank für die Hilfe
|
Anzeige
|
RS485 mit Atmega128
Gast
#396258
Hallo, wie kann ich mit einem Atmega128 eine RS485-Schnittstelle realisieren und damit dann Daten an Computer senden? Vielen Dank für die Hilfe Mit entsprechenden Treiber-Bausteinen, die an den UART angeschlossen werden, z.B. SP491E, LTC491 oder SN75180. Im Anhang noch ein paar Infos zur RS485.
Gast
#396261
Der ATmega128 hat so um die 2 serielle Schnittstellen (USART auch genannt). Die verbindet man mit einem RS485-Transceiver. Mit einem weiteren Portpin wird dann dessen Sende-Baustein ein- und ausgeschaltet (wahlweise auch der Empfnagsbaustein). Man schaltet den Sender ein, schickt die Daten über die serielle Schnittstelle raus, und schaltet den Sender wieder aus, wenn die Daten komplett verschickt wurden (TXC-Interrupt). Somit ist der Empfänger eigentlich immer eingeschaltet, und man kann feststellen, ob auf dem Bus etwas los ist, um darauf zu warten, dass man senden darf. CAN-Transceiver sind dafür auch sehr gut geeignet. Ich beziehe mich auf RS485-2wire, also die halbduplex Variante der RS485. 4-Wire-RS485 ist trivial. Für die PC-Seite gibt es entweder fertige Karten (AFAIK auch für USB). Selbstbaulösungen kann man mit Hilfe des Hardware-Handshake erzeugen.
Gast
#396262
Hey Danke... für die Antworten... und wie mach ich die Pin Belegung? Der DI und RO ist klar... gehen beim Atmega128 auf Pin 2 und 3... Doch wie verbinde ich die anderen?
Gast
#396263
/RE ist der Eingang, um den Empfänger feizuschalten. OE ist der Eingang, um den Sender feizuschalten. Die beiden kannst du "zusamenbinden" und an einen Portpin hängen. Zur Sicherheit noch einen Pull-Down-Widerstand, damit der Transceiver grundsätzlich auf Empfangen steht. Man kann auch den /RE-Pin konstant auf Masse legen.
Gast
#396264
Also zum Beispiel beide auf int0 (Pin25 PD0)???
Gast
#396265
ja.
Gast
#396266
kannst du machen, wenn du den Pin als Ausgang betreibst. Interruptfunktion brauchst du dafür natürlich nicht. Jeder andere I/O geht dafür auch. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|