RS-485 mit 2xAtMega32 und 1xAtXmega128A

OP #1679355
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.
#1679414
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren