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
Es geht auch mit einem Attiny. Die Frage ist, mit welcher Geschwindigkeit.
Wie ist denn das genau? Muss der uC spezielle Eingänge haben oder wird das alles per Programmierung gelöst?
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.
:
Bearbeitet durch User
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.
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.
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.