release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Wiki > Main > FmTunerHardware (compare)

Difference: FmTunerHardware (r22 vs. r21)

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:

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. RDS is not yet supported by rockbox.

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:

  • 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:

STFM1000

There is no driver yet for this tuner in rockbox.

This tuner is controlled over I2C and appears to use a digital audio output (most other tuners output an analog stereo signal). It also supports RDS, but it appears that this requires a lot of attention from software to decode.

These chips are used in:

  • Creative Zen X-FI 2 and 3

r23 - 30 Oct 2014 - 11:19:13 - SzymonDziok

Revision r22 - 19 Mar 2012 - 21:49 - BertrikSikken
Revision r21 - 02 Nov 2010 - 18:23 - RobertMenes
Copyright by the contributing authors.