FSK modulieren / demodulieren mit uC

Gast #3544291
Lesenswert?

Hallo zusammen,

Ich habe eine Frage und zwar wollte ich wissen, ob man mit jedem uC FSK 
modulieren bzw. demodulieren kann und wie man das in etwa realisiert.

An einem konkreten Beispiel: Funktioniert es mit einem STM32F100x ( 
http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1031/LN775/PF216840?s_searchtype=partnumber 
)

Ich bin leider mehr in der Hardware zuhause als in der Software ;)

Danke für euere Antworten & ein schönes Wochenende

Cédi
Persönliche Seite #3545512
Lesenswert?

Ich würde mal vermuten man könnte die PWM nutzen, also das Signal über 
einen Timer erzeugen. Dann erhält man ein Rechteck-Signal welches man in 
der Frequenz umtasten kann.

Das Rechtecksignal jagt man dann noch durch einen Bandpass (evtl. 
switched capacitor filter) um die Harmonischen raus zu filtern und 
erhält dann die Sinus-Grundschwingung.

Man könnte auch einen Tiefpass verwenden, aber mit dem Bandpass entfernt 
man gleichzeitig den Gleichspannungsanteil.
Gast #3545656
Lesenswert?

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.
#3546262
Lesenswert?

Bei niedrigeren Frequenzen (wenige kHz) geht sehr gut das Senden über 
Timer, Tabelle und einen kleinen D/A (3 Bit sind meist ausreichend). Der 
Filteraufwand wird drastisch geringer.
Zum Empfangen kann man per A/D samplen und dann mit Goertzel 
analysieren. Das gibt auch bei etwas gestörten Signalen noch eine gute 
Erkennung.
Bei besserem Eingangssignal reichen der Komparator eines ATMega oder 
ATTiny und eine Frequenzmessung aus.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren