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
Datenblatt: http://dl.ivtvdriver.org/datasheets/tuners/FM1216ME_MK3.pdf Siehe Seite 17/18 Gruß, Magnetus
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.
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
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.
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
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
Ausserdem solltest du bedenken, dass das empfangene Signal ja Frequenzmoduliert ist. Daher kommt ja auch die Abkürzung FM.
Vielen Dank für Deine Antworten Magnus, kannst Du mir noch eben kurz einen Tip geben was Du genau mit "ausmitteln" meinst. Danke
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.