Forum: Mikrocontroller und Digitale Elektronik AVR (Mega16) und RS485


von Yannic (Gast)


Lesenswert?

Hallo,

ich habe mich nun entschlossen doch RS458 anstelle von I²C oder Can in 
meinem nächsten Projekt zu verwenden.

Nun unterstützt der AVR ja nicht direkt RS458 oder ?

Welchen Treiber Baustein müsste ich denn verwenden um mit einem Atmega16 
über RS458 arbeiten zu können ?

Und wie würde dann ungefähr der Schaltplan für eine simpele RS458 
Schaltung aussehen ?

Außerdem frage ich mich noch ob es nun wichtig ist Optokoppler zu 
verwenden um die Kreise Galvanisch zu trennen.

Achso und dann noch eine Frage zum Betrieb. Da für RS458 ja kein direkt 
fertiges Protokoll existiert, kann es ja zu Komplikationen zwischen 
Daten am Bus kommen, sprich 2 Bytes treffen aufeinander. Kann man dieses 
umgehen indem der Master nur sendet und die Slaves ausführen und die 
Slaves nur antworten können wenn sie vom Master direkt dazu aufgefordert 
werden ?

mfg Yannic

von JÜrgen G. (Firma: 4CKnowLedge) (psicom) Benutzerseite


Lesenswert?

Yannic wrote:

> Welchen Treiber Baustein müsste ich denn verwenden um mit einem Atmega16
> über RS485 arbeiten zu können ?

RS485

> Und wie würde dann ungefähr der Schaltplan für eine simpele RS485
> Schaltung aussehen ?

Datenblatt //      Hint: fast so wie mit RS232 ^^


> Achso und dann noch eine Frage zum Betrieb. Da für RS485 ja kein direkt
> fertiges Protokoll existiert...

MODBus od. selbst schreiben...

von Yannic (Gast)


Lesenswert?

Okay dann konkretisiere ich die Frage nochmal.

Welcher RS485 ist am geeignetsten für die zusammenarbeit mit einem 
Mega16 ?

von Duck und weg (Gast)


Lesenswert?

Texas Instruments hat viele RS485 Treiber. Es muss ja nicht der alte 
DS75176 sein, das ist eine Stomschleuder. Du benoetigst Rx, Tx plus 
einen Pin fuer die Richtung. Je nach Gleichtaktspannung, es gibt Treiber 
mit 25V, ist kein Optokoppler noetig. Allenfalls ist ein magnetischer 
Koppler besser. zB ADuM 1400 oder so. Ja, Ein Master-Slave Protokoll hat 
keine Buscontention, wo zwei Treiber gegeneinander arbeiten.

von spess53 (Gast)


Lesenswert?

Hi

Such mal nach MAX485.

MfG Spess

von Yannic (Gast)


Lesenswert?

Gut über den bin ich auch schonmal gestolpert.

Dann blieben nur die Frage:

"kann es ja zu Komplikationen zwischen
Daten am Bus kommen, sprich 2 Bytes treffen aufeinander. Kann man dieses
umgehen indem der Master nur sendet und die Slaves ausführen und die
Slaves nur antworten können wenn sie vom Master direkt dazu aufgefordert
werden ?"

offen und es hat sich nochmal eine neue ergeben. Im Datenblatt vom Max 
Treiber steht das die Ausgänge und A und B 1:1 verbunden werden, aber 
ich hatte irgendwo mal etwas davon gelesen, das man noch irgendwo 
endwiederstände setzen sollte. Wo genau kommen die hin und welchen Zweck 
erfüllen sie ?

von Ralf (Gast)


Lesenswert?

> Kann man dieses umgehen indem der Master nur sendet und die Slaves ausführen
> und die Slaves nur antworten können wenn sie vom Master direkt dazu
> aufgefordert werden ?"

Ja, indem du ein Master-Slave-Protokoll definierst. Du vergibst jedem 
Slave eine eindeutige Adresse ähnlich I2C. Jeder Slave lauscht erstmal 
nur, d.h. er empfängt JEDEN Datensatz und prüft anhand der Adresse, ob 
er adressiert ist.
Wenn ja, dann stellt der adressierte Slave seine Richtung um, und gibt 
Antwort. Ist er nicht addressiert, macht er... nix.

Ziemlich einfach wenns nur einen Master gibt, bei mehreren wirds 
aufwendiger und die Sache sollte Kurzschlussfest gemacht werden, und das 
Protokoll sollte dass abfangen können (also erneutes Senden bei 
Kollision usw.)

Im Web gibts zig Beispiele zu solchen Protokollen.

Ralf

von Gast (Gast)


Lesenswert?

http://www.roboternetz.de/wissen/index.php/RS485

Das sollte das wohin mit den Endwiderständen erschlagen...

Das wieso -> leitungstheorie !

Sonst gibts nämlich Reflektionen die Fehlinfos auslösen können

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
Noch kein Account? Hier anmelden.