FM receiver based on TEF6606T
I spent the day trying it out based on some older datasheet (v3) on the internet. The current
chips are V5, so I don't know what the differences are (and NXP haven't sent me a datasheet
even though I've asked twice).
Anyway, I think it is even easier than the traditional TDA7000. Just two coils are needed, and
no adjusting of the coils was necessary - it worked first time.
It uses I2C, I'll post code at some point (currently I've hard-coded it to tune to a particular
channel).
The ic is a bit too integrated, so it probably can't be modified for non-standard
frequencies, however as a conventional FM broadcast receiver it is ok. It does handle AM but I didn't
implement that (another couple of coils and a few capacitors).

sounds interesting, considering the TDA7000 is obsolete and practically impossible to get
I think I still have 2 or 3 in my parts supply
BUT I cant find a datasheet for the TEF6606T anywhere, did you finally find one. I noticed in another thread you were still looking ?
Dave
Hi Dave,
This was the only link that I found, here.
The link is for V3 of the ic however.
Below is the code I attempted on the v5 ic, and it worked (well, music blasted out of the earphones. I need to look for a volume register or implement a volume control)..
I've stuck the findings here.
I've not experimented much yet, and have not tried other registers either. I'm not interested in auto-scan etc, but when I get more time I might try to get it to a state where it can
be tuned with a rotary encoder, or a potentiometer connected to the ADC pin of the microcontroller - 8bits ADC should be _just_ enough to tune to .1MHz increments! .
I've just read a little more of the data sheet, and looks like it may tune SW freq too:

int main( void )
{
init();
LED_OFF;
delay_10ms(400);
LED_ON;
i2c_start();
i2c_write(0xc0); // write to the tuner's address
i2c_write(0x00); // mode and sub-addr: standard mode, sub-addr tuner0
// tuner0:
i2c_write(0x27); // tuner0: Europe FM, write high bits for freq 98.8MHz
i2c_stop();
i2c_start();
i2c_write(0xc0); // write to the tuner's address
i2c_write(0x21); // mode and sub-addr: preset mode, sub-addr tuner1
// tuner1:
i2c_write(0xb8); // tuner1: Write low bits for freq 98.8MHz
i2c_stop();
while(1)
{
//
};
return 0;
}
