TEA5767 (+ ATmega8) FM radio
TEA5767 modules make it pretty easy to assemble own FM radio. These modules are popular, pretty cheap ($14 for 10 pcs on ebay), small (~10x10 mm PCB) and easy to interface (I2C and SPI available, can use 3.3V or 5V power supply).
This experimental circuit/code was inspired by http://as.elte-s.com/zrob/radio_tea5767.htm, DIY radio with 89S8253 microcontroller in beautiful wooden housing. I didn't get my hands on similar speaker and didn't decide how controls should look like yet, so this project is not finished.
Module I've used was scavenged from damaged (broken display) 1 GB Philips SA3113/02 mp3 player
bought in bulk. Hard to believe, but it was difficult to desolder (contacts could snap off when using force),
I've tried bending and solder wick first and ended up with hot air applied from back side.
Module has following markings on bottom side:
FXO-55D M230-55D DS206
I couldn't find any documentation for this module, so connectors were identified with help of TEA5767 datasheet. Top side (5 pins) from left to right:
1. antenna 2. Vdd 3. GND 4. VAFL (audio out, left) 5. VAFR (audio out, right)
Bottom side (7 pins, from right to left, clockwise):
6. SWPORT1 (may be not connected) 7. BUSENABLE (for I2C connect to VDD) 8. BUSMODE (for I2C connect to GDN) 9. WRITE/READ (for I2C connect to GND) 10.CLOCK (connect to PC5, SCL of ATmega8 with 3k9 pull-up) 11.DATA (connect to PC4, SDA of ATmega8 with 3k9 pull-up) 12.GND (photo: visible connection to ground plane)
It seems that there are TEA5767 clones on the market. I've found one inside
"generic" (MPF1870?) mp3 player with ATJ2097 SoC.
After quick look into datasheet (only Chinese version available?) SP3767HN seems fully
compatible with TEA5767.
This module seems to be replaceable with popular on ebay PL102 or V102. They have 10 pins instead of 12 from Philips and these pins are wider spaced.
Similar modules can be also scavenged from S1 MP3 players (marked with [K], see S1MP3 HW spec).
More mp3 disassembly photos and disassembly at anythingbutipod.com.
Spreadsheet helping calculating PLL divider for low-side and high-side injection modes: TEA5767_PLL_div.ods
TEA5767 audio outputs are not intended to drive headphones directly. For test purposes (with reduced loudness and some distortions) headphones can be connected with decoupling capacitor and resistor (560 Ohm or more) in series.
Audio amplifier
TDA7052A seems a good choice for a audio amplifier. While LM386 is cheaper and easier to get, TDA7052A ("A" in symbol is important) allows gain control with voltage. After connecting control input with PWM output of the microcontroller software volume control can be implemented and further i.e. remote control.
After test with Tonsil ZG5S speaker (old 5W, 8ohm speaker from car radio set) maximum gain control voltage was set to ~1V (R1+R2 divider) which results in 20dB gain.
Source code, WinAVR-20090313
- 2012.05.21 mega8_TEA5767_20120521.zip, initial version, user interface reduced to tune up/down but lot of debug information on UART 9600 bps
- 2012.09.16 mega8_TEA5767_20120916.zip, added volume control for TDA7052A amplifier via PWM output and storing settings (frequency, volume) to EEPROM