Hallo,
ich habe den Radio/TV-Tuner FM1216ME aus einer alten PCI-Karte
ausgelötet. Der Tuner kann Radio sowie TV Empfangen und wird über den
i2c-Bus angesprochen. Ich will den Tuner als Radio verwenden und mit
einem Atmega16 ansteuern.
Die Verbingung per i2c klappt, ich kann senden und auch das Statusbyte
auslesen, leider bekomme ich aber keinen Ton aus den Tuner.
Vielleicht hat jemand Erfahrung mit der Ansteuerung des Tuners.
Danke
Hallo,
das Datenblatt habe ich auch, habe mit das ganze vergangene Wochenende
damit beschäftigt. Nach einigen Stunden hat auch die Kommunikation über
dem I2C-Bus geklappt, nur leider bekomme ich keinen Ton aus dem Tuner,
nicht einmal Rauschen. Ich habe den Tuner wie folgt angeschlossen.
Pin:
3 (+5V) - 5 Volt
4 (SCL) - SCL ATmega (über 4,7 KOhm Pull-Up)
5 (SDA) - SDA ATmega (über 4,7 KOhm Pull-Up)
6 (AS ) - GND (Address Select)
9 (AF-R) - geht an den Eingang eines NF-Verstärkers
13 (VCC) - 5 Volt
und GND ligen am Gehäuse an.
Sven
Die genaue Bezeichnung des Tuners ist sehr wichtig denn bei der
Programmierung gibt es einige Unterschiede. Guck mal auf den Sticker,
meist ist das Original vom Kartenhersteller überklebt. Ein Foto wäre
hilfreich.
Ich glaube nicht das es ein MK3 Tuner ist so wie Stephan's Link
suggeriert. Die verwenden fast alle einen externen TEA576x Chip für FM
Radio. (Wenn doch, hast Du einiges zu tun: der IF-Demod TDA9887 möchte
auch noch initialisiert werden).
Weil Du erwähnt hast, das der Tuner aus einer älteren Karte stammt,
denke ich eher an den FM1216MK2.
Ist aber nur eine Vermutung.
Torsten
Die genaue Bezeichnung ist FM1216ME/I - das steht auf dem Aufkleber des
Herstellers. Kannst Du mir einen Tip zum TDA9887 geben, wie steuere ich
dem an, das ist im Datenblatt etwas unübersichtlich beschrieben.
Danke
Ok, also doch mit dem TDA9887. Dann ist Stephan's Datenblatt
goldrichtig.
> ..wie steuere ich dem an..
Ab Seite 15 gehts los ;)
Beachten mußt Du, das der Chip eine eigene I2C-Adresse hat (0x86). Dann
die Werte wie in der Tabelle auf Seite 16 (FM Modes) beschrieben via I2C
schreiben. Ärgerlich ist, das man die Register nicht wieder auslesen
kann, alles read-only.
Wenn Du Dich etwas in C auskennst hilft das vielleicht:
http://linuxtv.org/hg/v4l-dvb/file/dff42ce32609/linux/drivers/media/video/tda9887.c
Trotzdem meine ich das im Tunergehäuse ganz versteckt noch ein dritter
Chip sitzt der FM-Stereo dekodiert. Denn der TDA9887 ist nur für den
ZF-Teil und Mono-(TV)Ton verantwortlich. Verdächtige Typen sind TEA57xx.
Da hilft nur aufmachen und nachgucken.
Kleine Anmerkung: der Tuner zieht ordentlich Strom, ~200mA. Für Video
ist das in Ordnung weil das HF-Zeug ganz schön aufwendig ist. Aber nur
zum Radio hören, hmm. Mit Batterien kann man den Tuner nicht versorgen.
Danke für die Tips, habe den Tuner gestern noch zum laufen bekommen und
heute ein LCD-Display und ein paar Tasten angeklemmt - jetzt kann ich
Sender über die Taster auswählen.
Das mit dem Stero habe ich nicht ganz verstanden, ich nehme doch an das
aus dem Tuner FM-Stereo kommt, immerhin sind ja die anschlüsse AF-L und
AF-R vorhaden und FM-Steri lässt sich doch auch definieren, dann sollte
doch auch Sterro aus dem Tuner kommen - oder nicht ?
Habe mich ein wenig in die Abkürzungen eingelesen und habe so auch ein
wenig Übersicht über die Funktionsweise bekomen. Meine Frage ist nur wie
ich einen Sendersuchlauf programmieren kann, wie kann ich feststellen ob
auch der definieren Frequenz ein Sender ist oder nicht. Im Datenblatt
des TDA9887 ist Bit D5 als Carrier Detect definiert, beim FM1216ME kann
man aber kein Carrier Detect auslesen, hägt die Sache mit dem Flag-Bit
zusammen.
Danke
> Das mit dem Stero habe ich nicht ganz verstanden, ich nehme doch an das> aus dem Tuner FM-Stereo kommt, immerhin sind ja die anschlüsse AF-L und> AF-R vorhaden und FM-Steri lässt sich doch auch definieren, dann sollte> doch auch Sterro aus dem Tuner kommen - oder nicht ?
Diese Frage kannst Du nur selbst beantworten. Probier' es doch einfach
mal aus (Zweifel...).
Ich habe jetzt einige Tage mit der Programmierung des FM1216ME
verbracht, und der Tuner läuft wie gewünscht - ich kann die Frequenz
mittels Taster anwählen. Angesteuert wird der Tuner mit einem ATmega16
und soll nur zum Radiohören benutzt werden.
Allerdings ist es mir bis jetzt nicht gelungen einen Sendersuchlauf zu
Programmieren, denn ich habe folgendes Problem: Wie kann ich feststellen
ob auf der seleketierten Frequenz ein Sender ist und ob der Gelauf auf
enben jener Frequenz ist. Beispiel: Auf 101,0 MHz ist ein Sender, diesen
Sender kann man aber auch Empfangen wenn die Frequenz auf 100,9 Mhz oder
101,1 MHz eingestellt ist. Wie kann ich feststellen das die
Sendefrequenz 101,0 MHz ist ?
Danke für einen Tip ...