Zuverlässig schalten mit optischer Übertragung über ein TOSLINK (S/PDIF) Kabel

by Dr. Stack van Hay | 28. März 2013 23:03

Es kommt immer wieder vor, dass wir Frickler einen optischen Impuls übertragen wollen, die bewährte Lösung ist, eine LED und eine Fotodiode flach abzufeilen und das Lichtleiterkabel anzukleben. Es gibt auch noch verschiedene verbesserte Versionen dieser Technik.
Aber warum nicht einfach einen Baustein verwenden, der dafür vorgesehen ist? Ich experimentieren ein wenig mit dem GP1FAV51RK0F.

Sharp-Receiver[1]

Sharp GP1FAV51RK0F Fiber Optical Reveiver

Das Geniale

Genial an diesem Baustein ist, dass er

  1. billig zu haben ist (ab 1€)
  2. sehr empfindlich ist
  3. eine Standard Toslink Buchse darstellt
  4. ein Loch für eine Schraube für die Frontplattenmontage hat
  5. über einen integrierten Verstärker verfügt
  6. relativ schnell ist (Transferrate von 13.2 Mb/s, mit den entsprechenden Rise- und Fallzeiten)
  7. in 5 V und 3.3 V zu haben ist
  8. Standard-TTL Pegel liefert

was will man mehr?

Es gibt neben dem GP1FAV51RK0F (Receiver) dem entsprechend den GP1FAV51TK0F (Transmitter) und für 3.3 V noch den GP1FAV31RK0F bzw. GP1FAV31TK0F. Die Bausteine sind sehr tolerant, was die Eingangsspannung angeht (max. 7V). Etwas empfindlich scheinen sie beim Löten zu sein, denn der Hersteller empfiehlt, die Pins nicht direkt mit dem Lötkolben zu berühren! Bei mir ist allerdings deswegen noch keiner kaputt gegangen. (Von einem, den ich mit Netzspannung gut durchgebraten habe berichte ich euch später …)

Das Problem

Im Wesentlichen hatte ich drei Probleme mit dem Teil

Kein-Signal

Unkontrollierte Oszillationen

Die Lösung

Ist eigentlich einfach:

[toggle title=“Steile Flanken per PNP-Transistor“ style=“fancy“]

Die folgende einfache Schaltung mit einem Standard-Kleinsignal-PNP-Transistor BC856B  sorgt für eine bessere Flankensteilheit beim Einschalten.

Schaltplan_PowerUp[2]

Hier sieht man den Effekt am Beispiel einer linear ansteigenden Versorgungsspannung. In der Realität ist der Effekt noch besser, weil die Versorgungsspannung nicht linear sondern exponentiell ansteigt (normalerweise).

Power-Up[3]

Steilerer Anstieg der Versorgungsspannung.

[/toggle]

Mit dem Satz [quote]The output (H/L Level) of this product are not fixed constantly when it receivers the modulating light (including DC light, no input light) less than 0.1 Mb/s [/quote] ist übrigens einfach gemeint, dass das sich kein konstanter High-Pegel von 5 V ergibt, sondern die Spannung langsam, mit geschätzt 0.05 V/ms abfällt. Wenn man das in kauf nehmen kann, ist es also durchaus möglich sinnvoll mit viel geringeren Frequenzen, als den geforderten 100 kHz zu operieren.

Digitaler Empfänger

Hier ein Schaltplan für einen Atmet ATTINY45 als Decoder an dem optischen Empfänger. Am Programmierheader stehen die digitalen Ausgänge PB5, PB2, PB1 und PB0 für angeschlossene Schaltungen zur Verfügung, PB4 verbindet den optischen Empfänger mit dem Microcontroller. Selbst mit dem 1€ ATTINY45 kann man also hervorragend rumspielen.

Schaltplan_optischer_Empfänger[4] ReceiverBottom[5] ReceiverTop[6]

Ein Beispielprogramm

#include <avr/io.h>
#include <avr/interrupt.h>

#include <util/delay.h>

volatile uint8_t state;
volatile uint8_t level;

int main(void)
{
DDRB = ~(1 << DDB4); // Alle ausser PB4 auf Ausgang (0 = Input, 1 = Output)
PORTB = ~(1 << PB4 | 1 << PB0); // Alle ausser PB4 und PB0 auf high

PCMSK |= _BV(PCINT4);
GIMSK |= _BV(PCIE);

level = PINB & _BV(PB4);

sei();

while(1)
{
}

return 0; /* never reached */
}
// Vorläufig reagiere ich einfach auf eine fallende Flanke und fertig.

ISR(PCINT0_vect)
{
uint8_t pinstate = PINB & _BV(PINB4);

if (pinstate == 0 && level != 0)
{
state = 0;
PORTB |= _BV(PB0);
_delay_ms(50);
PORTB &= ~_BV(PB0);
}

level = pinstate;
}

Endnotes:
  1. [Image]: /wp-content/uploads/2013/03/Sharp-Receiver.jpg
  2. [Image]: /wp-content/uploads/2013/03/Schaltplan_PowerUp.jpg
  3. [Image]: /wp-content/uploads/2013/03/Power-Up.jpg
  4. [Image]: /wp-content/uploads/2013/03/Schaltplan_optischer_Empfänger.png
  5. [Image]: /wp-content/uploads/2013/03/ReceiverBottom.jpg
  6. [Image]: /wp-content/uploads/2013/03/ReceiverTop.jpg

Source URL: https://drsvanhay.de/optische-signale-ubertragen-mit-toslink-spdif-kabeln/