dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Search | Go
Wiki > Main > FmTunerHardware

Overview of FM tuner chips


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.


Supported in rockbox by the tea5760uk.c driver.

These chips are used in:


Supported in rockbox by the tea5767.c driver.

These chips are used in:

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).


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:


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.


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
02 POWERCFG   DMUTE MONO                         ENABLE
04 SYSCONFIG1         DE MUTE? SMUTE                  
05 SYSCONFIG2                         VOLUME
06 SYSCONFIG3                                
0B STATUSRSSI RSSI   AFCRL                
0C IDENT ID1 = 0x58                  
0D   ID2 = 0x00 or not                  

  • 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:
  • Archos FM recorder

Niigata family

There is no driver yet for this family of FM tuners in rockbox.

General features: These chips are used in:


See SigmatelSTFM1000.

r25 - 02 Apr 2021 - 20:46:06 - UnknownUser

Copyright © by the contributing authors.