Forum: Mikrocontroller und Digitale Elektronik FM-Tuner Sendersuchlauf


von Sven (Gast)


Lesenswert?

Hallo,

ich habe vor einigen Wochen einen TV/FM-Tuner (FM1216ME) an meinen 
ATmega16 angeschlossen, der MC tauscht Daten mit dem Tuner mittels des 
I2C-Busses aus. Ich nutze nur den FM-Teil des Tuners, dies plappt auch 
alles ganz gut ich kann eine Freuquenz mittels Tasten einstellen und 
diese wird auf einen LCD-Display angezeigt. Alles wie bei einen 
"normalen" Radio.

Was ich noch in das Projekt Einbringen möchte ist ein Sendersuchlauf, 
also wenn man eine Taste drückt wird der nächste Sender gesucht. Ich 
habe versucht eine möglichkeit zu finden wie man dieses realisiert, 
allerdings erfolglos. Ich hoffe mir kann jemand diesbezüglich einen Tip 
geben, wie man eben dieses realisieren kann.

Vielen Dank für einen Tip

von Omega G. (omega) Benutzerseite


Lesenswert?

Datenblatt Seite 15 Bit 6. So habe ich das glaube ich mal gelöst.

von Magnus Müller (Gast)


Lesenswert?

Datenblatt:

http://dl.ivtvdriver.org/datasheets/tuners/FM1216ME_MK3.pdf

Siehe Seite 17/18

Gruß,
Magnetus

von Sven (Gast)


Lesenswert?

Das hat mit den Seiten 17 / 18 zu tun, ich habe auch schon einiges 
versucht - aber es klappt nicht. Denn ich habe folgendes Problem: Wie 
kann ich herrausfinden das die Frequenz des Sender z.B. genau 101,0 MHz 
ist? Mann das z.B. diesen Sender auch auf 101,1 MHz Empfangen aber dies 
sich nicht die genaue Frequenz des Senders.

Das Statusbyte ist immer gleich, egal ob die Frequenz 101,0 MHz oder 
101,1 MHz ist. Das einzige was "zappelt" sind die 4 AFC-Bits, aber dies 
tun sie auch wenn die Frequnz genau auf den Sender eingestellt ist.

Das ist es was mir nicht ganz klar ist.

von Magnus Müller (Gast)


Lesenswert?

Ich würde für den Sendersuchlauf das AFCWIN-Bit auswerten. Wenn das Bit 
== 1 ist hat sich die AFC gelocked. In diesem Falle hälts du deinen 
Sendersuchlauf einfach an und beginnst die AFC-Bits auszuwerten und über 
sie die Feineinstellung vorzunehmen.

Gruß,
Magnetus

von Sven (Gast)


Lesenswert?

Ok, wenn AFCWIN-Bit=1 ist, dann ist die PLL "eingerastet". Der 
PLL-regelt dann permanent die Frequenz nach von Soll - 187,5 KHz bis 
Soll + 187,5 Khz. Aber auch wenn die Soll-Frequenz auf der Ist-Freuqenz 
ist, dann regelt der PLL auch nach, zwar in einem kleineren Bereicht, 
aber immerhin. Wie kann ich ersehen, das die eingestellte Frequenz die 
Ist-Frequenz ist.

Dazu fällt mir nichts ein, obwohl ich schon an diesem Ansatz "gebastelt" 
habe, aber funktionieren tun es bei mir nicht.

von Magnus Müller (Gast)


Lesenswert?

Was die Auswertung der AFC-Bits angeht:

Wenn du das AFC4-Bit (D4) invertierst erhältst du einen (unsigned) Wert, 
der direkt proportional zur Abweichung der Empfangsfrequenz von der 
gewählten Frequenz ist. Diesen Wert würde ich an deiner Stelle mitteln 
und die eingestellte Frequenz nachregeln bis der Wert im Mittel 0b0111 
oder 0b1000 ist.

Gruß,
Magnetus

von Magnus Müller (Gast)


Lesenswert?

Wie gesagt: Die AFC-Bits ausmitteln. Wenn die AFC in der Mitte pendelt 
ist es perfekt. Die Frequenz wird nie 100%ig stimmen.

Gruß,
Magnetus

von Magnus Müller (Gast)


Lesenswert?

Ausserdem solltest du bedenken, dass das empfangene Signal ja 
Frequenzmoduliert ist. Daher kommt ja auch die Abkürzung FM.

von Sven (Gast)


Lesenswert?

Vielen Dank für Deine Antworten Magnus, kannst Du mir noch eben kurz 
einen Tip geben was Du genau mit "ausmitteln" meinst.

Danke

von Magnus Müller (Gast)


Lesenswert?

Lies die AFC-Bits von mir aus 16x aus und summiere sie auf. Die Summe 
teilst du dann wieder durch 16 und du hast den Mittelwert aus 16 
"Messungen". Für höhere Genauigkeit solltest du die Anzahl der 
"Messungen" ggf. erhöhen. Aber bitte vergiss nicht, die Summe dann auch 
durch die höhere Anzahl an Messungen zu teilen.

von Sven (Gast)


Lesenswert?

Das werde ich gleich mal programmtechnis umsetzen, nochmals vielen Dank.

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
Noch kein Account? Hier anmelden.