N900 FM radio receiver

(Kernel)
(Kernel)
Line 19: Line 19:
  v4l2-ctl --all -d /dev/radio1
  v4l2-ctl --all -d /dev/radio1
  Driver Info:
  Driver Info:
-
Driver name  : bcm2048
+
  Driver name  : bcm2048
-
Card type    : Broadcom bcm2048 FM Radio Recei
+
  Card type    : Broadcom bcm2048 FM Radio Recei
-
Bus info      : I2C: 0x22
+
  Bus info      : I2C: 0x22
-
Driver version: 1
+
  Driver version: 1
-
Capabilities  : 0x00050400
+
  Capabilities  : 0x00050400
-
Tuner
+
  Tuner
-
Radio
+
  Radio
-
Video input : 0
+
  Video input : 0
  Frequency: 1518400 (94.900000 MHz)
  Frequency: 1518400 (94.900000 MHz)
  Video Standard = 0x00000000
  Video Standard = 0x00000000
  Streaming Parameters Video Capture:
  Streaming Parameters Video Capture:
-
Frames per second: 25.000 (25/1)
+
  Frames per second: 25.000 (25/1)
-
Read buffers    : 0
+
  Read buffers    : 0
  Tuner:
  Tuner:
-
Name                : FM Receiver
+
  Name                : FM Receiver
-
Capabilities        : 62.5 Hz stereo  
+
  Capabilities        : 62.5 Hz stereo  
-
Frequency range      : 87.5 MHz - 108.0 MHz
+
  Frequency range      : 87.5 MHz - 108.0 MHz
-
Signal strength/AFC  : 0%/0
+
  Signal strength/AFC  : 0%/0
-
Current audio mode  : stereo
+
  Current audio mode  : stereo
-
Available subchannels: stereo  
+
  Available subchannels: stereo  
The module is only loaded when the radio is used.
The module is only loaded when the radio is used.

Revision as of 00:58, 3 August 2010

The N900 FM receiver allows the reception of broadcast FM radio signals using the headset/headphones as an antenna.

Contents

Hardware

The FM radio is part of the Bluetooth chip. It receives FM radio signals using the headset or earphones plugged into the 3.5 mm socket as an antenna (actually arbitrary headset/headphones, or any other cable, for this purpose).

The audio output of the FM radio is connected to the audio codec chip. This can be routed directly to the headphones - but possibly not the speaker due to concerns about speaker damage due to the speakers not being able to handle bass.

The existing software that uses the radio passes the audio through the CPU, implementing a software filter for speaker protection when the speakers are enabled.

Software

Kernel

The FM receiver is implemented as a video4linux radio device by the bcm2048 module. This controls the receiver over the N900 Hardware Bus I2C.

It appears as device /dev/radio1.

v4l2-ctl --all -d /dev/radio1
Driver Info:
 Driver name   : bcm2048
 Card type     : Broadcom bcm2048 FM Radio Recei
 Bus info      : I2C: 0x22
 Driver version: 1
 Capabilities  : 0x00050400
  Tuner
  Radio
 Video input : 0
Frequency: 1518400 (94.900000 MHz)
Video Standard = 0x00000000
Streaming Parameters Video Capture:
 Frames per second: 25.000 (25/1)
 Read buffers     : 0
Tuner:
 Name                 : FM Receiver
 Capabilities         : 62.5 Hz stereo 
 Frequency range      : 87.5 MHz - 108.0 MHz
 Signal strength/AFC  : 0%/0
 Current audio mode   : stereo
 Available subchannels: stereo 

The module is only loaded when the radio is used.

User

The only (?) userspace application that uses the FM receiver is FMRadio.