N900 FM radio receiver
The N900 FM receiver allows the reception of broadcast FM radio signals using the headset/headphones as an antenna.
Contents |
[edit] 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.
[edit] Software
[edit] 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.
It is also exposed under sysfs.
/sys/class/i2c-adapter/i2c-3/3-0022# ls audio_route fm_rssi rds_data bus fm_search_mode_direction rds_pi dac_output fm_search_rssi_threshold rds_pi_mask driver fm_search_tune_mode rds_pi_match fm_af_frequency modalias rds_ps fm_best_tune_mode mute rds_rt fm_carrier_error name rds_wline fm_deemphasis power region fm_frequency power_state region_bottom_frequency fm_hi_lo_injection rds region_top_frequency fm_rds_flags rds_b_block_mask subsystem fm_rds_mask rds_b_block_match uevent
The sysfs interface allows configuration of region (which affects frequency ranges and other parameters).
[edit] User
There are 3 userspace application that uses the FM receiver:
FMRadio, QRadio and C FM Radio
- This page was last modified on 27 April 2011, at 21:14.
- This page has been accessed 34,421 times.