Forum: Mikrocontroller und Digitale Elektronik RS485 und Atmel


von Sven B. (mainframeosx)


Lesenswert?

Hallo Zusammen,

Ich suche eine Schaltung mit dem ich einen SN75176 oder MAX485 
verwenden, dieser sollte aber den Schreib und Lese PIN der oben 
genannten Treiber automatisch umschalten. Hat jemand was auf lager, 
unter google finde ich lediglich die Variante, wo der Atmel das Steuert.

Was ich nicht will ist erst eine RS232 Treiber und dann den RS485 
Treiber in reihe. Bei den ganzen DMX Geschichten ist es auch so das der 
Atmel das Lesen/Schreiben schaltet.

Wenn möglich entweder als TTL mit Logic Bausteinen oder mit 
Transistoren.

Danke im voraus

: Bearbeitet durch Admin
von Peter D. (peda)


Lesenswert?

Sven S. schrieb:
> finde ich lediglich die Variante, wo der Atmel das Steuert.

Wer auch sonst.
Nur der MC kann wissen, wann er die Richtung umgeschaltet haben möchte.

von Sven B. (mainframeosx)


Lesenswert?


von Kobalt (Gast)


Lesenswert?

Du kannst die Datenrichtung des MAX485 mit einem MonoFlipFlop 
umschalten, das von der Flanke des Startbits getriggert wird.

http://www.elektronik-kompendium.de/public/schaerer/monoff.htm

von Peter D. (peda)


Lesenswert?

Sven S. schrieb:
> Und warum geht das hier:

Weil das eine Edelbastlerschaltung für zuhause ist.
Es wird nur eine Polarität gesendet, die andere wird über 
Ziehwiderstände gemacht. Es wird quasi ein Verhalten wie beim CAN-Bus 
emuliert.

Korrekt ginge das mit einem retriggerbaren Monoflop, der länger als die 
längste Signalzeit (Break-Signal) halten muß.
Und bei Richtungsumschaltung muß der neue Sender länger als die Zeit des 
Monoflops abwarten.
Daher ist die Umschaltung durch die CPU selber am effektivsten.

von Tom A. (toma)


Angehängte Dateien:

Lesenswert?

Hallo Sven,

im Anhang mal eine alte Schaltung, die vermutlich kann was du brauchst. 
Es ist so, wie Peter schreibt. Der "Normalbetrieb" der Schaltung ist 
Richtungsumschaltung durch MCS51-CPU durch das Signal RTS. Als 
"Sonderbetrieb" kann aber auch das TXD-Signal (erste Flanke des 
Startbit) das Monoflop triggern. Die Geschichte hatte bei 4800Baud prima 
funktioniert, bei schnelleren Übertragungsraten kann es erforderlich 
sein, ein Dummybyte vorab zu senden.

Jumperstellungen Leitungsendgeräte:
   J1: alle 3 geschlossen, J2: 2-3, J3: 2-3, J4: 1-2 fürTX-Trigger (2-3 
für CPU)

Jumperstellung Zwischengeräte:
   J1: 1-2 & 5-6 geschlossen (2-3 = Terminierungswiderstand), Andere wie 
oben

Der Jumper J4 schaltet zwischen CPU- oder TXD-Trigger um. Evtl. muß die 
Zeit des Monoflops deinen Gegebenheiten angepaßt werden.

Viel Erfolg und Gruß. Tom

: Bearbeitet durch User
von Sven B. (mainframeosx)


Lesenswert?

Danke, das werde ich mal versuchen.
Werde mich melden falls was unklar sein sollte.

Danke @Toma

von Frank K. (fchk)


Lesenswert?


von Falk B. (falk)


Lesenswert?

Wenn man es idiotensicher und für ganz Faule haben will, nimmt man den 
FT232. Der hat ein Ausgangspin (konfigurierbar), dass automatisch das 
TE/#RE Pin vom MAX485 steuern kann.

von Frank (Gast)


Lesenswert?

Manche uC haben extra nen Pin für die Umschaltung.
Mit einstellbarem Pre/Post Delay.

Mir fällt spontan der LPC14xx ein, da ich den selbst schon im Einsatz 
hatte.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Falk B. schrieb:
> Wenn man es idiotensicher und für ganz Faule haben will, nimmt man den
> FT232.

Naja, "idiotensicher" ist es sicherlich nicht, auf einem µC einen 
USB-Host zu implementieren, um daran einen FT232 zu betreiben ... da ist 
es ja noch einfacher, eine externe UART mit RS485-Hardwareunterstützung 
an den µC anzuschließen. Von NXP gibt es so etwas sogar als I2C-Device.

(Des Threadstarters Ausführungen interpretiere ich jedenfalls so, daß es 
ihm darum geht, einen RS485-Treiber an einem µC betreiben zu wollen, 
ohne sich um die erforderliche Sender-/Empfänger-Umschaltung kümmern zu 
müssen)

von Frank (Gast)


Lesenswert?

Frank schrieb:
> Mir fällt spontan der LPC14xx ein, da ich den selbst schon im Einsatz
> hatte.

Quatsch, LPC12xx meinte ich.

Rufus Τ. F. schrieb:
> Des Threadstarters Ausführungen interpretiere ich jedenfalls so, daß es
> ihm darum geht, einen RS485-Treiber an einem µC betreiben zu wollen,
> ohne sich um die erforderliche Sender-/Empfänger-Umschaltung kümmern zu
> müssen

So verstehe ich das auch.

von Kaj (Gast)


Lesenswert?

Falk B. schrieb:
> Wenn man es idiotensicher und für ganz Faule haben will, nimmt man den
> FT232. Der hat ein Ausgangspin (konfigurierbar), dass automatisch das
> TE/#RE Pin vom MAX485 steuern kann.

Sven S. schrieb:
> Was ich nicht will ist erst eine RS232 Treiber und dann den RS485
> Treiber in reihe.

von Pandur S. (jetztnicht)


Lesenswert?

Der Ansatz mit dem monoflop, resp dem timer zum automatischen Umschalten 
ist suboptimal, denn Windows zB macht willkuerliche Pausen zwischen 
irgendwelchen internen Bloecken.

von spess53 (Gast)


Lesenswert?

Hi

>Der Ansatz mit dem monoflop, resp dem timer zum automatischen Umschalten
>ist suboptimal, denn Windows zB macht willkuerliche Pausen zwischen
>irgendwelchen internen Bloecken.

Nö. Solange Windows keine Pause innerhalb eines Bytes einlegt 
(unwahrscheinlich), funktioniert das wunderbar.

MfG Spess

von Peter D. (peda)


Lesenswert?

Der MAX13487E sieht doch ideal aus, wenn man nur ne RS232-Lib hat und 
die RS485-Lib nicht selber schreiben will.

von Sven B. (mainframeosx)


Lesenswert?

Danke für die Info‘s die ich bekommen habe. Ich habe in der Bucht jetzt 
was gefunden, zum Testen reicht das erstmal (siehe Link):
http://www.ebay.de/itm/160661187080?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Ich hoffe es funktioniert so wie ich es mir vorstelle.

Das Problem ist das ich nur TX und RX habe, und keine PIN's zusätzlich 
für die Umschaltung am RS485 Treiber
vorhanden sind, deswegen muss ich diesen weg gehen.

Danke nochmals.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kaj schrieb:
> Falk B. schrieb:
>> Wenn man es idiotensicher (...) haben will, nimmt man den FT232.
>> (..)
>
> Sven S. schrieb:
>> Was ich nicht will ist erst eine RS232 Treiber (...)


FT232 ist kein RS232-Treiber, sondern eine USB-Seriell-Bridge.

von Kaj (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> FT232 ist kein RS232-Treiber, sondern eine USB-Seriell-Bridge.
Hupsi, mein Fehler :(
Asche auf mein Haupt.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Frank K. schrieb:
> Und wenn Du es einfach haben willst:
>
> http://www.maximintegrated.com/en/products/interface/transceivers/MAX13487E.html
>
> fchk

MAX13487E / MAX13488E im SO8
Leider habe ich bei Maxim kein 3V Derivat gefunden.
Ansonsten -> sehr cool, falls mal am Controller keine Steuerpins mehr 
frei sind.

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.