Sinus-Frequenz mit Mega8 erzeugen

Gast #87747
Lesenswert?

Moin moin,

wie stelle ich es am einfachsten an mit einem Mega-8 2 feste Frequenzen
(Sinus) zu erzeugen (entweder die eine oder die andere). Die Frequenzen
sind 1200 und 2200 Hz.
Ich dachte da an PWM. Sollte ich die Werte ins Flash legen oder lieber
jedesmal neu berechnen? Hat evtl. jemand etwas Beispiel-Src, möglichst
in C.

Und dann kommt noch das ganze andersrum. Will meinen, wie erkenne ich
am einfachsten diese 2 Frequenzen?

Das ganze soll für ein AFSK-Modem mit 1200 Baud sein.

Danke für Tips!
Gast #87749
Lesenswert?

>>Hier findest Du oberflächliche Infos.

so kann man das nicht formulieren: auf oberflächliche Fragen bekommst
du in diesem Forum allenfalls ebenbürtige Antworten, wenn du dich mit
der Materie auseinandersetzt und detailierte Fragen stellst folgen die
prägnaten Antworten für gewöhnlich innerhalb von einzelnen Stunden.

Zur Lösung: einen Quadranten vorgerechnet im Flash abspeichern und
timergesteuert durchlaufen. Die Erkennung wurde vor Kurzem auch
erklärt: Eingangssignal auf Komperator und dann auf einen ext.
Interrupt. Der Int. startet einen Timer und je nach dem ob der nächste
Puls (=Int.) oder der Timer zuschlägt ist es die eine oder die andere
Frequenz.

Die Berechnung der Preload und Comparewerte für die Timer in
Abhängigkeit der Frequenzen und deines Quarzes kannst du mit Hilfe des
avr-Datenblattes recht einfach errechnen.

grüsse leo9
Gast #87754
Lesenswert?

moin moin,

danke für die Infos. Werde das mal durcharbeiten.
Das dds-Projekt habe ich mir bereits angesehen. Allerdings will ich
nicht so viele Pins dafür "opfern".
Die nächsten Fragen kommen bestimmt. Dann wirds sicherlich wesentlich
konkreter. Derzeit geht es erstmal um den "groben Entwurf" wie das
überhaupt realisiert werden soll.

Jens
Gast #87756
Lesenswert?

Hallo Baeri,

habe gerad die 1. Prototyp-Platine geätzt.
Die 2 Töne werde ich wie hier vorgeschlagen erzeugen (Sinus berechnet
im Flash ablegen).
Erkennen der unterschiedlichen Töne will ich folgendermaßen
realisieren: Das Signal gelangt auf einen OP der dieses "gnadenlos
übersteuert". Somit erhalte ich ein Rechteck. Der Ausgang des OP geht
dann auf einen Interrupt-Eingang der ATMega. Bei Flankenwechsel wird
der Interrupt ausgelöst und ich starte einen Timer, den ich beim
nächsten Flankenwechsel stoppe. Aus der Zeit ermittel ich, welche der 2
Frequenzen es war (so die Theorie).

Wenns läuft werde ich hier mal darüber berichten.

Jens
Gast #87757
Lesenswert?

Hi Jens,
wollte nur mal wieder nachfragen, wie es bei dir ausschaut,
und ob du schon brauchbare ergebnisse erziehlt hast?
Ich habe vor kurzem auch versucht, selber etwas auf die Beine zu
stellen, aber mit meinen sehr mageren AVR Kenntnissen wird das wohl
noch eine weile in Anspruch nehmen! :-(
Gast #87759
Lesenswert?

Unter diesem Link laufen bereits einige gute Projekte. Die wollen zwar
Bausätze verkaufen und werden daher die SW nicht hergeben aber allein
die Schaltungen geben schon interessante Ansatzpunkte.
www.bausatz.aatis.de/AS096_9k6-Ansteckmodem/as096_9k6-ansteckmodem.html

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