Overview of FM tuner chips
Introduction
This page gives an overview of the various FM chips in current Rockbox targets and experimental Rockbox ports.
Philips/NXP TEA5700 family
This family of FM tuners is the most popular in rockbox targets.
TEA5760/TEA5761
Supported in rockbox by the tea5760uk.c driver.
These chips are used in:
TEA5767
Supported in rockbox by the tea5767.c driver.
These chips are used in:
- TEA5767: Coby, CreativeZenV, iAudio U3, MPIO HD200, MPIO HD300, iRiver E100, iRiver H10, iRiver H1xx, iRiver H3xx, iRiver IFP-7xx, OndaVX747, OndaVX767, Philips GoGear 3100 series, Philips GoGear HDD6330, Samsung K5, SamsungYH, Sansa C100, Sansa M200, Sansa M200v4, Zen Micro
- TEA5767HN: Archos Av300, GoGearHDD6330 (HDD1630 and HDD6330)
Sanyo LV24000 family
General features:
- bus interface is a proprietary 3-wire protocol
- tuning requires a multi-step algorithm with assistance of the host microcontroller
These chips are used in:
Silicon Laboratories Si4700 family
General features:
- few external components (basically an antenna and a crystal).
- bus interface is either a 2-wire I2C-like protocol, or a 3-wire proprietary protocol
- built-in firmware provides a high-level command interface (e.g. it can automatically seek forwards/backwards)
Some models of this chip provide RDS support (Si4701 and Si4703).
Si4700/Si4702
These chips are basic FM tuners, without RDS support. The Si4700 and Si4702 are supported by the rockbox si4700.c driver.
These chips are used in:
Si4701/Si4703
These chips provide the same functionality as the Si4700/Si4702 but with RDS support added.
These chips are used in:
RDA microelectronics RDA58xx family
Quite similar to the Si4700 chips (even the same I2C address), but with a different register map.
RDA5802
This chip is used in some Sansa Clip+ players.
Writes start at register 0x02, read start at register 0x0A (similar to si4700). The first 16 registers are shown below.
Reg |
Name |
D15 |
D14 |
D13 |
D12 |
D11 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
00 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02 |
POWERCFG |
|
DMUTE |
MONO |
|
|
|
|
|
|
|
|
|
|
|
|
ENABLE |
03 |
CHANNEL |
CHAN |
|
TUNE |
BAND |
SPACE |
04 |
SYSCONFIG1 |
|
|
|
|
DE |
MUTE? |
SMUTE |
|
|
|
|
|
|
|
|
|
05 |
SYSCONFIG2 |
|
|
|
|
|
|
|
|
|
|
|
|
VOLUME |
06 |
SYSCONFIG3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
07 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
08 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
09 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0A |
READCHAN |
|
STC |
|
|
|
|
READCHAN |
0B |
STATUSRSSI |
RSSI |
|
AFCRL |
|
|
|
|
|
|
|
|
0C |
IDENT |
ID1 = 0x58 |
|
|
|
|
|
|
|
|
|
0D |
|
ID2 = 0x00 or not |
|
|
|
|
|
|
|
|
|
0E |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Radio chip detection: Read 128 bytes from the chip, check if bytes[4] == 0x58. If this is the case, the chip has been detected. Now write 2 bytes (0x200) and wait a bit (10 ms), then check bytes[6] and compare against 0. If 0, write a set of 72 initialisation values, else write a set of 82 initialisation values.
- Mute radio: Set or clear the DMUTE bit, just like the si4700. Also set bits 9 and 10 of register 0x04 and the four lowest bits of register 5 (VOLUME).
- Force mono: Set or clear the MONO bit, just like the si4700.
- Set band: Write the 2-bit band code in BAND, similar to the si4700, but in a different location.The lowest bit of BAND indicates the start of the band as follows: 0 = 76 MHz, 1 = 87 MHz
- Power down: Write either 0 (powerdown) or 1 (powerup) to register 0x02. Set register bits 9 and 10 of register 0x04.
- Set soft-mute: On un-mute, clear bit 9 of register 0x04. On mute, set bits 9 and 10 of register 0x04.
- Set de-emphasis: Set or clear bit 11 of register 0x04, just like the si4700.
- Set channel spacing: Write the 2-bit channel space code in SPACE, similar to si4700, but in a different location.
- Set frequency: Calculate the channel code CHAN = (Fdesired - Flow) / 50 KHz, where Fdesired is the frequency to tune to and Flow is the lowest frequency in this band. Then write CHAN together with the TUNE bit set. Wait 70 ms, read 4 bytes status. Verify that READCHAN = CHAN and that STC is set, if so we're done, otherwise clear TUNE and try the whole procedure again up to 25 times.
- Read RSSI: Read 4 bytes from the radio chip. If AFCRL is set, assume 0, otherwise return RSSI bits.
Samsung S1A0903X01
Supported in rockbox by the s1a0903x01.c driver
Used in:
Niigata family
There is no driver yet for this family of FM tuners in rockbox.
General features:
These chips are used in:
STFM1000
See SigmatelSTFM1000.
Copyright © by the contributing authors.
|