Hi,
für eine nicht so schnelle FSK kannst man Timer nehmen, die hat jeder
µC:
Demodulieren:
Die Frequenz einfach messen - d.h. den Abstand zwischen zwei steigenden
Flanken abzählen - kann fast jeder Timer. Dann einen Interrupt erzeugen
lassen und in der ISR die Frequenz auswerten:
10kHz, 1kHz Frequenzshift:
9,5kHz < f < 10,5kHz = LOW
10,5kHz < f < 11,5kHz = HIGH
Geht aber nur für niedrige Freuenzen, so im kHz Bereich. Was schnell,
hängt vom Prozessor und von der Interrupt Latency ab. 100kHz mit einem
40MHz µC sind erreichbar (aber schon sehr sportilich!).
Modulieren:
Modulieren geht auch mit Timern, als PWM mit 50:50 konfigurieren, die
Periodendauer im Code manipulieren. Für eine exakte Datenrate das in der
ISR eines zweiten Timers machen.
Signale aufbereiten:
Das ganze braucht einen sauberen Rechteck. Dafür z.B. einen
Schmitt-Trigger oder eine passende Komparatorschaltung nehmen.
Eventuell könnte man Timer kaskadieren? Oder was mit DMA Kanälen
basteln?
Kommt auf den µC an. Es gibt vermutlich auch welche mit FSK drin.