Hallo,
ich habe mir ein APRS Empfänger mit TCM3105 und Atmega 328 gebaut.
Dafür suche ich jetzt eine NRZI Routine für das Biteinlesen.
Ja ich kenne MicroAPRS, aber trotzdem soll der TCM3105 NICHT durch Software ersetzt werden! Das funktioniert einfach zu lausig.
Das ist zwar keine unlösbare Aufgabe, aber vielleicht hat das ja schon mal jemand gebraucht und entwickelt, und ich kann mir den Aufwand sparen.
bell202.c kurz überflogen: Scheint, als würde da das Audiosignal direkt dekodiert (ohne TCM3105).
Also musst du den Zerocrossing-Zähler/Detektor raus operieren.
Der Dateneingangs-Pin kann der Pin-Change-Interrupt bleiben: einfach immer als "// tone has changed" und entsprechendem Pegel Mark/Space an der Stelle in die Kette einspeisen. Bit stuffing wird danach bereits berücksichtigt.
Aus dem Datenblatt des TCM3105 habe ich entnommen, dass der ein carrier-detect-Ausgang hat. Mit dem ließe sich der Pinchange-Interrupt ein- und ausschalten. Vielleicht tut es aber auch ein AND-Gatter, das den RXD nur durchlässt, wenn auch ein Träger vorhanden ist.