Forum: Mikrocontroller und Digitale Elektronik UART über selbstgebauten Optokoppler möglich?


von Sebastian H. (sebastian112)


Lesenswert?

Hallo,

kann ich eine UART-Schnittstelle über zwei Optokoppler realisieren? Ich 
möchte zwei Atmega2560 miteinander kommunizieren lassen und würde dies 
gerne über eine Entfernung von 2 cm tun.
Ich habe mir überlegt, dafür Photodioden (link siehe unten) zu benutzen 
(weil schneller) und etwas wie Bündel-LEDs. (weiß jemand wo es so etwas 
gibt?)
Nun ist mir klar, dass der Flaschenhals in der Übertragung der 
Lichtsensor ist, kann man UART eventuell mit geringerer Baud-rate 
betreiben?

Später sollen beide Atmega Motoren steuern und Sensoren auslesen und 
sich beide Systeme ausgleichen, diese Kommunikationsschnittstelle ist 
jedoch Bedingung dafür, dass ich mich tiefer in Mikrocontroller 
einarbeite. (wie ihr merkt bin ich leider noch Anfänger).

Bin dankbar für jede Anregung!
Gruß, Sebastian


Links:
Photodiode in Transimpedanzverstärker -schaltung
http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor
http://www.mikrocontroller.net/articles/Optokoppler

von David M. (md2k7)


Lesenswert?

Hallo,

wenn du dich nur in µC-Technik einarbeitest und elektrotechnisch schon 
ein wenig drauf hast, kannst du mit Standardkomponenten Baudraten 
vielleicht bis 100.000 baud erreichen. In dieser Gegend beginnt dann das 
große Tüfteln um unterschiedliche Parameter der Opamp-Schaltung 
(Fotodiode an TIA)...

Wenn du dich aber wirklich auf dein Ziel konzentrieren möchtest, würde 
ich käufliche Optokoppler empfehlen. Wozu brauchst du eigentlich 2 cm 
Abstand?

Weitere Anregung: Bis zu einigen kHz übertragen übliche 
IR-LEDs/IR-Sensoren (wie in der Infrarot-Fernbedienung) sehr 
zuverlässig, die Empfänger sind integriert und haben dann nur Versorgung 
und einen Datenausgang.

UART-Datenrate stellst du in einem weiten Bereich selbst ein.

Gruß
David

von Stefan B. (stefan) Benutzerseite


Lesenswert?

IMHO ist das grundsätzlich machbar. Ist aber kein Anfängerprojekt.

Anspruchsvoll kann es werden, wenn Fremdlicht oder Störungen im Spiel 
sind, die ausgefiltert werden müssen und modulierte Sender erfordert, 
oder wenn viele Daten in kurzer Zeit übertragen werden sollen (> ca. 
1200 BAUD) oder wenn Duplexbetrieb (beide µC dürfen gleichzeitig senden) 
Bedingung ist, oder wenn Fehlerkorrektur bei Datenverlust oder 
Verschlüsselung gewollt werden.

von Sebastian H. (sebastian112)


Lesenswert?

Hallo David,
danke fürs schnelle Antworten!
Ich würde unglaublich gerne Optokoppler kaufen, aber gibt es die in 
optischer Ausführung?
100.000 baud sollten locker reichen. Später sollen mehrere Module in 
einer Art Matrix stehen und miteinander kommunizieren. Daher braucht 
jedes Modul an jeder Seite eine optische Schnittstelle (also 4 Stück). 
Gibt es so etwas vielleicht auch direkt zu kaufen? Wenn ja, wo? Ich 
finde leider nichts!

Gruß, Sebastian

von Karl H. (kbuchegg)


Lesenswert?

Sebastian H. schrieb:
> Hallo David,
> danke fürs schnelle Antworten!
> Ich würde unglaublich gerne Optokoppler kaufen, aber gibt es die in
> optischer Ausführung?

Was ist für dich 'optische Ausführung'? Das ein Optokoppler was mit 
Optik zu tun hat, sagt ja schon der Name.

Normalerweise benutzt man Optokoppler um eine galvanische Trennung 
herbeizuführen. Aber das scheint bei dir nicht der Fall zu sein.

> Später sollen mehrere Module in
> einer Art Matrix stehen und miteinander kommunizieren.
> Daher braucht jedes Modul an jeder Seite eine optische
> Schnittstelle (also 4 Stück).

Das klingt für mich nach einem ganz anderen Problem: Wie schaffst du es, 
dass ein Empfangstransistor am Transistor vor ihm vorbei auf die LED 
blinzelt?

von Sebastian H. (sebastian112)


Lesenswert?

Hallo Stefan,

also Fremdlicht oder Störungen könnte ich durch eine Art geteilten 
Verbindungsschlauch reduzieren, darüber mache ich mir eigentlich weniger 
Sorgen.

Gibt es für Fehlerkorrektur keine fertigen Libraries? Die optische 
Schnittstelle ist zwar wünschenswert, aber meine Arbeit ist eigentlich 
viel eher das Ansprechen von Motoren und Sensoren. In Programmierung der 
Fehlerbereinigung kann ich mich nicht einarbeiten....

Gruß, Sebastian

von Sebastian H. (sebastian112)


Lesenswert?

Ja, der Optokoppler ist ja eigentlich ein geschlossenes Bauteil. 
Richtig, galvanische Trennung. Diese Funktionsweise will ich übernehmen 
und selber bauen um diesen Luftspalt zu überbrücken.

Bzw. am Liebsten würde ich ein Bauteil kaufen und direkt den UART 
anschließen ;-)

von Karl H. (kbuchegg)


Lesenswert?

Sebastian H. schrieb:
> Ja, der Optokoppler ist ja eigentlich ein geschlossenes Bauteil.
> Richtig, galvanische Trennung. Diese Funktionsweise will ich übernehmen
> und selber bauen um diesen Luftspalt zu überbrücken.

OK.
Ich versuch mal das zu beschreiben, was ich glaube verstanden zu haben.

Du willst einen Optokoppler bauen, bei dem Sender und Empfänger auf 
unterschiedlichen Platinen sitzen.
D.h. du schiebst zb 4 Module aneinander
1
                    
2
     +--------+     +--------+          S ... Sender
3
     |    E S |     |    E S |          E ... Empfänger
4
     |        |     |        |
5
     |E      S| <-> |E      S|
6
     |S      E| <-> |S      E|
7
     |        |     |        |
8
     |    S E |     |    S E |
9
     +--------+     +--------+
10
          ^ ^            ^ ^
11
          | |            | |
12
          v v            v v
13
     +--------+     +--------+
14
     |    E S |     |    E S |
15
     |        |     |        |
16
     |       S| <-> |E       |
17
     |       E| <-> |S       |
18
     |        |     |        |
19
     |    S E |     |    S E |
20
     +--------+     +--------+
sodass jeder mit seinem Nachbarn kommunizieren kann. Platinen anders 
angeordnet ändert dann zb die Funktion oder die Aufgabenstellung.

Wenn du die Platinen aneinanderschiebst, sollen keine Kabelverbdinungen 
hergestellt werden, sondern die Platinen sollen sich lediglich über die 
Lichtverbindung finden.

(Wie gut das funktioniert ... kann ich mich noch gut erinnern als es vor 
Jahren Drucker gab, die per IRDA an Notebooks angeschlossen wurden. Im 
Freien war das Glücksspiel, wenn der Rechner dem Drucker eine Seite 
komplett überspielen konnte. Es endete damit, dass Rechner, Drucker und 
Bediener unter einem grossen Putzlappen (recyceltes Leintuch) den 
zufällig wer mit hatte, verschwanden)

von Sebastian H. (sebastian112)


Lesenswert?

JAAAAA, genau SO wollte ich das haben! Himmel, wie gut Du das 
ausgedrückt hast!
(ich muss an mir arbeiten)

Also wäre das denn möglich? Birgt das großes Problempotential?
Das System wird ausschließlich indoor eingesetzt und ich kann den 
Lichteinfall durch eine schlauchartige Verbindung (von beiden Seiten 
kommend) reduzieren.

Am Liebsten wäre mir aber weiterhin eine Kaufvariante welche ich nur 
noch verbinden muss...

von Chris S. (chris606)


Lesenswert?

Hallo, es gibt doch fertige IrDA Module wie z.B. den TFDU4300 
Tranceiver, den kannst du direkt an den Uart am Controller hängen.
Oder mach ich da jetzt nen Denkfehler?

Gruß
chris

von David M. (md2k7)


Lesenswert?

Also die fertigen IR-Receiver-Bausteine für Fernbedienungsempfänger 
heißen TSOP1..., zB TSOP1738, TSOP1838...

Die können laut Datenblatt allerdings max. 2400 baud.

Wesentlich schneller wird man mit IrDA-Technik übertragen können, auf 
die Schnelle hab ich bei Google mit "IrDA receiver" zB die Design-Note 
DN152 von Linear Technology über den LT1328 gefunden.

Auf jeden Fall wird man den eigenen Sender vom eigenen Empfänger (auf 
der gleichen Seite) gut abschirmen müssen.

Nachtrag: Die Module von meinem Vorposter scheinen auch sehr interessant 
zu sein, beinhalten anscheinend auch gleich Sende- und Empfangsdioden.

Gruß
David

von Frank B. (frank501)


Lesenswert?

Hallo,

man könnte auch eine gepulste Datenübertragung mit IR Machen.
Als Sender eine Infrarot-LED, die mit der Anode an den Portpin kommt (Tx 
am µC) und über einen Transistor an der Kathode mit 36KHz gepulst wird.
Als Empfänger eignet sich dann zum Beispiel der TSOP1736, der auf die 
36KHz abgeglichen ist.
Die Ganze Übertragung ist dann relativ unempfindlich gegenüber 50 oder 
100Hz störungen aus künstlichen lichtquellen und gegen Streulicht.

Frank

von Sebastian H. (sebastian112)


Lesenswert?

@ Chris: Hei vielen Dank, da scheinen wirklich Sender und Empfänger in 
einem Modul zu sein. Ich habe mal einen Blick ins Datenblatt geworfen, 
sieht vom Drüberfliegen so aus als ob es klappen könnte. Muss ich mir 
als Bettlektüre nochmal zur Gemüte führen...

@ David: Deine Ideen vergesse ich nicht, vielen Dank.

@ Frank: Die gepulste Übertragung hört sich schon recht schwer an, bzw. 
schwerer als das Fertigteil zu kaufen :-)
Ich behalts im Hinterkopf falls ich Probleme mit dem Lichteinfall 
bekomme!

von oldmax (Gast)


Lesenswert?

Hi
Zum Problem selbst kann ich nichts beitragen, aber zur Anwendung. Es 
gibt von einer namhaften Firma einen Scanner für Personenschutz. Er wird 
über eine serielle Schnittstelle parametriert und wir wissen aus 
Erfahrung, das es besser gewesen wäre, eine Stecker einzubauen. Der ist 
zwar nicht so "komfortabel", aber funktioniert vermutlich mit wesentlich 
weniger Störanfälligkeit. Sehr oft wird bei der Programmierung die 
Übertragung unterbrochen, und das ist nicht nur das Problem eines 
einzelnen Scanners, sondern alle, die bei uns im Werk eingesetzt sind, 
haben ein solch unzverlässiges Verhalten bei der Parametrierung.  Und 
nur um mal eine Hausnummer zu nennen, das Stück liegt bei ca. 3000.- € 
netto.
Wenn es also nicht unbedingt erforderlich ist, eine solche Schnittstelle 
aufzubauen, würd ich es auch nicht tun.
Gruß oldmax

von Sebastian H. (sebastian112)


Lesenswert?

Danke oldmax,

ich werde mich heute darum kümmern, denn es würde auch ohne gehen. 
Fehlerhaftes Verhalten, nur auf Grund der Schnittstelle, kann ich mir 
absolut nicht leisten....

Gruß, Sebastian

von Tar.Mor. (Gast)


Lesenswert?

@ Sebastian H.

Wieso nimmst Du nicht einfach eine (- falls wirklich nötig - galvanisch 
getrennte) RS485-Verbindung?

Das ist hinreichend erprobt und es gibt dafür sehr viele günstige 
Bauteile.

von Peter D. (peda)


Lesenswert?

Es gibt fertige ICs zur galvanischen Trennung zu kaufen.
Z.B. ADUM1201


Peter

Beitrag #6035473 wurde von einem Moderator gelöscht.
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.