PU2CLR RDA5807 Arduino Library 1.0.1 Arduino Library for RDA5807 Devices - By Ricardo Lima Caratti

Data Structures
Union, Structure and Defined Data Types

rda Defined Data Types More...

## Data Structures
union | rda_reg00
| Register 0x00. More...
struct | rda_reg00.refined
union | rda_reg01
| Register 0x01 - Dummy. More...
struct | rda_reg01.refined
union | rda_reg02
| Register 0x02 - Basic setup: RESET configuration;. More...
struct | rda_reg02.refined
union | rda_reg03
| Register 0x03. More...
struct | rda_reg03.refined
union | rda_reg04
| Register 0x04. More...
struct | rda_reg04.refined
union | rda_reg05
| Register 0x05. More...
struct | rda_reg05.refined
union | rda_reg06
| Register 0x06. More...
struct | rda_reg06.refined
union | rda_reg07
| Register 0x07. More...
struct | rda_reg07.refined
union | rda_reg08
| Register 0x08 - Direct Frequency. More...
struct | rda_reg08.refined
union | rda_reg0a
| Register 0x0A - Device current status. More...
struct | rda_reg0a.refined
union | rda_reg0b
| Register 0x0B. More...
struct | rda_reg0b.refined
union | rda_reg0c
| Register 0x0C. More...
struct | rda_reg0c.refined
union | rda_reg0d
| Register 0x0D. More...
struct | rda_reg0d.refined
union | rda_reg0e
| Register 0x0E. More...
struct | rda_reg0e.refined
union | rda_reg0f
| Register 0x0F. More...
struct | rda_reg0f.refined
union | rds_blockb
| RDS Block B data type. More...
struct | rds_blockb.group0
struct | rds_blockb.group2
struct | rds_blockb.refined
union | rds_date_time
struct | rds_date_time.refined
union | word16_to_bytes
| Converts 16 bits word to two bytes. More...
struct | word16_to_bytes.refined
class | RDA5807
| KT0915 Class. More...

## Detailed Description

rda Defined Data Types

Defined Data Types is a way to represent the rda registers information

The information shown here was extracted from Datasheet:

rda stereo FM digital tuning radio documentation.

## Data Structure Documentation

## ◆ rda_reg00

union rda_reg00

Register 0x00.

Data Fields
struct rda_reg00 | refined |
uint16_t | raw |

## ◆ rda_reg00.refined

struct rda_reg00.refined

Data Fields
uint8_t | CHIPID: 8 | Chip ifdef.
uint8_t | DUMMY: 8 |

## ◆ rda_reg01

union rda_reg01

Register 0x01 - Dummy.

It is not documented by the RDA.

Data Fields
struct rda_reg01 | refined |
uint16_t | raw |

## ◆ rda_reg01.refined

struct rda_reg01.refined

Data Fields
uint8_t | lowByte |
uint8_t | highByte |

## ◆ rda_reg02

union rda_reg02

Register 0x02 - Basic setup: RESET configuration;.

Clock type configuration; seek operation; Sterio/Mono; Bass; and Audio configuration

The RDA5807M is RESET itself when power up. You also can use soft reset by triggering SOFT_RESET bit to 1.

Seek begins in the direction specified by SEEKUP and ends when a channel is found, or the entire band has been searched.

The SEEK bit is set low and the STC bit is set high when the seek operation completes.

RCLK NON-CALIBRATE MODE. if 0=RCLK clock is always supply; if 1=RCLK clock is not always supply when FM work ( when 1, RDA5807M can’t directly support -20 °C ~70 °C temperature.

Only suppory ±20°C temperature swing from tune point).

Clock CLK_MODE table

Value | Clock
--- | ---
000 | 32.768kHz
001 | 12Mhz
101 | 24Mhz
010 | 13Mhz
110 | 26Mhz
011 | 19.2Mhz
111 | 38.4Mhz

Data Fields
struct rda_reg02 | refined |
uint16_t | raw |

## ◆ rda_reg02.refined

struct rda_reg02.refined

Data Fields
uint8_t | ENABLE: 1 | Power Up Enable; 0 = Disabled; 1 = Enabled.
uint8_t | SOFT_RESET: 1 | Soft reset; If 0, not reset; If 1, reset.
uint8_t | NEW_METHOD: 1 | New Demodulate Method Enable, can improve 0 the receive sensitivity about 1dB.
uint8_t | RDS_EN: 1 | RDS/RBDS enable; If 1, rds/rbds enable.
uint8_t | CLK_MODE: 3 | See table above.
uint8_t | SKMODE: 1 | Seek Mode; 0 = wrap at the upper or lower band limit and continue seeking; 1 = stop seeking at the upper or lower band limit.
uint8_t | SEEK: 1 | Seek; 0 = Disable stop seek; 1 = Enable;.
uint8_t | SEEKUP: 1 | Seek Up; 0 = Seek down; 1 = Seek up.
uint8_t | RCLK_DIRECT_IN: 1 | RCLK clock use the directly input mode. 1 = enable.
uint8_t | NON_CALIBRATE: 1 | 0=RCLK clock is always supply; 1=RCLK clock is not always supply when FM work
uint8_t | BASS: 1 | Bass Boost; 0 = Disabled; 1 = Bass boost enabled.
uint8_t | MONO: 1 | Mono Select; 0 = Stereo; 1 = Force mono.
uint8_t | DMUTE: 1 | Mute Disable; 0 = Mute; 1 = Normal operation.
uint8_t | DHIZ: 1 | Audio Output High-Z Disable; 0 = High impedance; 1 = Normal operation.

## ◆ rda_reg03

union rda_reg03

Register 0x03.

Receiver configuratio

The tune operation begins when the TUNE bit is set high. The STC bit is set high when the tune operation completes.

The tune bit is reset to low automatically when the tune operation completes

Channel space table

Value | Description
--- | ---
00 | 100KHz
01 | 200KHz
10 | 50KHz
11 | 25KHz

FM band table

Value | Description
--- | ---
00 | 87–108 MHz (US/Europe)
01 | 76–91 MHz (Japan)
10 | 76–108 MHz (world wide)
11 | 65 –76 MHz (East Europe) or 50-65MHz (see bit 9 of gegister 0x06)

Channel select table

BAND | Description
--- | ---
0 | Frequency = Channel Spacing (kHz) x CHAN+ 87.0 MHz
1 or 2 | Frequency = Channel Spacing (kHz) x CHAN + 76.0 MHz
3 | Frequency = Channel Spacing (kHz) x CHAN + 65.0 MHz

IMPORTANT: CHAN is updated after a seek operation.

Data Fields
struct rda_reg03 | refined |
uint16_t | raw |

## ◆ rda_reg03.refined

struct rda_reg03.refined

Data Fields
uint16_t | SPACE: 2 | See Channel space table above.
uint16_t | BAND: 2 | Seet band table above.
uint16_t | TUNE: 1 | Tune; 0 = Disable; 1 = Enable.
uint16_t | DIRECT_MODE: 1 | Directly Control Mode, Only used when test.
uint16_t | CHAN: 10 | Channel Select.

## ◆ rda_reg04

union rda_reg04

Register 0x04.

Receiver properties

Volume scale is logarithmic When 0000, output mute and output impedance is very large

Setting STCIEN = 1 will generate a low pulse on GPIO2 when the interrupt occurs.

Data Fields
struct rda_reg04 | refined |
uint16_t | raw |

## ◆ rda_reg04.refined

struct rda_reg04.refined

Data Fields
uint8_t | GPIO1: 2 | General Purpose I/O 1. when gpio_sel=01; 00 = High impedance; 01 = Reserved; 10 = Low; 11 = High.
uint8_t | GPIO2: 2 | General Purpose I/O 2. when gpio_sel=01; 00 = High impedance; 01 = Reserved; 10 = Low; 11 = High.
uint8_t | GPIO3: 2 | General Purpose I/O 1. when gpio_sel=01; 00 = High impedance; 01 = Mono/Stereo indicator (ST); 10 = Low; 11 = High.
uint8_t | I2S_ENABLE: 1 | I2S enable; 0 = disabled; 1 = enabled.
uint8_t | RSVD1: 1 |
uint8_t | AFCD: 1 | AFC disable; If 0, afc work; If 1, afc disabled.
uint8_t | SOFTMUTE_EN: 1 | If 1, softmute enable.
uint8_t | RDS_FIFO_CLR: 1 | 1 = clear RDS fifo
uint8_t | DE: 1 | De-emphasis; 0 = 75 μs; 1 = 50 μs.
uint8_t | RDS_FIFO_EN: 1 | 1 = RDS fifo mode enable.
uint8_t | RBDS: 1 | 1 = RBDS mode enable; 0 = RDS mode only
uint8_t | STCIEN: 1 | Seek/Tune Complete Interrupt Enable; 0 = Disable Interrupt; 1 = Enable Interrupt;.
uint8_t | RSVD2: 1 |

## ◆ rda_reg05

union rda_reg05

Register 0x05.

Data Fields
struct rda_reg05 | refined |
uint16_t | raw |

## ◆ rda_reg05.refined

struct rda_reg05.refined

Data Fields
uint8_t | VOLUME: 4 | DAC Gain Control Bits (Volume); 0000 = min volume; 1111 = max volume.
uint8_t | LNA_ICSEL_BIT: 2 | Lna working current bit: 00=1.8mA; 01=2.1mA; 10=2.5mA; 11=3.0mA.
uint8_t | LNA_PORT_SEL: 2 | LNA input port selection bit: 00: no input; 01: LNAN; 10: LNAP; 11: dual port input.
uint8_t | SEEKTH: 4 | Seek SNR Threshold value.
uint8_t | RSVD2: 1 |
uint8_t | SEEK_MODE: 2 | Default value is 00; When = 10, will add the RSSI seek mode.
uint8_t | INT_MODE: 1 | If 0, generate 5ms interrupt; If 1, interrupt last until read reg0CH action occurs.

## ◆ rda_reg06

union rda_reg06

Register 0x06.

I2S_SW_CNT values table

Value | Description
--- | ---
0b1000 | WS_STEP_48
0b0111 | WS_STEP=44.1kbps
0b0110 | WS_STEP=32kbps
0b0101 | WS_STEP=24kbps
0b0100 | WS_STEP=22.05kbps
0b0011 | WS_STEP=16kbps
0b0010 | WS_STEP=12kbps
0b0001 | WS_STEP=11.025kbps
0b0000 | WS_STEP=8kbps

Data Fields
struct rda_reg06 | refined |
uint16_t | raw |

## ◆ rda_reg06.refined

struct rda_reg06.refined

Data Fields
uint8_t | R_DELY: 1 | If 1, R channel data delay 1T.
uint8_t | L_DELY: 1 | If 1, L channel data delay 1T.
uint8_t | SCLK_O_EDGE: 1 | If 1, invert sclk output when as master.
uint8_t | SW_O_EDGE: 1 | If 1, invert ws output when as master.
uint8_t | I2S_SW_CNT: 4 | Only valid in master mode. See table above.
uint8_t | WS_I_EDGE: 1 | If 0, use normal ws internally; If 1, inverte ws internally.
uint8_t | DATA_SIGNED: 1 | If 0, I2S output unsigned 16-bit audio data. If 1, I2S output signed 16-bit audio data.
uint8_t | SCLK_I_EDGE: 1 | If 0, use normal sclk internally;If 1, inverte sclk internally.
uint8_t | WS_LR: 1 | Ws relation to l/r channel; If 0, ws=0 ->r, ws=1 ->l; If 1, ws=0 ->l, ws=1 ->r.
uint8_t | SLAVE_MASTER: 1 | I2S slave or master; 1 = slave; 0 = master.
uint8_t | OPEN_MODE: 2 | Open reserved register mode; 11=open behind registers writing function others: only open behind registers reading function.
uint8_t | RSVD: 1 |

## ◆ rda_reg07

union rda_reg07

Register 0x07.

Data Fields
struct rda_reg07 | refined |
uint16_t | raw |

## ◆ rda_reg07.refined

struct rda_reg07.refined

Data Fields
uint8_t | FREQ_MODE: 1 | If 1, then freq setting changed. Freq = 76000(or 87000) kHz + freq_direct (08H) kHz.
uint8_t | SOFTBLEND_EN: 1 | If 1, Softblend enable.
uint8_t | SEEK_TH_OLD: 6 | Seek threshold for old seek mode, Valid when Seek_Mode=001.
uint8_t | RSVD1: 1 |
uint8_t | MODE_50_60: 1 | 1 = 65~76 MHz; 0 = 50~76MHz
uint8_t | TH_SOFRBLEND: 5 | Threshold for noise soft blend setting, unit 2dB (default 0b10000).
uint8_t | RSVD2: 1 |

## ◆ rda_reg08

union rda_reg08

Register 0x08 - Direct Frequency.

Valid when freq_mode = 1

Freq = 7600(or 8700) kHz + freq_direct (08H) kHz.

Value to be stores is frequency - 7600 or 8700

Data Fields
struct rda_reg08 | refined |
uint16_t | raw |

## ◆ rda_reg08.refined

struct rda_reg08.refined

Data Fields
uint8_t | lowByte |
uint8_t | highByte |

## ◆ rda_reg0a

union rda_reg0a

Register 0x0A - Device current status.

The seek fail flag (SF) is set when the seek operation fails to find a channel with an RSSI level greater than SEEKTH[5:0].

The seek/tune complete (STC) flag is set when the seek or tune operation completes.

Channel table

BAND | Description
--- | ---
0 | Frequency = Channel Spacing (kHz) x CHAN+ 87.0 MHz
1 or 2 | Frequency = Channel Spacing (kHz) x CHAN + 76.0 MHz
3 | Frequency = Channel Spacing (kHz) x CHAN + 65.0 MHz

Data Fields
struct rda_reg0a | refined |
uint16_t | raw |

## ◆ rda_reg0a.refined

struct rda_reg0a.refined

Data Fields
uint16_t | READCHAN: 10 | See Channel table . See table above.
uint16_t | ST: 1 | Stereo Indicator; 0 = Mono; 1 = Stereo.
uint16_t | BLK_E: 1 | When RDS enable: 1 = Block E has been found; 0 = no Block E has been found.
uint16_t | RDSS: 1 | RDS Synchronization; 0 = RDS decoder not synchronized(default); 1 = RDS decoder synchronized; Available only in RDS Verbose mode.
uint16_t | SF: 1 | Seek Fail. 0 = Seek successful; 1 = Seek failure;.
uint16_t | STC: 1 | Seek/Tune Complete. 0 = Not complete; 1 = Complete;.
uint16_t | RDSR: 1 | RDS ready; 0 = No RDS/RBDS group ready(default); 1 = New RDS/RBDS group ready.

## ◆ rda_reg0b

union rda_reg0b

Register 0x0B.

Current RDS and device status

Errors Level table (Block Errors Level of RDS_DATA_0 and RDS_DATA_1. Always read as Errors Level of RDS BLOCKs A and B (in RDS mode ) or E (in RBDS mode when ABCD_E flag is 1).

Value | Description
--- | ---
00 | 0 errors requiring correction
01 | 1~2 errors requiring correction
10 | 3~5 errors requiring correction
10 | 6+ errors or error in checkword, correction not possible

Data Fields
struct rda_reg0b | refined |
uint16_t | raw |

## ◆ rda_reg0b.refined

struct rda_reg0b.refined

Data Fields
uint8_t | BLERB: 2 | Block Errors Level of RDS_DATA_1.
uint8_t | BLERA: 2 | Block Errors Level of RDS_DATA_0.
uint8_t | ABCD_E: 1 | 1 = the block id of register 0cH,0dH,0eH,0fH is E; 0 = the block id of register 0cH, 0dH, 0eH,0fH is A, B, C, D
uint8_t | RSVD1: 2 |
uint8_t | FM_READY: 1 | 1=ready; 0=not ready.
uint8_t | FM_TRUE: 1 | 1 = the current channel is a station; 0 = the current channel is not a station.
uint8_t | RSSI: 7 | RSSI; 000000 = min; 111111 = max; RSSI scale is logarithmic.

## ◆ rda_reg0c

union rda_reg0c

Register 0x0C.

BLOCK A ( in RDS mode) or BLOCK E (in RBDS mode when ABCD_E flag is 1)

Data Fields
struct rda_reg0c | refined |
uint16_t | RDSA | BLOCK A ( in RDS mode) or BLOCK E (in RBDS mode when ABCD_E flag is 1)

## ◆ rda_reg0c.refined

struct rda_reg0c.refined

Data Fields
uint8_t | lowByte |
uint8_t | highByte |

## ◆ rda_reg0d

union rda_reg0d

Register 0x0D.

BLOCK B ( in RDS mode) or BLOCK E (in RBDS mode when ABCD_E flag is 1)

Data Fields
struct rda_reg0d | refined |
uint16_t | RDSB |

## ◆ rda_reg0d.refined

struct rda_reg0d.refined

Data Fields
uint8_t | lowByte |
uint8_t | highByte |

## ◆ rda_reg0e

union rda_reg0e

Register 0x0E.

BLOCK C ( in RDS mode) or BLOCK E (in RBDS mode when ABCD_E flag is 1)

Data Fields
struct rda_reg0e | refined |
uint16_t | RDSC |

## ◆ rda_reg0e.refined

struct rda_reg0e.refined

Data Fields
uint8_t | lowByte |
uint8_t | highByte |

## ◆ rda_reg0f

union rda_reg0f

Register 0x0F.

BLOCK D ( in RDS mode) or BLOCK E (in RBDS mode when ABCD_E flag is 1)

Data Fields
struct rda_reg0f | refined |
uint16_t | RDSD |

## ◆ rda_reg0f.refined

struct rda_reg0f.refined

Data Fields
uint8_t | lowByte |
uint8_t | highByte |

## ◆ rds_blockb

union rds_blockb

RDS Block B data type.

For GCC on System-V ABI on 386-compatible (32-bit processors), the following stands:

1) Bit-fields are allocated from right to left (least to most significant). 2) A bit-field must entirely reside in a storage unit appropriate for its declared type. Thus a bit-field never crosses its unit boundary. 3) Bit-fields may share a storage unit with other struct/union members, including members that are not bit-fields. Of course, struct members occupy different parts of the storage unit. 4) Unnamed bit-fields' types do not affect the alignment of a structure or union, although individual bit-fields' member offsets obey the alignment constraints.

See also
  also https://en.wikipedia.org/wiki/Radio_Data_System

Data Fields
struct rds_blockb | group0 |
struct rds_blockb | group2 |
struct rds_blockb | refined |
uint16_t | blockB |

## ◆ rds_blockb.group0

struct rds_blockb.group0

Data Fields
uint8_t | address: 2 |
uint8_t | DI: 1 |
uint8_t | MS: 1 |
uint8_t | TA: 1 |
uint8_t | programType: 5 |
uint8_t | trafficProgramCode: 1 |
uint8_t | versionCode: 1 |
uint8_t | groupType: 4 |

## ◆ rds_blockb.group2

struct rds_blockb.group2

Data Fields
uint8_t | address: 4 |
uint8_t | textABFlag: 1 |
uint8_t | programType: 5 |
uint8_t | trafficProgramCode: 1 |
uint8_t | versionCode: 1 |
uint8_t | groupType: 4 |

## ◆ rds_blockb.refined

struct rds_blockb.refined

Data Fields
uint8_t | content: 4 |
uint8_t | textABFlag: 1 |
uint8_t | programType: 5 |
uint8_t | trafficProgramCode: 1 |
uint8_t | versionCode: 1 |
uint8_t | groupType: 4 |

## ◆ rds_date_time

union rds_date_time

Group RDS type 4A ( RDS Date and Time) When group type 4A is used by the station, it shall be transmitted every minute according to EN 50067. This Structure uses blocks 2,3 and 5 (B,C,D)

ATTENTION: To make it compatible with 8, 16 and 32 bits platforms and avoid Crosses boundary, it was necessary to split minute and hour representation.

Data Fields
struct rds_date_time | refined |
uint8_t | raw[6] |

## ◆ rds_date_time.refined

struct rds_date_time.refined

Data Fields
uint8_t | offset: 5 |
uint8_t | offset_sense: 1 |
uint8_t | minute1: 2 |
uint8_t | minute2: 4 |
uint8_t | hour1: 4 |
uint8_t | hour2: 1 |
uint32_t | mjd: 17 |

## ◆ word16_to_bytes

union word16_to_bytes

Converts 16 bits word to two bytes.

Data Fields
struct word16_to_bytes | refined |
uint16_t | raw |

## ◆ word16_to_bytes.refined

struct word16_to_bytes.refined

Data Fields
uint8_t | lowByte |
uint8_t | highByte |

## ◆ RDA5807

class RDA5807

KT0915 Class.

This class implements all functions that will help you to control the KT0915 devices.

Author
  PU2CLR - Ricardo Lima Caratti

### Public Member Functions
void | setDelayAfterCrystalOn (uint8_t ms_value)
| Set the Delay After Crystal On (default 500ms) More...
void | setI2CBusAddrs (int directAccess, int fullAccess)
| Sets alternatives I2C bus address. More...
void | getStatusRegisters ()
| Gets all current device status and RDS information registers (From 0x0A to 0x0F) More...
void * | getStatus (uint8_t reg)
| Gets the register content of a given status register (from 0x0A to 0x0F) More...
void | setRegister (uint8_t reg, uint16_t value)
| Sets a given value to a specific device register. More...
void | setGpio (uint8_t gpioPin, uint8_t gpioSetup=0, int mcuPin=-1)
| Set the Device GPIO pins. More...
void | waitAndFinishTune ()
| Waits for Seek or Tune finish. More...
void | softReset ()
| Resets the device. More...
void | powerUp ()
| Powers the receiver on. More...
void | powerDown ()
| Power the receiver off. More...
void | setup (uint8_t clock_type=CLOCK_32K, uint8_t oscillator_type=OSCILLATOR_TYPE_CRYSTAL)
| Starts the device. More...
void | setFrequency (uint16_t frequency)
| Sets the frequency. More...
uint16_t | getFrequency ()
| Gets the current frequency. More...
void | setFrequencyUp ()
| Increments the current frequency. More...
void | setFrequencyDown ()
| Decrements the current frequency. More...
uint16_t | getRealFrequency ()
| Gets the current frequency bases on the current channel. More...
uint16_t | getRealChannel ()
| Gets the current channel stored in 0x0A status register. More...
void | setChannel (uint16_t channel)
| Sets the channel. More...
void | seek (uint8_t seek_mode, uint8_t direction)
| Seek function. More...
void | seek (uint8_t seek_mode, uint8_t direction, void(*showFunc)())
| Seek function. More...
void | setSeekThreshold (uint8_t value)
| Sets RSSI Seek Threshold. More...
void | setBand (uint8_t band=1)
| Sets the FM band. See table below. More...
void | setSpace (uint8_t space=0)
| Sets the FM channel space. More...
int | getRssi ()
| Gets the current Rssi. More...
void | setSoftmute (bool value)
| Sets Soft Mute Enable or disable. More...
void | setMono (bool value)
| Sets audio Mono or stereo. More...
void | setBass (bool value)
| Sets Bass Boost. More...
bool | isStereo ()
| Gets the current Stereo status. More...
uint8_t | getDeviceId ()
| Gets the Device identification. More...
void | setMute (bool value)
| Sets Audio mute or unmute. More...
void | setVolume (uint8_t value)
| Sets the audio volume level. More...
uint8_t | getVolume ()
| Gets the current audio volume level. More...
void | setVolumeUp ()
| Increments the audio volume. More...
void | setVolumeDown ()
| Decrements the audio volume. More...
void | setFmDeemphasis (uint8_t de)
| Sets De-emphasis. More...
void | setRDS (bool value)
| Sets the RDS operation. More...
void | setRBDS (bool value)
| Sets the RBDS operation. More...
void | setRdsFifo (bool value)
| Sets RDS fifo mode enable. More...
void | clearRdsFifo ()
| Clear RDS fifo. More...
bool | getRdsReady ()
| Returns true if RDS Ready. More...
uint8_t | getRdsFlagAB (void)
| Returns the current Text Flag A/B More...
uint8_t | getRdsVersionCode (void)
| Gets the version code (extracted from the Block B) More...
uint16_t | getRdsGroupType ()
| Return the group type. More...
uint8_t | getRdsProgramType (void)
| Returns the Program Type (extracted from the Block B) More...
void | getNext2Block (char *c)
| Process data received from group 2B. More...
void | getNext4Block (char *c)
| Process data received from group 2A. More...
char * | getRdsText (void)
| Gets the RDS Text when the message is of the Group Type 2 version A. More...
char * | getRdsText0A (void)
| Gets the station name and other messages. More...
char * | getRdsText2A (void)
| Gets the Text processed for the 2A group. More...
char * | getRdsText2B (void)
| Gets the Text processed for the 2B group. More...
char * | getRdsTime ()
| Gets the RDS time and date when the Group type is 4. More...
bool | getRdsSync ()
| Get the Rds Sync. More...
uint8_t | getBlockId ()
| Get the current Block ID. More...
uint8_t | getErrorBlockB ()
| Get the current Status of block B. More...
bool | hasRdsInfo ()
| Returns true when the RDS system has valid information. More...
### Protected Attributes
int | deviceAddressDirectAccess = I2C_ADDR_DIRECT_ACCESS
int | deviceAddressFullAccess = I2C_ADDR_FULL_ACCESS
int | resetPin
uint16_t | currentFrequency
uint8_t | currentFMBand = 0
uint8_t | currentFMSpace = 0
uint8_t | currentVolume = 0
int | gpio1Control = -1
| Can be used to add control to the system via GPIO1 pin. More...
int | gpio2Control = -1
| Can be used to add control to the system via GPIO2 pin. More...
int | gpio3Control = -1
| Can be used to add control to the system via GPIO3 pin. More...
uint8_t | clockType = CLOCK_32K
uint8_t | oscillatorType = OSCILLATOR_TYPE_CRYSTAL
uint16_t | maxDelayAftarCrystalOn = MAX_DELAY_AFTER_OSCILLATOR

#### Member Function Documentation

## ◆ setDelayAfterCrystalOn()

void RDA5807::setDelayAfterCrystalOn | ( | uint8_t | ms_value | ) |
| inline

Set the Delay After Crystal On (default 500ms)

Parameters

  ms_value | Value in milliseconds

#### Field Documentation

## ◆ deviceAddressDirectAccess

int RDA5807::deviceAddressDirectAccess = I2C_ADDR_DIRECT_ACCESS
| protected

Referenced by setI2CBusAddrs().

## ◆ deviceAddressFullAccess

int RDA5807::deviceAddressFullAccess = I2C_ADDR_FULL_ACCESS
| protected

Referenced by setI2CBusAddrs().

## ◆ resetPin

int RDA5807::resetPin
| protected

## ◆ currentFrequency

uint16_t RDA5807::currentFrequency
| protected

## ◆ currentFMBand

uint8_t RDA5807::currentFMBand = 0
| protected

## ◆ currentFMSpace

uint8_t RDA5807::currentFMSpace = 0
| protected

## ◆ currentVolume

uint8_t RDA5807::currentVolume = 0
| protected

## ◆ gpio1Control

int RDA5807::gpio1Control = -1
| protected

Can be used to add control to the system via GPIO1 pin.

## ◆ gpio2Control

int RDA5807::gpio2Control = -1
| protected

Can be used to add control to the system via GPIO2 pin.

## ◆ gpio3Control

int RDA5807::gpio3Control = -1
| protected

Can be used to add control to the system via GPIO3 pin.

## ◆ clockType

uint8_t RDA5807::clockType = CLOCK_32K
| protected

## ◆ oscillatorType

uint8_t RDA5807::oscillatorType = OSCILLATOR_TYPE_CRYSTAL
| protected

## ◆ maxDelayAftarCrystalOn

uint16_t RDA5807::maxDelayAftarCrystalOn = MAX_DELAY_AFTER_OSCILLATOR
| protected