www.mikrocontroller.net

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


Autor: Sebastian H. (sebastian112)
Datum:

Bewertung
0 lesenswert
nicht 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/Lichtsenso...
http://www.mikrocontroller.net/articles/Optokoppler

Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sebastian H. (sebastian112)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sebastian H. (sebastian112)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian H. (sebastian112)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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
                    
     +--------+     +--------+          S ... Sender
     |    E S |     |    E S |          E ... Empfänger
     |        |     |        |
     |E      S| <-> |E      S|
     |S      E| <-> |S      E|
     |        |     |        |
     |    S E |     |    S E |
     +--------+     +--------+
          ^ ^            ^ ^
          | |            | |
          v v            v v
     +--------+     +--------+
     |    E S |     |    E S |
     |        |     |        |
     |       S| <-> |E       |
     |       E| <-> |S       |
     |        |     |        |
     |    S E |     |    S E |
     +--------+     +--------+
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)

Autor: Sebastian H. (sebastian112)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Chris S. (chris606)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: David Madl (md2k7)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank B. (frank501)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian H. (sebastian112)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: oldmax (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sebastian H. (sebastian112)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tar.Mor. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt fertige ICs zur galvanischen Trennung zu kaufen.
Z.B. ADUM1201


Peter

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.