www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RS-485 mit 2xAtMega32 und 1xAtXmega128A


Autor: Daniel S. (daniel_s13)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

So nun zu folgender Frage, der AtXMega128A wird mit 3.3V gespeist, ich 
hab zur Kommunikation den RS485CPA+ (Low-Power) Transciever.

Da RS-232 wohl zu Kommunikation zwischen 3 Microprozessoren ausscheidet, 
habe ich mir überlegt die hier noch Rumliegenden RS485CPA+ zu nutzen.

So, nun die Frage, wenn ich nun den Max485CPA+ mit 3.3V betreibe, die 
AtMega's32 jedoch mit +5V betriebe, kriege ich da bezüglich den Ports 
evtl. Probleme?

Der AtMega erkennt ja schon Low-Pegel als High, somit wäre Empfangen 
kein Problem, nur was passiert wenn ich versuche vom AtMega32 was zu 
senden? Der müsste dann ja eigtl. mit +5V in den Max 485 rein powern, 
der aber mit +3.3V betrieben wird.

Werden die Widerstände für den Ruhepegel (1K Leitung A auf VCC) (1K 
Leitung B auf GND) für jeden einzelnen RS-485 benötigt, wenn diese sich 
auf einer Platine mit der selbigen Versorgungsspannung liegen?

Danke :)

Daniel.

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn sich die drei Prozessoren auf einer einzigen Platine befinden, dann 
ist RS485 nicht nötig und sogar unnötig kompliziert.

Machs doch so: Der serielle Bus ist eine Eindrahtleitung, die einen 
Pullup nach 5V bekommt und mit Open-Collector Treibern getrieben wird.

Bei dem M32 verbindest Du RXD dirkt mit dem Bus, TXD schließt Du an das 
Gate eines HC125 an, desen IN auf 5V liegt. OUT geht dann auf den Bus.

Beim XMEGA nimmst Du zum Treiben des Busses einen mit 5V betriebenen 
HCT125, RXD kannst Du über ein 74LVC-Gatter einfach über einen 
Spannungsteiler an den Bus anschließen.

Da ein 74HCT125 vier Einzelgatter mit IN, GATE und OUT enthält, könntest 
Du das auch für alle TXDs nehmen.

Andere Möglichkeit: 3-fach UND-Gatter. Der Ruhezustand auf einer 
asynchronen seriellen Schnittstelle ist HI. Heißt also: Ein einziger 
Teilnehmer mit mit einem LO auf seinem TXD den Bus auf LO ziehen können, 
und genau das macht das UND-Gatter. Auch hierfür einen HCT-Typ nehmen, 
dann passt das mit den Pegeln schon. Vorteil gegenüber der 
Pullup-Lösung: die Anstiegszeit und Abfallzeiten sind gleich, da der Bus 
ja immer aktiv getrieben wird, und die Anstiegszeit wird kürzer sein.

Ich denke, das ist die einfachste Lösung.

Oder, wenn der XMega Master und die M32 Slaves sind: TXD des XMegas über 
ein HCT-Gatter an die RXDs der M32, und die TXDs der M32 über ein 
74LVC08 (3.3V VCC, 5V Tolerante Inputs) auf den RXD des XMegas. So kann 
der XMgea jedem M32 Befehle senden, die M32 können darauf hin ihre 
Antworten zurücksenden, abder die M32 können untereinander nicht 
kommunizieren.

fchk

Autor: Daniel S. (daniel_s13)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du meinst jetzt eine einfache UART Verbindung richtig?!
Wenn dann benutz ich für alle txd das Gatter :)

werd mich heut Mittag nochmal dran setzen, aber deine Lösung ist wohl 
aus dem pegelwandler Artikel oder? Da finde ich ja paar schaltpläne :)

Gruß Daniel

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt:

5V->3.3V: 74LVC*, mit Vcc=3.3V betrieben
3.3V->5V: 74HCT*, mit Vcc=5V betrieben

fchk

Autor: Daniel S. (daniel_s13)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen dank dir auf jedenfall schonmal, hab mir nun mal die 74LVC und 
74HCT besorgt.

Du meinst schon eine UART Verbindung richtig? ;)

Autor: Frank K. (fchk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.