rda5807m - Driver for single-chip broadcast FM radio tuner RDA5807M¶
- group rda5807m
ESP-IDF driver for single-chip broadcast FM radio tuner RDA5807M.
Copyright (c) 2018 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Enums
-
enum rda5807m_clock_freq_t¶
Clock mode.
Values:
-
enumerator RDA5807M_CLK_32768HZ¶
32768 Hz, default
-
enumerator RDA5807M_CLK_12MHZ¶
12 MHz
-
enumerator RDA5807M_CLK_13MHZ¶
13 MHz
-
enumerator RDA5807M_CLK_19_2MHZ¶
19.2 MHz
-
enumerator RDA5807M_CLK_24MHZ¶
24 MHz
-
enumerator RDA5807M_CLK_26MHZ¶
26 MHz
-
enumerator RDA5807M_CLK_38_4MHZ¶
38.4 MHz
-
enumerator RDA5807M_CLK_32768HZ¶
-
enum rda5807m_channel_spacing_t¶
Channel spacing (frequency step)
Values:
-
enumerator RDA5807M_CHAN_SPACE_100¶
100 KHz, default
-
enumerator RDA5807M_CHAN_SPACE_200¶
200 KHz
-
enumerator RDA5807M_CHAN_SPACE_50¶
50 KHz
-
enumerator RDA5807M_CHAN_SPACE_25¶
25 KHz
-
enumerator RDA5807M_CHAN_SPACE_100¶
-
enum rda5807m_band_t¶
FM Band.
Values:
-
enumerator RDA5807M_BAND_87_108¶
87..108 MHz (US/Europe), default
-
enumerator RDA5807M_BAND_76_91¶
76..91 MHz (Japan)
-
enumerator RDA5807M_BAND_76_108¶
76..108 MHz (Worldwide)
-
enumerator RDA5807M_BAND_65_76¶
65..76 MHz (Eastern Europe)
-
enumerator RDA5807M_BAND_50_76¶
50..76 MHz (Eastern Europe wide)
-
enumerator RDA5807M_BAND_87_108¶
-
enum rda5807m_seek_status_t¶
Seek status.
Values:
-
enumerator RDA5807M_SEEK_NONE¶
There is currently no station seek.
-
enumerator RDA5807M_SEEK_STARTED¶
Seeking is in progress.
-
enumerator RDA5807M_SEEK_COMPLETE¶
Seeking is complete.
-
enumerator RDA5807M_SEEK_FAILED¶
Seeking is failed - no stations with RSSI > threshold found.
-
enumerator RDA5807M_SEEK_NONE¶
Functions
-
esp_err_t rda5807m_init_desc(rda5807m_t *dev, i2c_port_t port, gpio_num_t sda_gpio, gpio_num_t scl_gpio)¶
Initialize device descriptor.
- Parameters
dev – Device descriptor
port – I2C port
sda_gpio – SDA GPIO
scl_gpio – SCL GPIO
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_free_desc(rda5807m_t *dev)¶
Free device descriptor.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_init(rda5807m_t *dev, rda5807m_clock_freq_t clock_freq)¶
Initialize device.
- Parameters
dev – Device descriptor
clock_freq – RCLK frequency, usually
RDA5807M_CLK_32768HZ
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_state(rda5807m_t *dev, rda5807m_state_t *state)¶
Get current device status.
- Parameters
dev – Device descriptor
state – [out] Device status descriptor
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_volume(rda5807m_t *dev, uint8_t *vol)¶
Get volume level (DAC gain)
- Parameters
dev – Device descriptor
vol – [out] Volume level, 0..RDA5807M_VOL_MAX
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_volume(rda5807m_t *dev, uint8_t vol)¶
Set volume level (DAC gain)
Volume scale is logarithmic. When 0, device is muted and output impedance is very large.
- Parameters
dev – Device descriptor
vol – Volume level, 0..RDA5807M_VOL_MAX
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_mute(rda5807m_t *dev, bool *mute)¶
Get current mute state.
- Parameters
dev – Device descriptor
mute – [out] Mute state
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_mute(rda5807m_t *dev, bool mute)¶
Mute/unmute device.
- Parameters
dev – Device descriptor
mute – Mute if true
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_softmute(rda5807m_t *dev, bool *softmute)¶
Get current soft mute state.
- Parameters
dev – Device descriptor
softmute – [out] Soft mute state
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_softmute(rda5807m_t *dev, bool softmute)¶
Enable/disable soft mute.
- Parameters
dev – Device descriptor
softmute – If true, enable soft mute
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_bass_boost(rda5807m_t *dev, bool *bass_boost)¶
Get current state of the bass boost feature.
- Parameters
dev – Device descriptor
bass_boost – [out] Bass boost state
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_bass_boost(rda5807m_t *dev, bool bass_boost)¶
Enable/disable bass boost feature.
- Parameters
dev – Device descriptor
bass_boost – If true, enable bass boost
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_mono(rda5807m_t *dev, bool *mono)¶
Get forced mono state.
- Parameters
dev – Device descriptor
mono – [out] Forced mono state
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_mono(rda5807m_t *dev, bool mono)¶
Enable/disable forced mono.
- Parameters
dev – Device descriptor
mono – If true, audio will be in mono even if stereo is available
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_band(rda5807m_t *dev, rda5807m_band_t *band)¶
Get current band.
- Parameters
dev – Device descriptor
band – [out] Current band
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_band(rda5807m_t *dev, rda5807m_band_t band)¶
Switch device to band.
- Parameters
dev – Device descriptor
band – New band
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_channel_spacing(rda5807m_t *dev, rda5807m_channel_spacing_t *spacing)¶
Get current channel spacing (frequency step)
- Parameters
dev – Device descriptor
spacing – [out] Current channel spacing
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_channel_spacing(rda5807m_t *dev, rda5807m_channel_spacing_t spacing)¶
Set channel spacing (frequency step)
- Parameters
dev – Device descriptor
spacing – Channel spacing, usually
RDA5807M_CHAN_SPACE_100
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_frequency_khz(rda5807m_t *dev, uint32_t *frequency)¶
Get frequency the device is tuned to.
- Parameters
dev – Device descriptor
frequency – [out] Frequency, kHz
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_frequency_khz(rda5807m_t *dev, uint32_t frequency)¶
Tune device to a frequency.
- Parameters
dev – Device descriptor
frequency – Frequency, kHz
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_get_afc(rda5807m_t *dev, bool *afc)¶
Get current state of the automatic frequency control.
- Parameters
dev – Device descriptor
afc – [out] AFC state
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_set_afc(rda5807m_t *dev, bool afc)¶
Enable/disable automatic frequency control.
- Parameters
dev – Device descriptor
afc – AFC state
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_seek_start(rda5807m_t *dev, bool up, bool wrap, uint8_t threshold)¶
Start seeking stations.
- Parameters
dev – Device descriptor
up – Seeking direction: true - up, false - down
wrap – If true, wrap at the upper or lower band limit and continue seeking, else stop seeking at bounds
threshold – Seeking SNR threshold, 0..
RDA5807M_SEEK_TH_MAX
. Usually it’sRDA5807M_SEEK_TH_DEF
- Returns
ESP_OK
on success
-
esp_err_t rda5807m_seek_stop(rda5807m_t *dev)¶
Stop seeking stations.
- Parameters
dev – Device descriptor
- Returns
ESP_OK
on success
-
struct rda5807m_state_t¶
- #include <rda5807m.h>
Overall device status.
Public Members
-
rda5807m_seek_status_t seek_status¶
Seek status.
-
bool station¶
True if tuned to a station.
-
bool stereo¶
True if stereo is available.
-
bool rds_ready¶
True if RDS data is ready.
-
uint8_t rssi¶
RSSI, 0..RDA5807M_RSSI_MAX (logarithmic scale)
-
uint32_t frequency¶
Current frequency, kHz.
-
uint16_t rds[4]¶
RDS data.
-
rda5807m_seek_status_t seek_status¶
-
struct rda5807m_t¶
- #include <rda5807m.h>
Device descriptor.
Public Members
-
rda5807m_band_t band¶
Current band.
-
rda5807m_channel_spacing_t spacing¶
Current spacing.
-
rda5807m_band_t band¶
-
enum rda5807m_clock_freq_t¶