Forum

Einloggen | Registrieren | RSS  

IrDA-Header als interne serielle Schnittstelle (Computertechnik)

verfasst von luker E-Mail, 04.01.2018, 11:19 Uhr

Hallo Forum,

ich bastle an einem Gerät, dass in meinen Videorekorder-PC eingebaut werden soll. Der PC schaltet sich selbst aus, wenn er nichts zu tun hat. Das Gerät soll ihn 5 Minuten vor der nächsten programmierten Aufnahme wieder starten. Dafür muss der PC dem Gerät sagen, wie lange er aus sein wird. Und genau um diese Kommunikation geht es jetzt.
Der PC verfügt über einen 6-Pin-IrDA-Header (+5V, NC, IRRX, GND, IRTX, NC). Die +5V kommen von der Standby-Leitung des Netzteils. Sie versorgen das Gerät auch während der PC aus ist. Die Arbeit macht ein ATtiny2313, der praktischerweise auch +5V braucht.
Im BIOS habe ich den zweiten seriellen Port als IrDA konfiguriert (möglich: Normal, IrDA, ASKIR). Damit kann ich von der Kommandozeile aus einzelne Bytes senden:
echo -en 'x83' > /dev/ttyS1
Das sieht dann auf dem geliehenen Oszi so aus:

________^________^__^__^__^__^_______________
idle....S..1..2.................8..T.....idle

S - Start bit
T - Stop bit

Bits sind durch ~82,5 us lange Idle-Pegel (0V) getrennt, Nicht gesetzte Bits erzeugen einen 20 us langen High-Pegel (+5V), gesetzte Bits bleiben auf Idle.
Die Bitabstände entsprechen ~9756 baud, im Rahmen der Messgenauigkeit passt das zu den eingestellten 9600 baud.

Warum sind die Bits so kurz mit Pausen dazwischen?
Ist das eine Spezialität von IrDA?

Bis dato war ich gewohnt, dass der Pegel eines jeden Bit für die gesamte Bitdauer anliegt.
An welchem Zeitpunkt sampled der UART des ATtiny den Bitwert?
Kann der so etwas prinzipiell verstehen oder muss ich einen Software-UART mit InputCapture bauen?

Danke, dass Du bis hierher gelesen hast.



Gesamter Thread:

IrDA-Header als interne serielle Schnittstelle - luker, 04.01.2018, 11:19