UART über selbstgebauten Optokoppler möglich?

OP #2020948
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
#2020960
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
Persönliche Seite #2020966
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.
OP #2020970
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
#2020979
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?
OP #2020982
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
OP #2020986
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 ;-)
#2020997
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)
OP #2021021
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...
#2021044
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
#2021052
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
OP #2021113
@ 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!
Gast #2021363
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
Gast #2021439
@ 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.
Beitrag #6035473 wurde von einem Moderator gelöscht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.