Gast
#1912513
Hallo, ich möchte an dem Gerät aus Beitrag "Protokoll ELV Funk-Temperatur-/ Luftfeuchtesensor ASH500" Daten mitschneiden. Die schnelle Kommunikation mit dem Sensor läuft mit etwa 20 kHz, Pulse mit 20 µs. Die Daten, die gefunkt werden, sind mit 300 µs Pulsen entsprechend langsamer. Ein Ansatz wäre an beiden Ausgängen mit zwei Dioden auf meine 96 kHz Soundkarte zu gehen, und zu hoffen, dass man noch etwas sieht. Dann müsste man die Daten irgendwie umwandeln und könnte sie dann evtl. mit einer Logikanalysatorsoftware angucken/untersuchen. Die zweite Möglichkeit ist ein AVR, der die Daten dann über UART an den PC schickt. Synchrone Übertragung (d.h. Takt und Daten): Meinetwegen kann das eine reine Softwarelösung sein (anstelle Flankeninterrupt), d.h. Warten, bis ein Flanke kommt, gucken, wie der Zustand der Datenleitung ist, Bit reinschieben. Um eine Übertragung zu erkennen braucht man vermutlich entweder die Anzahl der Bits, oder es gibt einen Timeout, nachdem das Paket als beendet angesehen wird. Gibt es dazu evtl. schon etwas in der Codesammlung? Wie realisiert man einen Timeout? Kann man per Timerinterrupt eine blockierende "while(pin=low);" Schleife beenden? (ohne zusätzliches Flag?) Die synchrone Funkübertragung ist vermutlich manchesterkodiert. Da zuerst eine Anzahl von "1" gesendet wird, könnte man die Taktzeit stoppen und danach per Timerinterrupt mit dieser Zeit die Daten abtasten. Nein, es ist ja flankencodiert. Also Flanke und Zeit seit der letzten ergeben das Datenbit. Wenn man parallel dazu noch die Flanken erfasst müsste die Zeit immer etwa 1 oder 2 CLKs sein, damit könnte man die Taktzeit nachstellen. Gibt es da auch schon etwas in der Codesammlung? Wie würdet ihr das machen?