PU2CLR SI470X Arduino Library 1.0.1
Arduino Library for Si470X Devices - By Ricardo Lima Caratti
Loading...
Searching...
No Matches
Union, Structure and Defined Data Types <br>

SI470X Defined Data Types. More...

Data Structures

union  si470x_reg00
 Device ID. More...
 
union  si470x_reg01
 Chip ID. More...
 
union  si470x_reg02
 Power Configuratio. More...
 
union  si470x_reg03
 Channe. More...
 
union  si470x_reg04
 System Configuration 1. More...
 
union  si470x_reg05
 System Configuration 2. More...
 
union  si470x_reg06
 System Configuration 3. More...
 
union  si470x_reg07
 Test 1. More...
 
union  si470x_reg08
 Test 2. More...
 
union  si470x_reg09
 Boot Configuration. More...
 
union  si470x_reg0a
 Status RSSI. More...
 
union  si470x_reg0b
 Read Channel. More...
 
union  si470x_rds_blockb
 RDS Block B data type. More...
 
union  si470x_rds_date_time
 
union  word16_to_bytes
 Converts 16 bits word to two bytes. More...
 
class  SI470X
 KT0915 Class. More...
 
struct  si470x_reg00.refined
 
struct  si470x_reg01.refined
 
struct  si470x_reg02.refined
 
struct  si470x_reg03.refined
 
struct  si470x_reg04.refined
 
struct  si470x_reg05.refined
 
struct  si470x_reg06.refined
 
struct  si470x_reg07.refined
 
struct  si470x_reg08.refined
 
struct  si470x_reg09.refined
 
struct  si470x_reg0a.refined
 
struct  si470x_reg0b.refined
 
struct  si470x_rds_blockb.group0
 
struct  si470x_rds_blockb.group2
 
struct  si470x_rds_blockb.refined
 
struct  si470x_rds_date_time.refined
 
struct  word16_to_bytes.refined
 

Typedefs

typedef uint16_t si470x_reg0c
 RDS Block A.
 
typedef uint16_t si470x_reg0d
 RDS Block B.
 
typedef uint16_t si470x_reg0e
 RDS Block C.
 
typedef uint16_t si470x_reg0f
 RDS Block D.
 

Detailed Description

SI470X Defined Data Types.

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

Some information appears to be inaccurate due to translation problems from Chinese to English.

The information shown here was extracted from Datasheet:

SI470X stereo FM digital tuning radio documentation.

Other information seems incomplete even in the original Chinese Datasheet.

For example: Reg 10 (0x0A). There is no information about it. The Reg11 and 12 seem wrong


Data Structure Documentation

◆ si470x_reg00

union si470x_reg00

Device ID.

Data Fields
struct si470x_reg00.refined refined
uint16_t raw

◆ si470x_reg01

union si470x_reg01

Chip ID.

Data Fields
struct si470x_reg01.refined refined
uint16_t raw

◆ si470x_reg02

union si470x_reg02

Power Configuratio.

Data Fields
struct si470x_reg02.refined refined
uint16_t raw

◆ si470x_reg03

union si470x_reg03

Channe.

Channel value for tune operation. If BAND 05h[7:6] = 00, then Freq (MHz) = Spacing (MHz) x Channel + 87.5 MHz.

If BAND 05h[7:6] = 01, BAND 05h[7:6] = 10, then Freq (MHz) = Spacing (MHz) x Channel + 76 MHz.

CHAN[9:0] is not updated during a seek operation. READCHAN[9:0] provides the current tuned channel and is updated during a seek operation and after a seek or tune operation completes. Channel spacing is set with the bits SPACE 05h[5:4].

The tune operation begins when the TUNE bit is set high. The STC bit is set high when the tune operation completes. The STC bit must be set low by setting the TUNE bit low before the next tune or seek may begin.

Data Fields
struct si470x_reg03.refined refined
uint16_t raw

◆ si470x_reg04

union si470x_reg04

System Configuration 1.

Setting STCIEN = 1 will generate a 5 ms low pulse on GPIO2 when the STC 0Ah[14] bit is set.

Setting RDSIEN = 1 will generate a 5 ms low pulse on GPIO2 when the RDSR 0Ah[15] bit is set.

Setting STCIEN = 1 and GPIO2[1:0] = 01 will generate a 5 ms low pulse on GPIO2 when the STC 0Ah[14] bit is set.

BLNDADJ value Description
0 31–49 RSSI dBμV (default)
1 37–55 RSSI dBμV (+6 dB)
2 19–37 RSSI dBμV (–12 dB)
3 25–43 RSSI dBμV (–6 dB)
Data Fields
struct si470x_reg04.refined refined
uint16_t raw

◆ si470x_reg05

union si470x_reg05

System Configuration 2.

SEEKTH presents the logarithmic RSSI threshold for the seek operation. The Si4702/03-C19 will not validate channels with RSSI below the SEEKTH value. SEEKTH is one of multiple parameters that can be used to validate channels. For more information, see "AN284: Si4700/01 Firmware 15 Seek Adjustability and Set- tings."

BAND value Description
0 00 = 87.5–108 MHz (USA, Europe) (Default)
1 01 = 76–108 MHz (Japan wide band)
2 10 = 76–90 MHz (Japan)
3 11 = Reserved
Data Fields
struct si470x_reg05.refined refined
uint16_t raw

◆ si470x_reg06

union si470x_reg06

System Configuration 3.

The VOLEXT bit attenuates the output by 30 dB. With the bit set to 0, the 15 volume settings adjust the volume between 0 and –28 dBFS. With the bit set to 1, the 15 volume set- tings adjust the volume between –30 and –58 dBFS.

Refer to 4.5. "Stereo Audio Processing" on page 16.

| Softmute Attenuation | Description | | 0 | 16 dB (default) | | 1 | 14 dB | | 2 | 12 dB | | 3 | 10 dB |

| Softmute Attack/Recover Rate | Description | | 0 | fastest (default) | | 1 | fast | | 2 | slow | | 3 | slowest |

Data Fields
struct si470x_reg06.refined refined
uint16_t raw

◆ si470x_reg07

union si470x_reg07

Test 1.

Setting AHIZEN maintains a dc bias of 0.5 x VIO on the LOUT and ROUT pins to pre- vent the ESD diodes from clamping to the VIO or GND rail in response to the output swing of another device.

Register 07h containing the AHIZEN bit must not be written during the powerup sequence and high-Z only takes effect when in powerdown and VIO is supplied. Bits 13:0 of register 07h must be preserved as 0x0100 while in pow- erdown and as 0x3C04 while in powerup.

The internal crystal oscillator requires an external 32.768 kHz crystal as shown in "Typical Application Schematic" on page 14.

The oscillator must be enabled before powerup (ENABLE = 1) as shown in Figure 9, “Initialization Sequence,” on page 21. It should only be disabled after powerdown (ENABLE = 0).

Bits 13:0 of register 07h must be preserved as 0x0100 while in powerdown and as 0x3C04 while in powerup. Refer to Si4702/03 Internal Crystal Oscillator Errata.

Data Fields
struct si470x_reg07.refined refined
uint16_t raw

◆ si470x_reg08

union si470x_reg08

Test 2.

If written, these bits should be read first and then written with their pre-existing val- ues. Do not write during powerup.

Data Fields
struct si470x_reg08.refined refined
uint16_t raw

◆ si470x_reg09

union si470x_reg09

Boot Configuration.

If written, these bits should be read first and then written with their pre-existing val- ues. Do not write during powerup.

Data Fields
struct si470x_reg09.refined refined
uint16_t raw

◆ si470x_reg0a

union si470x_reg0a

Status RSSI.

RSSI is measured units of dBμV in 1 dB increments with a maximum of approximately 75 dBμV. Si4702/03-C19 does not report RSSI levels greater than 75 dBuV.

AFCRL is updated after a tune or seek operation completes and indicates a valid or invalid channel. During normal operation, AFCRL is updated to reflect changing RF envi- ronments.

The SF/BL flag is set high when SKMODE 02h[10] = 0 and the seek operation fails to find a channel qualified as valid according to the seek parameters.

The SF/BL flag is set high when SKMODE 02h[10] = 1 and the upper or lower band limit has been reached. The SEEK 02h[8] bit must be set low to clear SF/BL.

The seek/tune complete flag is set when the seek or tune operation completes. Setting the SEEK 02h[8] or TUNE 03h[15] bit low will clear STC.

RDS Block A Errors Description
0 0 errors requiring correction
1 1–2 errors requiring correction
2 3–5 errors requiring correction
3 6+ errors or error in checkword, correction not possible
Data Fields
struct si470x_reg0a.refined refined
uint16_t raw

◆ si470x_reg0b

union si470x_reg0b

Read Channel.

If BAND 05h[7:6] = 00, then Freq (MHz) = Spacing (MHz) x Channel + 87.5 MHz. If BAND 05h[7:6] = 01, BAND 05h[7:6] = 10, then Freq (MHz) = Spacing (MHz) x Channel + 76 MHz.

READCHAN[9:0] provides the current tuned channel and is updated during a seek operation and after a seek or tune operation completes. Spacing and channel are set with the bits SPACE 05h[5:4] and CHAN 03h[9:0].

RDS block Errors Description
0 0 errors requiring correction
1 1–2 errors requiring correction
2 3–5 errors requiring correction
3 6+ errors or error in checkword, correction not possible
Data Fields
struct si470x_reg0b.refined refined
uint16_t raw

◆ si470x_rds_blockb

union si470x_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 si470x_rds_blockb.group0 group0
struct si470x_rds_blockb.group2 group2
struct si470x_rds_blockb.refined refined
si470x_reg0d blockB

◆ si470x_rds_date_time

union si470x_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 use uint32_t data type.

Data Fields
struct si470x_rds_date_time.refined refined
uint8_t raw[6]

◆ word16_to_bytes

union word16_to_bytes

Converts 16 bits word to two bytes.

Data Fields
struct word16_to_bytes.refined refined
uint16_t raw

◆ SI470X

class SI470X

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 setI2CAddress (int bus_addr)
 Sets the I2C bus address.
 
void setDelayAfterCrystalOn (uint8_t ms_value)
 Set the Delay After Crystal On (default 500ms)
 
void getAllRegisters ()
 Gets all current register content of the device.
 
void setAllRegisters (uint8_t limit=0x07)
 Sets values to the device registers from 0x02 to 0x07.
 
void getStatus ()
 Gets the value of the 0x0A register.
 
uint16_t getShadownRegister (uint8_t register_number)
 Get the Shadown Register object.
 
void setShadownRegister (uint8_t register_number, uint16_t value)
 Sets a given value to the Shadown Register.
 
void setup (int resetPin, int sdaPin, int rdsInterruptPin=-1, int seekInterruptPin=-1, uint8_t oscillator_type=OSCILLATOR_TYPE_CRYSTAL)
 Starts the device.
 
void setup (int resetPin, int sdaPin, uint8_t oscillator_type)
 Starts the device.
 
void setFrequency (uint16_t frequency)
 Sets the FM frequency.
 
void setFrequencyUp ()
 Increments the current frequency.
 
void setFrequencyDown ()
 Decrements the current frequency.
 
uint16_t getFrequency ()
 Gets the current frequency.
 
uint16_t getRealFrequency ()
 Gets the frequency based on READCHAN register (0x0B)
 
uint16_t getRealChannel ()
 Gets the current channel stored in register 0x0B.
 
void setChannel (uint16_t channel)
 Sets the channel.
 
void seek (uint8_t seek_mode, uint8_t direction)
 Seek function.
 
void seek (uint8_t seek_mode, uint8_t direction, void(*showFunc)())
 Seek function.
 
void setSeekThreshold (uint8_t value)
 Sets RSSI Seek Threshold.
 
void setBand (uint8_t band=1)
 Sets the FM Band

 
void setSpace (uint8_t space=0)
 Sets the FM Space

 
int getRssi ()
 Gets the Rssi.
 
void setSoftmute (bool value)
 Sets the Softmute true or false.
 
void setSoftmuteAttack (uint8_t value)
 Sets Softmute Attack/Recover Rate.
 
void setSoftmuteAttenuation (uint8_t value)
 Sets Softmute Attenuation..
 
void setAgc (bool value)
 Sets the AGC enable or disable.
 
void setMono (bool value)
 Sets the Mono true or false (stereo)
 
bool isStereo ()
 Checks stereo / mono status.
 
uint8_t getPartNumber ()
 Gets the Part Number.
 
uint16_t getManufacturerId ()
 Gets the Manufacturer ID.
 
uint8_t getFirmwareVersion ()
 Gets the Firmware Version.
 
uint8_t getDeviceId ()
 Gets the Device identification.
 
uint8_t getChipVersion ()
 Gets the Chip Version.
 
void setMute (bool value)
 Sets the Mute true or false.
 
void setVolume (uint8_t value)
 Sets the audio volume level.
 
uint8_t getVolume ()
 Gets the current audio volume level.
 
void setVolumeUp ()
 Increments the audio volume.
 
void setVolumeDown ()
 Decrements the audio volume.
 
void setExtendedVolumeRange (bool value)
 Sets Extended Volume Range.
 
void setFmDeemphasis (uint8_t de)
 Sets De-emphasis.
 
void getRdsStatus ()
 Gets the RDS registers information.
 
void setRdsMode (uint8_t rds_mode=0)
 Sets the Rds Mode Standard or Verbose.
 
void setRds (bool value)
 Sets the RDS operation.
 
void setRDS (bool value)
 
bool getRdsReady ()
 Returns true if RDS Ready.
 
bool getRdsAllData (char **stationName, char **stationInformation, char **programInformation, char **utcTime)
 Gets Station Name, Station Information, Program Information and utcTime.
 
uint8_t getRdsFlagAB (void)
 Returns the current Text Flag A/B

 
uint8_t getRdsVersionCode (void)
 Gets the version code (extracted from the Block B)
 
uint16_t getRdsGroupType ()
 Return the group type.
 
uint8_t getRdsProgramType (void)
 Returns the Program Type (extracted from the Block B)
 
void getNext2Block (char *c)
 Process data received from group 2B.
 
void getNext4Block (char *c)
 Process data received from group 2A.
 
char * getRdsText (void)
 Gets the RDS Text when the message is of the Group Type 2 version A.
 
char * getRdsText0A (void)
 Gets the station name and other messages.
 
char * getRdsText2A (void)
 Gets the Text processed for the 2A group.
 
char * getRdsText2B (void)
 Gets the Text processed for the 2B group.
 
char * getRdsTime ()
 Gets the RDS time and date when the Group type is 4.
 
char * getRdsLocalTime ()
 Gets the RDS time converted to local time.
 
bool getRdsSync ()
 Get the Rds Sync.
 
void clearRdsBuffer ()
 Clear RDS Information (Station Name, Station Information, Program Information and Time)
 
int checkI2C (uint8_t *addressArray)
 Check the I2C bus address.
 
void convertToChar (uint16_t value, char *strValue, uint8_t len, uint8_t dot, uint8_t separator, bool remove_leading_zeros=true)
 Converts a number to a char array.
 

Protected Member Functions

void reset ()
 Resets the device.
 
void powerUp ()
 Powers the receiver on.
 
void powerDown ()
 Powers the receiver off.
 
void waitAndFinishTune ()
 Wait STC (Seek/Tune Complete) status becomes 0.
 

Protected Attributes

char rds_buffer2A [65]
 RDS Radio Text buffer - Program Information.
 
char rds_buffer2B [33]
 RDS Radio Text buffer - Station Informaation.
 
char rds_buffer0A [9]
 RDS Basic tuning and switching information (Type 0 groups)
 
char rds_time [20]
 RDS date time received information.
 
int deviceAddress = I2C_DEVICE_ADDR
 
int resetPin
 
uint16_t currentFrequency
 
uint8_t currentFMBand = 0
 
uint8_t currentFMSpace = 0
 
uint8_t currentVolume = 0
 
int rdsInterruptPin = -1
 
int seekInterruptPin = -1
 
int oscillatorType = OSCILLATOR_TYPE_CRYSTAL
 
uint16_t maxDelayAftarCrystalOn = MAX_DELAY_AFTER_OSCILLATOR
 

Member Function Documentation

◆ setRDS()

void SI470X::setRDS ( bool  value)
inline

References setRds().

Field Documentation

◆ rds_buffer2A

char SI470X::rds_buffer2A[65]
protected

RDS Radio Text buffer - Program Information.

Referenced by clearRdsBuffer(), getRdsText(), and getRdsText2A().

◆ rds_buffer2B

char SI470X::rds_buffer2B[33]
protected

RDS Radio Text buffer - Station Informaation.

Referenced by clearRdsBuffer(), and getRdsText2B().

◆ rds_buffer0A

char SI470X::rds_buffer0A[9]
protected

RDS Basic tuning and switching information (Type 0 groups)

Referenced by clearRdsBuffer(), and getRdsText0A().

◆ rds_time

char SI470X::rds_time[20]
protected

RDS date time received information.

Referenced by clearRdsBuffer(), getRdsLocalTime(), and getRdsTime().

◆ deviceAddress

int SI470X::deviceAddress = I2C_DEVICE_ADDR
protected

Referenced by setI2CAddress().

◆ resetPin

int SI470X::resetPin
protected

Referenced by setup().

◆ currentFrequency

uint16_t SI470X::currentFrequency
protected

◆ currentFMBand

uint8_t SI470X::currentFMBand = 0
protected

◆ currentFMSpace

uint8_t SI470X::currentFMSpace = 0
protected

◆ currentVolume

uint8_t SI470X::currentVolume = 0
protected

◆ rdsInterruptPin

int SI470X::rdsInterruptPin = -1
protected

Referenced by setup().

◆ seekInterruptPin

int SI470X::seekInterruptPin = -1
protected

Referenced by setup().

◆ oscillatorType

int SI470X::oscillatorType = OSCILLATOR_TYPE_CRYSTAL
protected

◆ maxDelayAftarCrystalOn

uint16_t SI470X::maxDelayAftarCrystalOn = MAX_DELAY_AFTER_OSCILLATOR
protected

◆ si470x_reg00.refined

struct si470x_reg00.refined
Data Fields
uint16_t MFGID: 12 Manufacturer ID.
uint16_t PN: 4 Part Number.

◆ si470x_reg01.refined

struct si470x_reg01.refined
Data Fields
uint16_t FIRMWARE: 6 Firmware Version.
uint16_t DEV: 4 0 before powerup; 0001 after powerup = Si4702; 1000 before powerup = Si4703; 1001 after powerup = Si4703.
uint16_t REV: 6 Chip Version; 0x04 = Rev C.

◆ si470x_reg02.refined

struct si470x_reg02.refined
Data Fields
uint8_t ENABLE: 1 Powerup Enable; Refer to “4.9. Reset, Powerup, and Powerdown”; Default = 0.
uint8_t RESERVED1: 5 Reserved; Always write to 0.
uint8_t DISABLE: 1 Powerup Disable; Refer to “4.9. Reset, Powerup, and Powerdown”; Default = 0.
uint8_t RESERVED2: 1 Reserved; Always write to 0.
uint8_t SEEK: 1 0 = Disable (default); 1 = Enable;
uint8_t SEEKUP: 1 Seek Direction; 0 = Seek down (default); 1 = Seek up.
uint8_t SKMODE: 1 Seek Mode; 0 = Wrap at the upper or lower band limit and continue seeking (default); 1 = Stop seeking at the upper or lower band limit.
uint8_t RDSM: 1 RDS Mode; 0 = Standard (default); 1 = Verbose; Refer to “4.4. RDS/RBDS Processor and Functionality”.
uint8_t RESERVED3: 1 Reserved; Always write to 0.
uint8_t MONO: 1 Mono Select; 0 = Stereo (default); 1 = Force mono.
uint8_t DMUTE: 1 Mute Disable; 0 = Mute enable (default); 1 = Mute disable.
uint8_t DSMUTE: 1 Softmute Disable; 0 = Softmute enable (default); 1 = Softmute disable.

◆ si470x_reg03.refined

struct si470x_reg03.refined
Data Fields
uint16_t CHAN: 10 Channel Select;.
uint16_t RESERVED: 5 Reserved; Always write to 0;.
uint16_t TUNE: 1 Tune. 0 = Disable (default); 1 = Enable.

◆ si470x_reg04.refined

struct si470x_reg04.refined
Data Fields
uint8_t GPIO1: 2 General Purpose I/O 1; 00 = High impedance (default); 01 = Reserved; 10 = Low; 11 = High.
uint8_t GPIO2: 2 General Purpose I/O 2. 00 = High impedance (default); 01 = Reserved; 10 = Low; 11 = High.
uint8_t GPIO3: 2 General Purpose I/O 2. 00 = High impedance (default); 01 = Reserved; 10 = Low; 11 = High.
uint8_t BLNDADJ: 2 Stereo/Mono Blend Level Adjustment. Sets the RSSI range for stereo/mono blend. See table above.
uint8_t RESERVED1: 2 Reserved; Always write to 0.
uint8_t AGCD: 1 AGC Disable; 0 = AGC enable (default); 1 = AGC disable.
uint8_t DE: 1 De-emphasis; 0 = 75 μs. Used in USA (default); 1 = 50 μs. Used in Europe, Australia, Japan.
uint8_t RDS: 1 RDS Enable; 0 = Disable (default); 1 = Enable.
uint8_t RESERVED2: 1 Reserved; Always write to 0.
uint8_t STCIEN: 1 Seek/Tune Complete Interrupt Enable; 0 = Disable Interrupt (default); 1 = Enable Interrupt.
uint8_t RDSIEN: 1 RDS Interrupt Enable; 0 = Disable Interrupt (default); 1 = Enable Interrupt.

◆ si470x_reg05.refined

struct si470x_reg05.refined
Data Fields
uint8_t VOLUME: 4 Relative value of volume is shifted –30 dBFS with the VOLEXT 06h[8] bit; 0000 = mute (default);.
uint8_t SPACE: 2 Channel Spacing; 00 = 200 kHz (USA, Australia) (default); 01 = 100 kHz (Europe, Japan); 10 = 50 kHz.
uint8_t BAND: 2 Band Select. See table above.
uint8_t SEEKTH RSSI Seek Threshold. 0x00 = min RSSI (default); 0x7F = max RSSI.

◆ si470x_reg06.refined

struct si470x_reg06.refined
Data Fields
uint8_t SKCNT: 4 Seek FM Impulse Detection Threshold; 0000 = disabled (default); 0001 = max (most stops); 1111 = min (fewest stops). Allowable number of FM impulses for a valid seek channel.
uint8_t SKSNR: 4 Seek SNR Threshold; 0000 = disabled (default); 0001 = min (most stops); 0111 = max (fewest stops); Required channel SNR for a valid seek channel.
uint8_t VOLEXT: 1 Extended Volume Range; 0 = disabled (default); 1 = enabled.
uint8_t RESERVED: 3 Reserved; Always write to zero.
uint8_t SMUTEA: 2 Softmute Attenuation; See table above.
uint8_t SMUTER: 2 Softmute Attack/Recover Rate; See table above.

◆ si470x_reg07.refined

struct si470x_reg07.refined
Data Fields
uint16_t RESERVED: 14 Reserved; If written, these bits should be read first and then written with their pre-existing val- ues. Do not write during powerup.
uint16_t AHIZEN: 1 Audio High-Z Enable; 0 = Disable (default); 1 = Enable.
uint16_t XOSCEN: 1 Crystal Oscillator Enable; 0 = Disable (default); 1 = Enable.

◆ si470x_reg08.refined

struct si470x_reg08.refined
Data Fields
uint8_t lowByte Reserved.
uint8_t highByte Reserved.

◆ si470x_reg09.refined

struct si470x_reg09.refined
Data Fields
uint8_t lowByte Reserved.
uint8_t highByte Reserved.

◆ si470x_reg0a.refined

struct si470x_reg0a.refined
Data Fields
uint8_t RSSI RSSI (Received Signal Strength Indicator).
uint8_t ST: 1 Stereo Indicator; 0 = Mono; 1 = Stereo.
uint8_t BLERA: 2 RDS Block A Errors; See table above.
uint8_t RDSS: 1 RDS Synchronized; 0 = RDS decoder not synchronized (default); 1 = RDS decoder synchronized.
uint8_t AFCRL: 1 AFC Rail; 0 = AFC not railed; 1 = AFC railed, indicating an invalid channel. Audio output is softmuted when set.
uint8_t SF_BL: 1 Seek Fail/Band Limit; 0 = Seek successful; 1 = Seek failure/Band limit reached.
uint8_t STC: 1 Seek/Tune Complete; 0 = Not complete (default); 1 = Complete.
uint8_t RDSR: 1 RDS Ready; 0 = No RDS group ready (default); 1 = New RDS group ready.

◆ si470x_reg0b.refined

struct si470x_reg0b.refined
Data Fields
uint16_t READCHAN: 10 Read Channel.
uint16_t BLERD: 2 RDS Block D Errors. See table above.
uint16_t BLERC: 2 RDS Block C Errors. See table above.
uint16_t BLERB: 2 RDS Block B Errors. See table above.

◆ si470x_rds_blockb.group0

struct si470x_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

◆ si470x_rds_blockb.group2

struct si470x_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

◆ si470x_rds_blockb.refined

struct si470x_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

◆ si470x_rds_date_time.refined

struct si470x_rds_date_time.refined
Data Fields
uint32_t offset: 5
uint32_t offset_sense: 1
uint32_t minute: 6
uint32_t hour: 5
uint32_t mjd: 17

◆ word16_to_bytes.refined

struct word16_to_bytes.refined
Data Fields
uint8_t lowByte
uint8_t highByte

Typedef Documentation

◆ si470x_reg0c

typedef uint16_t si470x_reg0c

RDS Block A.

RDS Block A Data.

◆ si470x_reg0d

typedef uint16_t si470x_reg0d

RDS Block B.

RDS Block B Data.

◆ si470x_reg0e

typedef uint16_t si470x_reg0e

RDS Block C.

RDS Block C Data.

◆ si470x_reg0f

typedef uint16_t si470x_reg0f

RDS Block D.

RDS Block D Data.