ja, du denkst richtig, mit Glasfasern hab ich war noch nicht gearbeitet, aber bei Infrarotübertragung macht man das genauso, nur eben mit ~38kHz.
Einfach den Träger, in Deinem Fall dann 1 MHz ein-aus-schalten. Aber Vorsicht, bei der UART ist logisch 0 Highpegel, wenn das halbduplex hin und her gehen soll, dann mußt Du einmal das Signal invertieren, z.B. mit nem kleinen Transistor in Emitterschaltung, weil Du sonst dauernd Träger hast. Zum Senden aber den TX nehmen, nicht RX.
1 MHz könntest Du mit dem 16-Bit-Zähler ... Timer1 z.B. auswerten, den als Counter laufen lassen, und Pulse zählen lassen, das macht der in Hardware ohne Probleme, zusätzlich brauchst Du noch ne Zeitbasis, nen Timer, der mit der Baudrate synchron läuft.
Der Rest ist dann einfach, im Timerinterrupt den Counter auslesen, wenn größer x, dann ist Bit logisch 1, wenn kleiner x, dann ist logisch 0, Counter resetten und die Bits aneinanderreihen, fertig ist die Software-UART.
Lesezeichen