PU2CLR Si4735 Arduino Library  2.0.7
Arduino Library for Si47XX Devices - By Ricardo Lima Caratti
Union, Struct and Defined Data Types

SI473X data representation. More...

Data Structures

union  si473x_powerup
 Power Up arguments data type. More...
 
struct  si473x_powerup.arg
 
union  si473x_gpio
 Data type for Enables output for GPO1, GPO2 and GPO3. More...
 
union  si473x_gpio_ien
 Data type for Configuring the sources for the GPO2/INT interrupt pin. More...
 
struct  si473x_gpio_ien.arg
 
struct  si473x_gpio.arg
 
union  si47x_frequency
 Represents how the frequency is stored in the si4735. More...
 
struct  si47x_frequency.raw
 
union  si47x_antenna_capacitor
 Antenna Tuning Capacitor data type manupulation. More...
 
struct  si47x_antenna_capacitor.raw
 
union  si47x_set_frequency
 AM Tune frequency data type command (AM_TUNE_FREQ command) More...
 
struct  si47x_set_frequency.arg
 
union  si47x_seek
 Seek frequency (automatic tuning). ARG1. More...
 
struct  si47x_seek_am_complement
 Seek frequency (automatic tuning) AM complement (ARG2, ARG3, ARG4 and ARG5) More...
 
struct  si47x_seek.arg
 
union  si47x_status
 Status response data representation. More...
 
struct  si47x_status.refined
 
union  si47x_response_status
 Response status command. More...
 
struct  si47x_response_status.resp
 
union  si47x_firmware_information
 Data representation for Firmware Information (GET_REV) More...
 
struct  si47x_firmware_information.resp
 
union  si47x_firmware_query_library
 Firmware Query Library ID response. More...
 
struct  si47x_firmware_query_library.resp
 
union  si47x_tune_status
 Seek station status. More...
 
struct  si47x_tune_status.arg
 
union  si47x_property
 Data type to deal with SET_PROPERTY command. More...
 
struct  si47x_property.raw
 
union  si47x_rqs_status
 Radio Signal Quality data representation. More...
 
struct  si47x_rqs_status.resp
 
union  si47x_frontend_agc_control
 Adjusts the AM AGC for external front-end attenuator and external front-end cascode LNA. More...
 
struct  si47x_frontend_agc_control.field
 
union  si47x_rds_command
 Data type for RDS Status command and response information. More...
 
struct  si47x_rds_command.arg
 
union  si47x_rds_status
 Response data type for current channel and reads an entry from the RDS FIFO. More...
 
struct  si47x_rds_status.resp
 
union  si47x_rds_int_source
 FM_RDS_INT_SOURCE property data type. More...
 
struct  si47x_rds_int_source.refined
 
union  si47x_rds_config
 Data type for FM_RDS_CONFIG Property. More...
 
struct  si47x_rds_config.arg
 
union  si47x_rds_blocka
 Block A data type. More...
 
struct  si47x_rds_blocka.refined
 
struct  si47x_rds_blocka.raw
 
union  si47x_rds_blockb
 Block B data type. More...
 
struct  si47x_rds_blockb.group0
 
struct  si47x_rds_blockb.group2
 
struct  si47x_rds_blockb.refined
 
struct  si47x_rds_blockb.raw
 
union  si47x_rds_date_time
 
struct  si47x_rds_date_time.refined
 
union  si47x_agc_status
 
struct  si47x_agc_status.refined
 
union  si47x_agc_overrride
 
struct  si47x_agc_overrride.arg
 
union  si47x_bandwidth_config
 
struct  si47x_bandwidth_config.param
 
union  si47x_ssb_mode
 
struct  si47x_ssb_mode.param
 
union  si4735_digital_output_format
 Digital audio output format data structure (Property 0x0102. DIGITAL_OUTPUT_FORMAT). More...
 
struct  si4735_digital_output_format.refined
 
union  si4735_eeprom_patch_header
 patch header stored in a eeprom More...
 
struct  si4735_eeprom_patch_header.refined
 
struct  si4735_digital_output_sample_rate
 Digital audio output sample structure (Property 0x0104. DIGITAL_OUTPUT_SAMPLE_RATE). More...
 

Detailed Description

SI473X data representation.

Data Types

The goal of this approach is separating data from code. The Si47XX family works with many internal data that can be represented by data structure or defined data type in C/C++. These C/C++ resources have been used widely here.
This aproach made the library easier to build and maintain. Each data structure created here has its reference (name of the document and page on which it was based). In other words, to make the SI47XX device easier to deal, some defined data types were created to handle byte and bits to process commands, properties and responses. These data types will be usefull to deal with SI473X


Data Structure Documentation

◆ si473x_powerup

union si473x_powerup

Power Up arguments data type.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 64 and 65
Data Fields
struct si473x_powerup arg Refined powerup parameters.
uint8_t raw[2] Raw powerup parameters data. Same arg memory position. So, same content.

◆ si473x_powerup.arg

struct si473x_powerup.arg
Data Fields
uint8_t FUNC: 4 Function (0 = FM Receive; 1–14 = Reserved; 15 = Query Library ID)
uint8_t XOSCEN: 1 Crystal Oscillator Enable (0 = crystal oscillator disabled; 1 = Use crystal oscillator and and OPMODE=ANALOG AUDIO) .
uint8_t PATCH: 1 Patch Enable (0 = Boot normally; 1 = Copy non-volatile memory to RAM).
uint8_t GPO2OEN: 1 GPO2 Output Enable (0 = GPO2 output disabled; 1 = GPO2 output enabled).
uint8_t CTSIEN: 1 CTS Interrupt Enable (0 = CTS interrupt disabled; 1 = CTS interrupt enabled).
uint8_t OPMODE Application Setting. See page 65.

◆ si473x_gpio

union si473x_gpio

Data type for Enables output for GPO1, GPO2 and GPO3.

GPO1, 2, and 3 can be configured for output (Hi-Z or active drive) by setting the GPO1OEN, GPO2OEN, and GPO3OEN bit.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); page 82 and 144
Data Fields
struct si473x_gpio arg Refined powerup parameters.
uint8_t raw

◆ si473x_gpio_ien

union si473x_gpio_ien

Data type for Configuring the sources for the GPO2/INT interrupt pin.

Valid sources are the lower 8 bits of the STATUS byte, including CTS, ERR, RSQINT, and STCINT bits.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); page 146
Data Fields
struct si473x_gpio_ien arg
uint16_t raw

◆ si473x_gpio_ien.arg

struct si473x_gpio_ien.arg
Data Fields
uint8_t STCIEN: 1 Seek/Tune Complete Interrupt Enable (0 or 1).
uint8_t DUMMY1: 2 Always write 0.
uint8_t RSQIEN: 1 RSQ Interrupt Enable (0 or 1).
uint8_t DUMMY2: 2 Always write 0.
uint8_t ERRIEN: 1 ERR Interrupt Enable (0 or 1).
uint8_t CTSIEN: 1 CTS Interrupt Enable (0 or 1).
uint8_t STCREP: 1 STC Interrupt Repeat (0 or 1).
uint8_t DUMMY3: 2 Always write 0.
uint8_t RSQREP: 1 RSQ Interrupt Repeat (0 or 1).
uint8_t DUMMY4: 4 Always write 0.

◆ si473x_gpio.arg

struct si473x_gpio.arg
Data Fields
uint8_t DUMMY1: 1 Always write 0.
uint8_t GPO1OEN: 1 GPO1 Output Enable.
uint8_t GPO2OEN: 1 GPO2 Output Enable.
uint8_t GPO3OEN: 1 GPO3 Output Enable.
uint8_t DUMMY2: 4 Always write 0.

◆ si47x_frequency

union si47x_frequency

Represents how the frequency is stored in the si4735.

It helps to convert frequency in uint16_t to two bytes (uint8_t) (FREQL and FREQH)

Data Fields
struct si47x_frequency raw Raw data that represents the frequency stored in the Si47XX device.
uint16_t value frequency (integer value)

◆ si47x_frequency.raw

struct si47x_frequency.raw
Data Fields
uint8_t FREQL Tune Frequency Low byte.
uint8_t FREQH Tune Frequency High byte.

◆ si47x_antenna_capacitor

union si47x_antenna_capacitor

Antenna Tuning Capacitor data type manupulation.

Data Fields
struct si47x_antenna_capacitor raw
uint16_t value

◆ si47x_antenna_capacitor.raw

struct si47x_antenna_capacitor.raw
Data Fields
uint8_t ANTCAPL Antenna Tuning Capacitor High byte.
uint8_t ANTCAPH Antenna Tuning Capacitor Low byte.

◆ si47x_set_frequency

union si47x_set_frequency

AM Tune frequency data type command (AM_TUNE_FREQ command)

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 135
Data Fields
struct si47x_set_frequency arg
uint8_t raw[5]

◆ si47x_set_frequency.arg

struct si47x_set_frequency.arg
Data Fields
uint8_t FAST: 1 ARG1 - FAST Tuning. If set, executes fast and invalidated tune. The tune status will not be accurate.
uint8_t FREEZE: 1 Valid only for FM (Must be 0 to AM)
uint8_t DUMMY1: 4 Always set 0.
uint8_t USBLSB: 2 SSB Upper Side Band (USB) and Lower Side Band (LSB) Selection. 10 = USB is selected; 01 = LSB is selected.
uint8_t FREQH ARG2 - Tune Frequency High byte.
uint8_t FREQL ARG3 - Tune Frequency Low byte.
uint8_t ANTCAPH ARG4 - Antenna Tuning Capacitor High byte.
uint8_t ANTCAPL ARG5 - Antenna Tuning Capacitor Low byte. Note used for FM.

◆ si47x_seek

union si47x_seek

Seek frequency (automatic tuning). ARG1.

Represents searching for a valid frequency data type AM and FM.

When AM, the searching data have to be complemented by si47x_seek_am_complement.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 72 and 137
si47x_seek_am_complement
Data Fields
struct si47x_seek arg
uint8_t raw

◆ si47x_seek_am_complement

struct si47x_seek_am_complement

Seek frequency (automatic tuning) AM complement (ARG2, ARG3, ARG4 and ARG5)

Represents AM complement searching information for a valid frequency data type.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 72 and 137
Data Fields
uint8_t ARG2
uint8_t ARG3
uint8_t ANTCAPH
uint8_t ANTCAPL

◆ si47x_seek.arg

struct si47x_seek.arg
Data Fields
uint8_t RESERVED1: 2
uint8_t WRAP: 1 Determines whether the seek should Wrap = 1, or Halt = 0 when it hits the band limit.
uint8_t SEEKUP: 1 Determines the direction of the search, either UP = 1, or DOWN = 0.
uint8_t RESERVED2: 4

◆ si47x_status

union si47x_status

Status response data representation.

Represents searching for a valid frequency data type.

Data Fields
struct si47x_status refined
uint8_t raw

◆ si47x_status.refined

struct si47x_status.refined
Data Fields
uint8_t STCINT: 1 1 = Tune complete has been triggered.
uint8_t DUMMY1: 1 Reserved (Values may vary).
uint8_t RDSINT: 1 1 = Radio data system interrupt has been triggered.
uint8_t RSQINT: 1 1 = Received Signal Quality measurement has been triggered.
uint8_t DUMMY2: 2 Reserved (Values may vary).
uint8_t ERR: 1 1 = Error.
uint8_t CTS: 1 0 = Wait before sending next command; 1 = Clear to send next command.

◆ si47x_response_status

union si47x_response_status

Response status command.

Response data from a query status command

See also
Si47XX PROGRAMMING GUIDE; pages 73 and
Data Fields
struct si47x_response_status resp
uint8_t raw[8] Check it.

◆ si47x_response_status.resp

struct si47x_response_status.resp
Data Fields
uint8_t STCINT: 1 Seek/Tune Complete Interrupt; 1 = Tune complete has been triggered.
uint8_t DUMMY1: 1
uint8_t RDSINT: 1 Radio Data System (RDS) Interrup; 0 = interrupt has not been triggered.
uint8_t RSQINT: 1 Received Signal Quality Interrupt; 0 = interrupt has not been triggered.
uint8_t DUMMY2: 2
uint8_t ERR: 1 Error. 0 = No error 1 = Error.
uint8_t CTS: 1 Clear to Send.
uint8_t VALID: 1 Valid Channel.
uint8_t AFCRL: 1 AFC Rail Indicator.
uint8_t DUMMY3: 5
uint8_t BLTF: 1 Reports if a seek hit the band limit.
uint8_t READFREQH Read Frequency High byte.
uint8_t READFREQL Read Frequency Low byte.
uint8_t RSSI Received Signal Strength Indicator (dBμV)
uint8_t SNR This byte contains the SNR metric when tune is complete (dB).
uint8_t MULT If FM, contains the multipath metric when tune is complete; IF AM READANTCAPH (tuning capacitor value high byte)
uint8_t READANTCAP If FM, contains the current antenna tuning capacitor value; IF AM READANTCAPL (tuning capacitor value low byte)

◆ si47x_firmware_information

union si47x_firmware_information

Data representation for Firmware Information (GET_REV)

The part number, chip revision, firmware revision, patch revision and component revision numbers.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 66 and 131
Data Fields
struct si47x_firmware_information resp
uint8_t raw[9]

◆ si47x_firmware_information.resp

struct si47x_firmware_information.resp
Data Fields
uint8_t STCINT: 1
uint8_t DUMMY1: 1
uint8_t RDSINT: 1
uint8_t RSQINT: 1
uint8_t DUMMY2: 2
uint8_t ERR: 1
uint8_t CTS: 1
uint8_t PN RESP1 - Final 2 digits of Part Number (HEX).
uint8_t FWMAJOR RESP2 - Firmware Major Revision (ASCII).
uint8_t FWMINOR RESP3 - Firmware Minor Revision (ASCII).
uint8_t PATCHH RESP4 - Patch ID High byte (HEX).
uint8_t PATCHL RESP5 - Patch ID Low byte (HEX).
uint8_t CMPMAJOR RESP6 - Component Major Revision (ASCII).
uint8_t CMPMINOR RESP7 - Component Minor Revision (ASCII).
uint8_t CHIPREV RESP8 - Chip Revision (ASCII).

◆ si47x_firmware_query_library

union si47x_firmware_query_library

Firmware Query Library ID response.

Used to represent the response of a power up command with FUNC = 15 (patch)

To confirm that the patch is compatible with the internal device library revision, the library revision should be confirmed by issuing the POWER_UP command with Function = 15 (query library ID)

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); page 12
Data Fields
struct si47x_firmware_query_library resp
uint8_t raw[8]

◆ si47x_firmware_query_library.resp

struct si47x_firmware_query_library.resp
Data Fields
uint8_t STCINT: 1
uint8_t DUMMY1: 1
uint8_t RDSINT: 1
uint8_t RSQINT: 1
uint8_t DUMMY2: 2
uint8_t ERR: 1
uint8_t CTS: 1
uint8_t PN RESP1 - Final 2 digits of Part Number (HEX).
uint8_t FWMAJOR RESP2 - Firmware Major Revision (ASCII).
uint8_t FWMINOR RESP3 - Firmware Minor Revision (ASCII).
uint8_t RESERVED1 RESP4 - Reserved, various values.
uint8_t RESERVED2 RESP5 - Reserved, various values.
uint8_t CHIPREV RESP6 - Chip Revision (ASCII).
uint8_t LIBRARYID RESP7 - Library Revision (HEX).

◆ si47x_tune_status

union si47x_tune_status

Seek station status.

Status of FM_TUNE_FREQ or FM_SEEK_START commands or Status of AM_TUNE_FREQ or AM_SEEK_START commands.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 73 and 139
Data Fields
struct si47x_tune_status arg
uint8_t raw

◆ si47x_tune_status.arg

struct si47x_tune_status.arg
Data Fields
uint8_t INTACK: 1 If set, clears the seek/tune complete interrupt status indicator.
uint8_t CANCEL: 1 If set, aborts a seek currently in progress.
uint8_t RESERVED2: 6

◆ si47x_property

union si47x_property

Data type to deal with SET_PROPERTY command.

Property Data type (help to deal with SET_PROPERTY command on si473X)

Data Fields
struct si47x_property raw
uint16_t value

◆ si47x_property.raw

struct si47x_property.raw
Data Fields
uint8_t byteLow
uint8_t byteHigh

◆ si47x_rqs_status

union si47x_rqs_status

Radio Signal Quality data representation.

Data type for status information about the received signal quality (FM_RSQ_STATUS and AM_RSQ_STATUS)

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 75 and
Data Fields
struct si47x_rqs_status resp
uint8_t raw[8]

◆ si47x_rqs_status.resp

struct si47x_rqs_status.resp
Data Fields
uint8_t STCINT: 1
uint8_t DUMMY1: 1
uint8_t RDSINT: 1
uint8_t RSQINT: 1
uint8_t DUMMY2: 2
uint8_t ERR: 1
uint8_t CTS: 1
uint8_t RSSIILINT: 1 RSSI Detect Low.
uint8_t RSSIHINT: 1 RSSI Detect High.
uint8_t SNRLINT: 1 SNR Detect Low.
uint8_t SNRHINT: 1 SNR Detect High.
uint8_t MULTLINT: 1 Multipath Detect Low.
uint8_t MULTHINT: 1 Multipath Detect High.
uint8_t DUMMY3: 1
uint8_t BLENDINT: 1 Blend Detect Interrupt.
uint8_t VALID: 1 Valid Channel.
uint8_t AFCRL: 1 AFC Rail Indicator.
uint8_t DUMMY4: 1
uint8_t SMUTE: 1 Soft Mute Indicator. Indicates soft mute is engaged.
uint8_t DUMMY5: 4
uint8_t STBLEND: 7 Indicates amount of stereo blend in% (100 = full stereo, 0 = full mono).
uint8_t PILOT: 1 Indicates stereo pilot presence.
uint8_t RSSI RESP4 - Contains the current receive signal strength (0–127 dBμV).
uint8_t SNR RESP5 - Contains the current SNR metric (0–127 dB).
uint8_t MULT RESP6 - Contains the current multipath metric. (0 = no multipath; 100 = full multipath)
uint8_t FREQOFF RESP7 - Signed frequency offset (kHz).

◆ si47x_frontend_agc_control

union si47x_frontend_agc_control

Adjusts the AM AGC for external front-end attenuator and external front-end cascode LNA.

See also
Si47XX PROAMMING GUIDE; AN332 (REV 1.0); page 168
Data Fields
struct si47x_frontend_agc_control field
uint16_t word

◆ si47x_frontend_agc_control.field

struct si47x_frontend_agc_control.field
Data Fields
uint8_t ATTN_BACKUP
uint8_t MIN_GAIN_INDEX

◆ si47x_rds_command

union si47x_rds_command

Data type for RDS Status command and response information.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 77 and 78
Also https://en.wikipedia.org/wiki/Radio_Data_System
Data Fields
struct si47x_rds_command arg
uint8_t raw

◆ si47x_rds_command.arg

struct si47x_rds_command.arg
Data Fields
uint8_t INTACK: 1
uint8_t MTFIFO: 1
uint8_t STATUSONLY: 1
uint8_t dummy: 5

◆ si47x_rds_status

union si47x_rds_status

Response data type for current channel and reads an entry from the RDS FIFO.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 77 and 78
Data Fields
struct si47x_rds_status resp
uint8_t raw[13]

◆ si47x_rds_status.resp

struct si47x_rds_status.resp
Data Fields
uint8_t STCINT: 1
uint8_t DUMMY1: 1
uint8_t RDSINT: 1
uint8_t RSQINT: 1
uint8_t DUMMY2: 2
uint8_t ERR: 1
uint8_t CTS: 1
uint8_t RDSRECV: 1 RDS Received; 1 = FIFO filled to minimum number of groups set by RDSFIFOCNT.
uint8_t RDSSYNCLOST: 1 RDS Sync Lost; 1 = Lost RDS synchronization.
uint8_t RDSSYNCFOUND: 1 RDS Sync Found; 1 = Found RDS synchronization.
uint8_t DUMMY3: 1
uint8_t RDSNEWBLOCKA: 1 RDS New Block A; 1 = Valid Block A data has been received.
uint8_t RDSNEWBLOCKB: 1 RDS New Block B; 1 = Valid Block B data has been received.
uint8_t DUMMY4: 2
uint8_t RDSSYNC: 1 RDS Sync; 1 = RDS currently synchronized.
uint8_t DUMMY5: 1
uint8_t GRPLOST: 1 Group Lost; 1 = One or more RDS groups discarded due to FIFO overrun.
uint8_t DUMMY6: 5
uint8_t RDSFIFOUSED RESP3 - RDS FIFO Used; Number of groups remaining in the RDS FIFO (0 if empty).
uint8_t BLOCKAH RESP4 - RDS Block A; HIGH byte.
uint8_t BLOCKAL RESP5 - RDS Block A; LOW byte.
uint8_t BLOCKBH RESP6 - RDS Block B; HIGH byte.
uint8_t BLOCKBL RESP7 - RDS Block B; LOW byte.
uint8_t BLOCKCH RESP8 - RDS Block C; HIGH byte.
uint8_t BLOCKCL RESP9 - RDS Block C; LOW byte.
uint8_t BLOCKDH RESP10 - RDS Block D; HIGH byte.
uint8_t BLOCKDL RESP11 - RDS Block D; LOW byte.
uint8_t BLED: 2
uint8_t BLEC: 2
uint8_t BLEB: 2
uint8_t BLEA: 2

◆ si47x_rds_int_source

union si47x_rds_int_source

FM_RDS_INT_SOURCE property data type.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); page 103
also https://en.wikipedia.org/wiki/Radio_Data_System
Data Fields
struct si47x_rds_int_source refined
uint8_t raw[2]

◆ si47x_rds_int_source.refined

struct si47x_rds_int_source.refined
Data Fields
uint8_t RDSRECV: 1 If set, generate RDSINT when RDS FIFO has at least FM_RDS_INT_FIFO_COUNT entries.
uint8_t RDSSYNCLOST: 1 If set, generate RDSINT when RDS loses synchronization.
uint8_t RDSSYNCFOUND: 1 f set, generate RDSINT when RDS gains synchronization.
uint8_t DUMMY1: 1 Always write to 0.
uint8_t RDSNEWBLOCKA: 1 If set, generate an interrupt when Block A data is found or subsequently changed.
uint8_t RDSNEWBLOCKB: 1 If set, generate an interrupt when Block B data is found or subsequently changed.
uint8_t DUMMY2: 5 Reserved - Always write to 0.
uint8_t DUMMY3: 5 Reserved - Always write to 0.

◆ si47x_rds_config

union si47x_rds_config

Data type for FM_RDS_CONFIG Property.

IMPORTANT: all block errors must be less than or equal the associated block error threshold for the group to be stored in the RDS FIFO. 0 = No errors; 1 = 1–2 bit errors detected and corrected; 2 = 3–5 bit errors detected and corrected; 3 = Uncorrectable. Recommended Block Error Threshold options: 2,2,2,2 = No group stored if any errors are uncorrected. 3,3,3,3 = Group stored regardless of errors. 0,0,0,0 = No group stored containing corrected or uncorrected errors. 3,2,3,3 = Group stored with corrected errors on B, regardless of errors on A, C, or D.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 58 and 104
Data Fields
struct si47x_rds_config arg
uint8_t raw[2]

◆ si47x_rds_config.arg

struct si47x_rds_config.arg
Data Fields
uint8_t RDSEN: 1 1 = RDS Processing Enable.
uint8_t DUMMY1: 7
uint8_t BLETHD: 2 Block Error Threshold BLOCKD.
uint8_t BLETHC: 2 Block Error Threshold BLOCKC.
uint8_t BLETHB: 2 Block Error Threshold BLOCKB.
uint8_t BLETHA: 2 Block Error Threshold BLOCKA.

◆ si47x_rds_blocka

union si47x_rds_blocka

Block A data type.

Data Fields
struct si47x_rds_blocka refined
struct si47x_rds_blocka raw

◆ si47x_rds_blocka.refined

struct si47x_rds_blocka.refined
Data Fields
uint16_t pi

◆ si47x_rds_blocka.raw

struct si47x_rds_blocka.raw
Data Fields
uint8_t highValue
uint8_t lowValue

◆ si47x_rds_blockb

union si47x_rds_blockb

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 Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 78 and 79
also https://en.wikipedia.org/wiki/Radio_Data_System
Data Fields
struct si47x_rds_blockb group0
struct si47x_rds_blockb group2
struct si47x_rds_blockb refined
struct si47x_rds_blockb raw

◆ si47x_rds_blockb.group0

struct si47x_rds_blockb.group0
Data Fields
uint16_t address: 2
uint16_t DI: 1
uint16_t MS: 1
uint16_t TA: 1
uint16_t programType: 5
uint16_t trafficProgramCode: 1
uint16_t versionCode: 1
uint16_t groupType: 4

◆ si47x_rds_blockb.group2

struct si47x_rds_blockb.group2
Data Fields
uint16_t address: 4
uint16_t textABFlag: 1
uint16_t programType: 5
uint16_t trafficProgramCode: 1
uint16_t versionCode: 1
uint16_t groupType: 4

◆ si47x_rds_blockb.refined

struct si47x_rds_blockb.refined
Data Fields
uint16_t content: 4
uint16_t textABFlag: 1
uint16_t programType: 5
uint16_t trafficProgramCode: 1
uint16_t versionCode: 1
uint16_t groupType: 4

◆ si47x_rds_blockb.raw

struct si47x_rds_blockb.raw
Data Fields
uint8_t lowValue
uint8_t highValue

◆ si47x_rds_date_time

union si47x_rds_date_time

Group 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 si47x_rds_date_time refined
uint8_t raw[6]

◆ si47x_rds_date_time.refined

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

◆ si47x_agc_status

union si47x_agc_status

AGC data types FM / AM and SSB structure to AGC

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); For FM page 80; for AM page 142
AN332 REV 0.8 Universal Programming Guide Amendment for SI4735-D60 SSB and NBFM patches; page 18.
Data Fields
struct si47x_agc_status refined
uint8_t raw[3]

◆ si47x_agc_status.refined

struct si47x_agc_status.refined
Data Fields
uint8_t STCINT: 1
uint8_t DUMMY1: 1
uint8_t RDSINT: 1
uint8_t RSQINT: 1
uint8_t DUMMY2: 2
uint8_t ERR: 1
uint8_t CTS: 1
uint8_t AGCDIS: 1
uint8_t DUMMY: 7
uint8_t AGCIDX

◆ si47x_agc_overrride

union si47x_agc_overrride

If FM, Overrides AGC setting by disabling the AGC and forcing the LNA to have a certain gain that ranges between 0 (minimum attenuation) and 26 (maximum attenuation). If AM, overrides the AGC setting by disabling the AGC and forcing the gain index that ranges between 0

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); For FM page 81; for AM page 143
Data Fields
struct si47x_agc_overrride arg
uint8_t raw[2]

◆ si47x_agc_overrride.arg

struct si47x_agc_overrride.arg
Data Fields
uint8_t AGCDIS: 1
uint8_t DUMMY: 7
uint8_t AGCIDX

◆ si47x_bandwidth_config

union si47x_bandwidth_config

The bandwidth of the AM channel filter data type AMCHFLT values: 0 = 6 kHz Bandwidth
1 = 4 kHz Bandwidth 2 = 3 kHz Bandwidth 3 = 2 kHz Bandwidth 4 = 1 kHz Bandwidth 5 = 1.8 kHz Bandwidth 6 = 2.5 kHz Bandwidth, gradual roll off 7–15 = Reserved (Do not use)

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); pages 125 and 151
Data Fields
struct si47x_bandwidth_config param
uint8_t raw[2]

◆ si47x_bandwidth_config.param

struct si47x_bandwidth_config.param
Data Fields
uint8_t AMCHFLT: 4 Selects the bandwidth of the AM channel filter.
uint8_t DUMMY1: 4
uint8_t AMPLFLT: 1 Enables the AM Power Line Noise Rejection Filter.
uint8_t DUMMY2: 7

◆ si47x_ssb_mode

union si47x_ssb_mode

SSB - datatype for SSB_MODE (property 0x0101)

See also
AN332 REV 0.8 UNIVERSAL PROGRAMMING GUIDE; page 24
Data Fields
struct si47x_ssb_mode param
uint8_t raw[2]

◆ si47x_ssb_mode.param

struct si47x_ssb_mode.param
Data Fields
uint8_t AUDIOBW: 4 0 = 1.2kHz (default); 1=2.2kHz; 2=3kHz; 3=4kHz; 4=500Hz; 5=1kHz
uint8_t SBCUTFLT: 4 SSB side band cutoff filter for band passand low pass filter.
uint8_t AVC_DIVIDER: 4 set 0 for SSB mode; set 3 for SYNC mode;
uint8_t AVCEN: 1 SSB Automatic Volume Control (AVC) enable; 0=disable; 1=enable (default);.
uint8_t SMUTESEL: 1 SSB Soft-mute Based on RSSI or SNR.
uint8_t DUMMY1: 1 Always write 0;.
uint8_t DSP_AFCDIS: 1 0=SYNC MODE, AFC enable; 1=SSB MODE, AFC disable.

◆ si4735_digital_output_format

union si4735_digital_output_format

Digital audio output format data structure (Property 0x0102. DIGITAL_OUTPUT_FORMAT).

Used to configure: DCLK edge, data format, force mono, and sample precision.

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); page 195.
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); chapter 9 - Digital Audio Interface
Data Fields
struct si4735_digital_output_format refined
uint16_t raw

◆ si4735_digital_output_format.refined

struct si4735_digital_output_format.refined
Data Fields
uint8_t OSIZE: 2 Digital Output Audio Sample Precision (0=16 bits, 1=20 bits, 2=24 bits, 3=8bits).
uint8_t OMONO: 1 Digital Output Mono Mode (0=Use mono/stereo blend ).
uint8_t OMODE: 4 Digital Output Mode (0000=I2S, 0110 = Left-justified, 1000 = MSB at second DCLK after DFS pulse, 1100 = MSB at first DCLK after DFS pulse).
uint8_t OFALL: 1 Digital Output DCLK Edge (0 = use DCLK rising edge, 1 = use DCLK falling edge)
uint8_t dummy: 8 Always 0.

◆ si4735_eeprom_patch_header

union si4735_eeprom_patch_header

patch header stored in a eeprom

This data type represents o header of a eeprom with a patch content

This structure will be used to read an eeprom generated by leo sketch SI47XX_09_SAVE_SSB_PATCH_EEPROM.ino.

The sketch SI47XX_09_SAVE_SSB_PATCH_EEPROM can be found on Examples/SI47XX_TOOLS folder

Data Fields
struct si4735_eeprom_patch_header refined
uint8_t raw[32]

◆ si4735_eeprom_patch_header.refined

struct si4735_eeprom_patch_header.refined
Data Fields
uint8_t reserved[8]
uint8_t status[8]
uint8_t patch_id[14]
uint16_t patch_size

◆ si4735_digital_output_sample_rate

struct si4735_digital_output_sample_rate

Digital audio output sample structure (Property 0x0104. DIGITAL_OUTPUT_SAMPLE_RATE).

Used to enable digital audio output and to configure the digital audio output sample rate in samples per second (sps).

See also
Si47XX PROGRAMMING GUIDE; AN332 (REV 1.0); page 196.
Data Fields
uint16_t DOSR