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?
Mhh. Zu einfach? Versteht mich keiner? Ich hatte gehofft, dass mir jemand den richtigen Weg aufzeigt und ggf. auf bestehenden Code weisen kann. So ist anscheinend der Infrarot-Code RC-5 manchesterkodiert: eine Routine von Peter Danneger (Codesammlung) scheint vielversprechend, basiert allerdings auf Polling und geht von einer bestimmten Zahl von Bits aus. Macht eigentlich nichts, der Prozessor hat ja nichts anderes zu tun. Aber eine gute Lösung würde mich schon interessieren..
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.