PU2CLR Si4735 Arduino Library  1.1.9
Arduino Library for Si47XX Devices - By Ricardo Lima Caratti
SI4735 Class Reference

SI4735 Class. More...

#include <SI4735.h>

Public Member Functions

 SI4735 ()
 Construct a new SI4735::SI4735. More...
 
void reset (void)
 Reset the SI473X
More...
 
void waitToSend (void)
 Wait for the si473x is ready (Clear to Send (CTS) status bit have to be 1).
More...
 
void setup (uint8_t resetPin, uint8_t defaultFunction)
 Starts the Si473X device.
More...
 
void setup (uint8_t resetPin, int interruptPin, uint8_t defaultFunction, uint8_t audioMode=SI473X_ANALOG_AUDIO)
 Starts the Si473X device. More...
 
int32_t getProperty (uint16_t propertyValue)
 Gets a property from the SI47XX. More...
 
void setProperty (uint16_t propertyNumber, uint16_t param)
 Sets the a given Property. More...
 
void setPowerUp (uint8_t CTSIEN, uint8_t GPO2OEN, uint8_t PATCH, uint8_t XOSCEN, uint8_t FUNC, uint8_t OPMODE)
 Set the Power Up parameters for si473X. More...
 
void radioPowerUp (void)
 Powerup the Si47XX. More...
 
void analogPowerUp (void)
 You have to call setPowerUp method before. More...
 
void powerDown (void)
 Moves the device from powerup to powerdown mode. More...
 
void setFrequency (uint16_t)
 Set the frequency to the corrent function of the Si4735 (FM, AM or SSB) More...
 
void getStatus (uint8_t, uint8_t)
 Gets the current status of the Si4735 (AM or FM) More...
 
uint16_t getFrequency (void)
 Gets the current frequency of the Si4735 (AM or FM) More...
 
bool getSignalQualityInterrupt ()
 Get the Signal Quality Interrupt status. More...
 
bool getRadioDataSystemInterrupt ()
 Get the Radio Data System (RDS) Interrupt status. More...
 
bool getTuneCompleteTriggered ()
 Get the Tune Complete status. More...
 
bool getStatusError ()
 Get the Status Error. More...
 
bool getStatusCTS ()
 Gets the Error flag Clear to Send. More...
 
bool getACFIndicator ()
 Returns true if the AFC rails (AFC Rail Indicator). More...
 
bool getBandLimit ()
 Returns true if a seek hit the band limit. More...
 
bool getStatusValid ()
 Gets the channel status. More...
 
uint8_t getReceivedSignalStrengthIndicator ()
 Returns the value of Received Signal Strength Indicator (dBμV). More...
 
uint8_t getStatusSNR ()
 Gets the SNR metric when tune is complete (dB) More...
 
uint8_t getStatusMULT ()
 Get the Status the M U L T. More...
 
uint8_t getAntennaTuningCapacitor ()
 Get the Antenna Tuning Capacitor value. More...
 
void getAutomaticGainControl ()
 Queries Automatic Gain Control STATUS. More...
 
void setAvcAmMaxGain ()
 Sets the Avc Am Max Gain to 48dB. More...
 
void setAvcAmMaxGain (uint8_t gain)
 Sets the maximum gain for automatic volume control. More...
 
uint8_t getCurrentAvcAmMaxGain ()
 Get the current Avc Am Max Gain. More...
 
void setAmSoftMuteMaxAttenuation (uint8_t smattn=0)
 Sets the Am Soft Mute Max Attenuation. More...
 
void setSsbSoftMuteMaxAttenuation (uint8_t smattn=0)
 Sets the SSB Soft Mute Max Attenuation object. More...
 
bool isAgcEnabled ()
 Checks if the AGC is enabled. More...
 
uint8_t getAgcGainIndex ()
 Gets the current AGC gain index. More...
 
void setAutomaticGainControl (uint8_t AGCDIS, uint8_t AGCIDX)
 Automatic Gain Control setup. More...
 
void getCurrentReceivedSignalQuality (uint8_t INTACK)
 Queries the status of the Received Signal Quality (RSQ) of the current channel. More...
 
void getCurrentReceivedSignalQuality (void)
 Queries the status of the Received Signal Quality (RSQ) of the current channel (FM_RSQ_STATUS) More...
 
uint8_t getCurrentRSSI ()
 Get the current receive signal strength (0–127 dBμV) More...
 
uint8_t getCurrentSNR ()
 Gets the current SNR metric (0–127 dB). More...
 
bool getCurrentRssiDetectLow ()
 Checks if RSSI detected is LOW. More...
 
bool getCurrentRssiDetectHigh ()
 Checks if RSSI detected is high. More...
 
bool getCurrentSnrDetectLow ()
 Checks if SNR detect is low. More...
 
bool getCurrentSnrDetectHigh ()
 Checks if SNR detect is high. More...
 
bool getCurrentValidChannel ()
 Checks if the current channel is valid. More...
 
bool getCurrentAfcRailIndicator ()
 AFC Rail Indicator. More...
 
bool getCurrentSoftMuteIndicator ()
 Soft Mute Indicator. More...
 
uint8_t getCurrentStereoBlend ()
 Gets the value of the amount of stereo blend in % (100 = full stereo, 0 = full mono). More...
 
bool getCurrentPilot ()
 Checks the current pilot. More...
 
uint8_t getCurrentMultipath ()
 Gets the current Multipath. More...
 
uint8_t getCurrentSignedFrequencyOffset ()
 
bool getCurrentMultipathDetectLow ()
 Signed frequency offset (kHz). More...
 
bool getCurrentMultipathDetectHigh ()
 Multipath Detect Low. More...
 
bool getCurrentBlendDetectInterrupt ()
 Multipath Detect High. More...
 
uint8_t getFirmwarePN ()
 Blend Detect Interrupt. More...
 
uint8_t getFirmwareFWMAJOR ()
 RESP1 - Part Number (HEX) More...
 
uint8_t getFirmwareFWMINOR ()
 RESP2 - Returns the Firmware Major Revision (ASCII). More...
 
uint8_t getFirmwarePATCHH ()
 RESP3 - Returns the Firmware Minor Revision (ASCII). More...
 
uint8_t getFirmwarePATCHL ()
 RESP4 - Returns the Patch ID High byte (HEX). More...
 
uint8_t getFirmwareCMPMAJOR ()
 RESP5 - Returns the Patch ID Low byte (HEX). More...
 
uint8_t getFirmwareCMPMINOR ()
 RESP6 - Returns the Component Major Revision (ASCII). More...
 
uint8_t getFirmwareCHIPREV ()
 RESP7 - Returns the Component Minor Revision (ASCII). More...
 
void setVolume (uint8_t volume)
 RESP8 - Returns the Chip Revision (ASCII). More...
 
uint8_t getVolume ()
 Gets the current volume level. More...
 
void volumeDown ()
 Set sound volume level Down
More...
 
void volumeUp ()
 Set sound volume level Up
More...
 
uint8_t getCurrentVolume ()
 
void setAudioMode (uint8_t audioMode)
 Returns the current volume level. More...
 
void digitalOutputFormat (uint8_t OSIZE, uint8_t OMONO, uint8_t OMODE, uint8_t OFALL)
 Configures the digital audio output format. More...
 
void digitalOutputSampleRate (uint16_t DOSR)
 Enables digital audio output and configures digital audio output sample rate in samples per second (sps). More...
 
void setAudioMute (bool off)
 Sets the audio on or off. More...
 
void setAM ()
 Sets the radio to AM function. It means: LW MW and SW. More...
 
void setFM ()
 Sets the radio to FM function. More...
 
void setAM (uint16_t fromFreq, uint16_t toFreq, uint16_t intialFreq, uint16_t step)
 Sets the radio to AM (LW/MW/SW) function. More...
 
void setFM (uint16_t fromFreq, uint16_t toFreq, uint16_t initialFreq, uint16_t step)
 Sets the radio to FM function. More...
 
void setBandwidth (uint8_t AMCHFLT, uint8_t AMPLFLT)
 Selects the bandwidth of the channel filter for AM reception. More...
 
uint8_t getTuneFrequencyFast ()
 
void setTuneFrequencyFast (uint8_t FAST)
 Returns the FAST tuning status. More...
 
uint8_t getTuneFrequencyFreeze ()
 FAST Tuning. If set, executes fast and invalidated tune. The tune status will not be accurate. More...
 
void setTuneFrequencyFreeze (uint8_t FREEZE)
 Returns the FREEZE status. More...
 
void setTuneFrequencyAntennaCapacitor (uint16_t capacitor)
 Only FM. Freeze Metrics During Alternate Frequency Jump. More...
 
void frequencyUp ()
 Increments the current frequency on current band/function by using the current step. More...
 
void frequencyDown ()
 Decrements the current frequency on current band/function by using the current step. More...
 
bool isCurrentTuneFM ()
 Returns true if the current function is FM (FM_TUNE_FREQ). More...
 
bool isCurrentTuneAM ()
 Returns true if the current function is AM (AM_TUNE_FREQ). More...
 
bool isCurrentTuneSSB ()
 Returns true if the current function is SSB (SSB_TUNE_FREQ). More...
 
void getFirmware (void)
 Gets firmware information. More...
 
void seekStation (uint8_t SEEKUP, uint8_t WRAP)
 Look for a station (Automatic tune) More...
 
void seekStationUp ()
 Search for the next station. More...
 
void seekStationDown ()
 Search the previous station. More...
 
void setSeekAmLimits (uint16_t bottom, uint16_t top)
 Sets the bottom frequency and top frequency of the AM band for seek. Default is 520 to 1710. More...
 
void setSeekAmSpacing (uint16_t spacing)
 Selects frequency spacingfor AM seek. Default is 10 kHz spacing. More...
 
void setSeekSrnThreshold (uint16_t value)
 Sets the SNR threshold for a valid AM Seek/Tune. More...
 
void setSeekRssiThreshold (uint16_t value)
 Sets the RSSI threshold for a valid AM Seek/Tune. More...
 
void setFmBlendStereoThreshold (uint8_t parameter)
 Sets RSSI threshold for stereo blend (Full stereo above threshold, blend below threshold). More...
 
void setFmBlendMonoThreshold (uint8_t parameter)
 Sets RSSI threshold for mono blend (Full mono below threshold, blend above threshold). More...
 
void setFmBlendRssiStereoThreshold (uint8_t parameter)
 Sets RSSI threshold for stereo blend. (Full stereo above threshold, blend below threshold.) More...
 
void setFmBLendRssiMonoThreshold (uint8_t parameter)
 Sets RSSI threshold for mono blend (Full mono below threshold, blend above threshold). More...
 
void setFmBlendSnrStereoThreshold (uint8_t parameter)
 Sets SNR threshold for stereo blend (Full stereo above threshold, blend below threshold). More...
 
void setFmBLendSnrMonoThreshold (uint8_t parameter)
 Sets SNR threshold for mono blend (Full mono below threshold, blend above threshold). More...
 
void setFmBlendMultiPathStereoThreshold (uint8_t parameter)
 Sets multipath threshold for stereo blend (Full stereo below threshold, blend above threshold). More...
 
void setFmBlendMultiPathMonoThreshold (uint8_t parameter)
 Sets Multipath threshold for mono blend (Full mono above threshold, blend below threshold). More...
 
void setFmStereoOn ()
 Turn Off Stereo operation. More...
 
void setFmStereoOff ()
 Turn Off Stereo operation. More...
 
void RdsInit ()
 Starts the control member variables for RDS. More...
 
void setRdsIntSource (uint8_t RDSNEWBLOCKB, uint8_t RDSNEWBLOCKA, uint8_t RDSSYNCFOUND, uint8_t RDSSYNCLOST, uint8_t RDSRECV)
 Configures interrupt related to RDS. More...
 
void getRdsStatus (uint8_t INTACK, uint8_t MTFIFO, uint8_t STATUSONLY)
 Gets the RDS status. Store the status in currentRdsStatus member. RDS COMMAND FM_RDS_STATUS. More...
 
void getRdsStatus ()
 Gets RDS Status. More...
 
bool getRdsReceived ()
 Get the Rds Received FIFO. More...
 
bool getRdsSyncLost ()
 Get the Rds Sync Lost object. More...
 
bool getRdsSyncFound ()
 Get the Rds Sync Found. More...
 
bool getRdsNewBlockA ()
 Get the Rds New Block A. More...
 
bool getRdsNewBlockB ()
 Get the Rds New Block B. More...
 
bool getRdsSync ()
 Get the Rds Sync. More...
 
bool getGroupLost ()
 Get the Group Lost. More...
 
uint8_t getNumRdsFifoUsed ()
 Get the Num Rds Fifo Used. More...
 
void setRdsConfig (uint8_t RDSEN, uint8_t BLETHA, uint8_t BLETHB, uint8_t BLETHC, uint8_t BLETHD)
 Sets RDS property. More...
 
uint16_t getRdsPI (void)
 Returns the programa type. More...
 
uint8_t getRdsGroupType (void)
 Returns the Group Type (extracted from the Block B) 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...
 
uint8_t getRdsProgramType (void)
 Returns the Program Type (extracted from the Block B) More...
 
uint8_t getRdsTextSegmentAddress (void)
 Returns the address of the text segment. 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 (void)
 Gets the RDS time and date when the Group type is 4. More...
 
void getNext2Block (char *)
 Process data received from group 2B. More...
 
void getNext4Block (char *)
 Process data received from group 2A. More...
 
void ssbSetup ()
 Starts the Si473X device on SSB (same AM Mode). More...
 
void setSSBBfo (int offset)
 Sets the SSB Beat Frequency Offset (BFO). More...
 
void setSSBConfig (uint8_t AUDIOBW, uint8_t SBCUTFLT, uint8_t AVC_DIVIDER, uint8_t AVCEN, uint8_t SMUTESEL, uint8_t DSP_AFCDIS)
 Sets the SSB receiver mode. More...
 
void setSSB (uint16_t fromFreq, uint16_t toFreq, uint16_t intialFreq, uint16_t step, uint8_t usblsb)
 
void setSSB (uint8_t usblsb)
 Set the radio to AM function. More...
 
void setSSBAudioBandwidth (uint8_t AUDIOBW)
 SSB Audio Bandwidth for SSB mode. More...
 
void setSSBAutomaticVolumeControl (uint8_t AVCEN)
 Sets SSB Automatic Volume Control (AVC) for SSB mode. More...
 
void setSBBSidebandCutoffFilter (uint8_t SBCUTFLT)
 Sets SBB Sideband Cutoff Filter for band pass and low pass filters. More...
 
void setSSBAvcDivider (uint8_t AVC_DIVIDER)
 Sets AVC Divider. More...
 
void setSSBDspAfc (uint8_t DSP_AFCDIS)
 Sets DSP AFC disable or enable. More...
 
void setSSBSoftMute (uint8_t SMUTESEL)
 Sets SSB Soft-mute Based on RSSI or SNR Selection: More...
 
si47x_firmware_query_library queryLibraryId ()
 Query the library information of the Si47XX device. More...
 
void patchPowerUp ()
 This method can be used to prepare the device to apply SSBRX patch. More...
 
bool downloadPatch (const uint8_t *ssb_patch_content, const uint16_t ssb_patch_content_size)
 Transfers the content of a patch stored in a array of bytes to the SI4735 device. More...
 
bool downloadPatch (int eeprom_i2c_address)
 Transfers the content of a patch stored in a eeprom to the SI4735 device. More...
 
void ssbPowerUp ()
 This function can be useful for debug and test. More...
 
void setMaxDelayPowerUp (uint16_t ms)
 Set the Max Delay Power Up. More...
 
void setMaxDelaySetFrequency (uint16_t ms)
 Set the Max Delay after Set Frequency. More...
 
void setFrequencyStep (uint16_t step)
 Sets the current step value. More...
 
uint16_t getCurrentFrequency ()
 Gets the current frequency saved in memory. More...
 
void getStatus ()
 Gets the current status of the Si47XX (AM, FM or SSB) More...
 
void setDeviceI2CAddress (uint8_t senPin)
 Sets the I2C Bus Address. More...
 
int16_t getDeviceI2CAddress (uint8_t resetPin)
 I2C bus address setup. More...
 
void setDeviceOtherI2CAddress (uint8_t i2cAddr)
 Sets the onther I2C Bus Address (for Si470X) More...
 
void setI2CLowSpeedMode (void)
 Sets I2C buss to 10KHz. More...
 
void setI2CStandardMode (void)
 Sets I2C buss to 100KHz. More...
 
void setI2CFastMode (void)
 Sets I2C buss to 400KHz. More...
 
void setI2CFastModeCustom (long value=500000)
 Sets the I2C bus to a given value. More...
 
virtual void setMcuControl (bool value)
 Enables MCU control resource. More...
 
virtual void setMcuWakeUpPin (uint8_t pin)
 Sets pin used to wake the MCU up. More...
 
virtual void mcuWakeUp ()
 Sets the pin that controls some MCU features. You might do something with that. More...
 
virtual void mcuSleepDown ()
 You might want to do something when MCU wakes up. More...
 
virtual void setMcuClockSpeed (uint32_t clock)
 Sets the Mcu Clock Speed if the platform supports this resource. More...
 
void setAudioMuteMcuPin (int8_t pin)
 Sets the Audio Mute Mcu Pin. More...
 
void setHardwareAudioMute (bool on)
 Sets the Hardware Audio Mute. More...
 

Protected Member Functions

void waitInterrupr (void)
 Interrupt handle. More...
 
si47x_status getInterruptStatus ()
 Updates bits 6:0 of the status byte. More...
 
void setGpioCtl (uint8_t GPO1OEN, uint8_t GPO2OEN, uint8_t GPO3OEN)
 Enables output for GPO1, 2, and 3. More...
 
void setGpio (uint8_t GPO1LEVEL, uint8_t GPO2LEVEL, uint8_t GPO3LEVEL)
 Sets the output level (high or low) for GPO1, 2, and 3.
More...
 
void setGpioIen (uint8_t STCIEN, uint8_t RSQIEN, uint8_t ERRIEN, uint8_t CTSIEN, uint8_t STCREP, uint8_t RSQREP)
 Configures the sources for the GPO2/INT interrupt pin. More...
 
void sendProperty (uint16_t propertyNumber, uint16_t param)
 Sends (sets) property to the SI47XX. More...
 
void sendSSBModeProperty ()
 Just send the property SSB_MOD to the device. Internal use (privete method). More...
 
void disableFmDebug ()
 There is a debug feature that remains active in Si4704/05/3x-D60 firmware which can create periodic noise in audio. More...
 
void clearRdsBuffer2A ()
 Clear RDS buffer 2A (text) More...
 
void clearRdsBuffer2B ()
 Clear RDS buffer 2B (text) More...
 
void clearRdsBuffer0A ()
 Clear RDS buffer 0A (text) More...
 

Protected Attributes

char rds_buffer2A [65]
 RDS Radio Text buffer - Program Information. More...
 
char rds_buffer2B [33]
 RDS Radio Text buffer - Station Informaation. More...
 
char rds_buffer0A [9]
 RDS Basic tuning and switching information (Type 0 groups) More...
 
char rds_time [20]
 RDS date time received information. More...
 
int rdsTextAdress2A
 rds_buffer2A current position More...
 
int rdsTextAdress2B
 rds_buffer2B current position More...
 
int rdsTextAdress0A
 rds_buffer0A current position More...
 
int16_t deviceAddress = SI473X_ADDR_SEN_LOW
 current I2C buss address More...
 
uint16_t maxDelaySetFrequency = MAX_DELAY_AFTER_SET_FREQUENCY
 
uint16_t maxDelayAfterPouwerUp = MAX_DELAY_AFTER_POWERUP
 
uint8_t lastTextFlagAB
 
uint8_t resetPin
 pin used on Arduino Board to RESET the Si47XX device More...
 
uint8_t interruptPin
 pin used on Arduino Board to control interrupt. If -1, interrupt is no used. More...
 
uint8_t currentTune
 tell the current tune (FM, AM or SSB) More...
 
uint16_t currentMinimumFrequency
 minimum frequency of the current band More...
 
uint16_t currentMaximumFrequency
 maximum frequency of the current band More...
 
uint16_t currentWorkFrequency
 current frequency More...
 
uint16_t currentStep
 current steps More...
 
uint8_t lastMode = -1
 Store the last mode used. More...
 
uint8_t currentAvcAmMaxGain = 48
 Automatic Volume Control Gain for AM - Default 48. More...
 
si47x_frequency currentFrequency
 data structure to get current frequency More...
 
si47x_set_frequency currentFrequencyParams
 
si47x_rqs_status currentRqsStatus
 current Radio SIgnal Quality status More...
 
si47x_response_status currentStatus
 current device status More...
 
si47x_firmware_information firmwareInfo
 firmware information More...
 
si47x_rds_status currentRdsStatus
 current RDS status More...
 
si47x_agc_status currentAgcStatus
 current AGC status More...
 
si47x_ssb_mode currentSSBMode
 indicates if USB or LSB More...
 
si473x_powerup powerUp
 
uint8_t volume = 32
 
uint8_t currentAudioMode = SI473X_ANALOG_AUDIO
 current audio mode used (ANALOG or DIGITAL or both) More...
 
uint8_t currentSsbStatus
 
bool controlMcu = false
 
int8_t controlMcuPin
 
int8_t audioMuteMcuPin = -1
 
uint32_t controlMcuClock
 

Detailed Description

SI4735 Class.

SI4735 Class definition

This class implements all functions to help you to control the Si47XX devices. This library was built based on “Si47XX PROGRAMMING GUIDE; AN332 ”. It also can be used on all members of the SI473X family respecting, of course, the features available for each IC version. These functionalities can be seen in the comparison matrix shown in table 1 (Product Family Function); pages 2 and 3 of the programming guide.

Author
PU2CLR - Ricardo Lima Caratti

Constructor & Destructor Documentation

◆ SI4735()

SI4735::SI4735 ( )

Construct a new SI4735::SI4735.

This class has a set of functions that can help you to build your receiver based on Si47XX IC family.

This library uses the I²C communication protocol and implements most of the functions offered by Si47XX (BROADCAST AM / FM / SW / LW RADIO RECEIVER) IC family from Silicon Labs.

Currently you have more than 120 functions implemented to control the Si47XX devices. These functions are listed and documented here.

Some methods were implemented using inline resource. Inline methods are implemented in SI4735.h

IMPORTANT: According to Si47XX PROGRAMMING GUIDE; AN332; page 207, "For write operations, the system controller next sends a data byte on SDIO, which is captured by the device on rising edges of SCLK. The device acknowledges each data byte by driving SDIO low for one cycle on the next falling edge of SCLK. The system controller may write up to 8 data bytes in a single 2-wire transaction. The first byte is a command, and the next seven bytes are arguments. Writing more than 8 bytes results in unpredictable device behavior". So, If you are extending this library, consider that restriction presented earlier.

Member Function Documentation

◆ getSignalQualityInterrupt()

bool SI4735::getSignalQualityInterrupt ( )
inline

Get the Signal Quality Interrupt status.

STATUS RESPONSE Set of methods to get current status information. Call them after getStatus or getFrequency or seekStation

See also
Si47XX PROGRAMMING GUIDE; AN332; pages 63
Si47XX PROGRAMMING GUIDE; AN332; pages 63
Returns
RDSINT status

◆ getRadioDataSystemInterrupt()

bool SI4735::getRadioDataSystemInterrupt ( )
inline

Get the Radio Data System (RDS) Interrupt status.

See also
Si47XX PROGRAMMING GUIDE; AN332; page 63
Returns
RDSINT status

◆ getTuneCompleteTriggered()

bool SI4735::getTuneCompleteTriggered ( )
inline

Get the Tune Complete status.

Seek/Tune Complete Interrupt; 1 = Tune complete has been triggered.

Returns
STCINT status

◆ getStatusError()

bool SI4735::getStatusError ( )
inline

Get the Status Error.

Return the Error flag (true or false) of status of the least Tune or Seek

Returns
Error flag

◆ getStatusCTS()

bool SI4735::getStatusCTS ( )
inline

Gets the Error flag Clear to Send.

Returns
CTS

◆ getACFIndicator()

bool SI4735::getACFIndicator ( )
inline

Returns true if the AFC rails (AFC Rail Indicator).

Returns
true

◆ getBandLimit()

bool SI4735::getBandLimit ( )
inline

Returns true if a seek hit the band limit.

(WRAP = 0 in FM_START_SEEK) or wrapped to the original frequency(WRAP = 1).

Returns
BLTF

◆ getStatusValid()

bool SI4735::getStatusValid ( )
inline

Gets the channel status.

Returns true if the channel is currently valid as determined by the seek/tune properties (0x1403, 0x1404, 0x1108)

Returns
true
false

◆ getReceivedSignalStrengthIndicator()

uint8_t SI4735::getReceivedSignalStrengthIndicator ( )
inline

Returns the value of Received Signal Strength Indicator (dBμV).

Returns
uint8_t

◆ getStatusSNR()

uint8_t SI4735::getStatusSNR ( )
inline

Gets the SNR metric when tune is complete (dB)

Returns the value of the SNR metric when tune is complete (dB).

Returns
uint8_t

◆ getStatusMULT()

uint8_t SI4735::getStatusMULT ( )
inline

Get the Status the M U L T.

Returns the value containing the multipath metric when tune is complete.

Returns
uint8_t

◆ getAntennaTuningCapacitor()

uint8_t SI4735::getAntennaTuningCapacitor ( )
inline

Get the Antenna Tuning Capacitor value.

Returns the current antenna tuning capacitor value.

Returns
uint8_t capacitance

◆ setAvcAmMaxGain()

void SI4735::setAvcAmMaxGain ( )
inline

Sets the Avc Am Max Gain to 48dB.

◆ getCurrentAvcAmMaxGain()

uint8_t SI4735::getCurrentAvcAmMaxGain ( )
inline

Get the current Avc Am Max Gain.

Returns
uint8_t Current AVC gain index value

◆ setAmSoftMuteMaxAttenuation()

void SI4735::setAmSoftMuteMaxAttenuation ( uint8_t  smattn = 0)
inline

Sets the Am Soft Mute Max Attenuation.

This function can be useful to disable Soft Mute. The value 0 disable soft mute.

Specified in units of dB. Default maximum attenuation is 8 dB.

See also
Si47XX PROGRAMMING GUIDE; AN332; page 158.
Parameters
smattnMaximum attenuation to apply when in soft mute

◆ setSsbSoftMuteMaxAttenuation()

void SI4735::setSsbSoftMuteMaxAttenuation ( uint8_t  smattn = 0)
inline

Sets the SSB Soft Mute Max Attenuation object.

Sets maximum attenuation during soft mute (dB). Set to 0 to disable soft mute.

Specified in units of dB. Default maximum attenuation is 8 dB.

Parameters
smattnMaximum attenuation to apply when in soft mute.

◆ isAgcEnabled()

bool SI4735::isAgcEnabled ( )
inline

Checks if the AGC is enabled.

Returns
true if the AGC is enabled

◆ getAgcGainIndex()

uint8_t SI4735::getAgcGainIndex ( )
inline

Gets the current AGC gain index.

Returns
uint8_t The current AGC gain index.

◆ getCurrentRSSI()

uint8_t SI4735::getCurrentRSSI ( )
inline

Get the current receive signal strength (0–127 dBμV)

Returns
uint8_t a value between 0 to 127

◆ getCurrentSNR()

uint8_t SI4735::getCurrentSNR ( )
inline

Gets the current SNR metric (0–127 dB).

Returns
uint8_t SNR value in dB (0-127)

◆ getCurrentRssiDetectLow()

bool SI4735::getCurrentRssiDetectLow ( )
inline

Checks if RSSI detected is LOW.

Returns
true if RSSI is low

◆ getCurrentRssiDetectHigh()

bool SI4735::getCurrentRssiDetectHigh ( )
inline

Checks if RSSI detected is high.

Returns
true if RSSI detected is high

◆ getCurrentSnrDetectLow()

bool SI4735::getCurrentSnrDetectLow ( )
inline

Checks if SNR detect is low.

Returns
true if SNR detected is low

◆ getCurrentSnrDetectHigh()

bool SI4735::getCurrentSnrDetectHigh ( )
inline

Checks if SNR detect is high.

Returns
true if SNR detect is high

◆ getCurrentValidChannel()

bool SI4735::getCurrentValidChannel ( )
inline

Checks if the current channel is valid.

Returns
true if the current channel is valid

◆ getCurrentAfcRailIndicator()

bool SI4735::getCurrentAfcRailIndicator ( )
inline

AFC Rail Indicator.

Returns
true or false

◆ getCurrentSoftMuteIndicator()

bool SI4735::getCurrentSoftMuteIndicator ( )
inline

Soft Mute Indicator.

Indicates soft mute is engaged.

Returns
true if soft mute indicates is engaged.

◆ getCurrentStereoBlend()

uint8_t SI4735::getCurrentStereoBlend ( )
inline

Gets the value of the amount of stereo blend in % (100 = full stereo, 0 = full mono).

Returns
uint8_t value (0 to 100)

◆ getCurrentPilot()

bool SI4735::getCurrentPilot ( )
inline

Checks the current pilot.

Indicates stereo pilot presence.

Returns
true if stereo pilot presence has detected

◆ getCurrentMultipath()

uint8_t SI4735::getCurrentMultipath ( )
inline

Gets the current Multipath.

Contains the current multipath metric. (0 = no multipath; 100 = full multipath)

Returns
uint8_t value (0 to 100)

◆ getCurrentSignedFrequencyOffset()

uint8_t SI4735::getCurrentSignedFrequencyOffset ( )
inline

◆ getCurrentMultipathDetectLow()

bool SI4735::getCurrentMultipathDetectLow ( )
inline

Signed frequency offset (kHz).

◆ getCurrentMultipathDetectHigh()

bool SI4735::getCurrentMultipathDetectHigh ( )
inline

Multipath Detect Low.

◆ getCurrentBlendDetectInterrupt()

bool SI4735::getCurrentBlendDetectInterrupt ( )
inline

Multipath Detect High.

◆ getFirmwarePN()

uint8_t SI4735::getFirmwarePN ( )
inline

Blend Detect Interrupt.

◆ getFirmwareFWMAJOR()

uint8_t SI4735::getFirmwareFWMAJOR ( )
inline

RESP1 - Part Number (HEX)

◆ getFirmwareFWMINOR()

uint8_t SI4735::getFirmwareFWMINOR ( )
inline

RESP2 - Returns the Firmware Major Revision (ASCII).

◆ getFirmwarePATCHH()

uint8_t SI4735::getFirmwarePATCHH ( )
inline

RESP3 - Returns the Firmware Minor Revision (ASCII).

◆ getFirmwarePATCHL()

uint8_t SI4735::getFirmwarePATCHL ( )
inline

RESP4 - Returns the Patch ID High byte (HEX).

◆ getFirmwareCMPMAJOR()

uint8_t SI4735::getFirmwareCMPMAJOR ( )
inline

RESP5 - Returns the Patch ID Low byte (HEX).

◆ getFirmwareCMPMINOR()

uint8_t SI4735::getFirmwareCMPMINOR ( )
inline

RESP6 - Returns the Component Major Revision (ASCII).

◆ getFirmwareCHIPREV()

uint8_t SI4735::getFirmwareCHIPREV ( )
inline

RESP7 - Returns the Component Minor Revision (ASCII).

◆ getCurrentVolume()

uint8_t SI4735::getCurrentVolume ( )
inline

◆ getTuneFrequencyFast()

uint8_t SI4735::getTuneFrequencyFast ( )
inline

◆ setTuneFrequencyFast()

void SI4735::setTuneFrequencyFast ( uint8_t  FAST)
inline

Returns the FAST tuning status.

◆ getTuneFrequencyFreeze()

uint8_t SI4735::getTuneFrequencyFreeze ( )
inline

FAST Tuning. If set, executes fast and invalidated tune. The tune status will not be accurate.

◆ setTuneFrequencyFreeze()

void SI4735::setTuneFrequencyFreeze ( uint8_t  FREEZE)
inline

Returns the FREEZE status.

◆ getRdsReceived()

bool SI4735::getRdsReceived ( )
inline

Get the Rds Received FIFO.

if FIFO is 1, it means the minimum number of groups was filled

Returns
true if minimum number of groups was filled.

Referenced by getRdsPI(), getRdsText0A(), and getRdsText2A().

◆ getRdsSyncLost()

bool SI4735::getRdsSyncLost ( )
inline

Get the Rds Sync Lost object.

returns true (1) if Lost RDS synchronization is detected.

Returns
true if Lost RDS synchronization detected.

◆ getRdsSyncFound()

bool SI4735::getRdsSyncFound ( )
inline

Get the Rds Sync Found.

return true if found RDS synchronization

Returns
true if found RDS synchronization

◆ getRdsNewBlockA()

bool SI4735::getRdsNewBlockA ( )
inline

Get the Rds New Block A.

Returns true if valid Block A data has been received.

Returns
true or false

Referenced by getRdsPI().

◆ getRdsNewBlockB()

bool SI4735::getRdsNewBlockB ( )
inline

Get the Rds New Block B.

Returns true if valid Block B data has been received.

Returns
true or false

◆ getRdsSync()

bool SI4735::getRdsSync ( )
inline

Get the Rds Sync.

Returns true if RDS currently synchronized.

Returns
true or false

◆ getGroupLost()

bool SI4735::getGroupLost ( )
inline

Get the Group Lost.

Returns true if one or more RDS groups discarded due to FIFO overrun.

Returns
true or false

◆ getNumRdsFifoUsed()

uint8_t SI4735::getNumRdsFifoUsed ( )
inline

Get the Num Rds Fifo Used.

Return the number of RDS FIFO used

Returns
uint8_t Total RDS FIFO used

Field Documentation

◆ rds_buffer2A

char SI4735::rds_buffer2A[65]
protected

RDS Radio Text buffer - Program Information.

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

◆ rds_buffer2B

char SI4735::rds_buffer2B[33]
protected

RDS Radio Text buffer - Station Informaation.

Referenced by clearRdsBuffer2B(), and getRdsText2B().

◆ rds_buffer0A

char SI4735::rds_buffer0A[9]
protected

RDS Basic tuning and switching information (Type 0 groups)

Referenced by clearRdsBuffer0A(), and getRdsText0A().

◆ rds_time

char SI4735::rds_time[20]
protected

RDS date time received information.

Referenced by getRdsTime().

◆ rdsTextAdress2A

int SI4735::rdsTextAdress2A
protected

rds_buffer2A current position

Referenced by getRdsText(), and getRdsText2A().

◆ rdsTextAdress2B

int SI4735::rdsTextAdress2B
protected

rds_buffer2B current position

Referenced by getRdsText2B().

◆ rdsTextAdress0A

int SI4735::rdsTextAdress0A
protected

rds_buffer0A current position

Referenced by getRdsText0A().

◆ deviceAddress

int16_t SI4735::deviceAddress = SI473X_ADDR_SEN_LOW
protected

current I2C buss address

◆ maxDelaySetFrequency

uint16_t SI4735::maxDelaySetFrequency = MAX_DELAY_AFTER_SET_FREQUENCY
protected

◆ maxDelayAfterPouwerUp

uint16_t SI4735::maxDelayAfterPouwerUp = MAX_DELAY_AFTER_POWERUP
protected

◆ lastTextFlagAB

uint8_t SI4735::lastTextFlagAB
protected

◆ resetPin

uint8_t SI4735::resetPin
protected

pin used on Arduino Board to RESET the Si47XX device

◆ interruptPin

uint8_t SI4735::interruptPin
protected

pin used on Arduino Board to control interrupt. If -1, interrupt is no used.

◆ currentTune

uint8_t SI4735::currentTune
protected

tell the current tune (FM, AM or SSB)

◆ currentMinimumFrequency

uint16_t SI4735::currentMinimumFrequency
protected

minimum frequency of the current band

◆ currentMaximumFrequency

uint16_t SI4735::currentMaximumFrequency
protected

maximum frequency of the current band

◆ currentWorkFrequency

uint16_t SI4735::currentWorkFrequency
protected

current frequency

◆ currentStep

uint16_t SI4735::currentStep
protected

current steps

◆ lastMode

uint8_t SI4735::lastMode = -1
protected

Store the last mode used.

◆ currentAvcAmMaxGain

uint8_t SI4735::currentAvcAmMaxGain = 48
protected

Automatic Volume Control Gain for AM - Default 48.

◆ currentFrequency

si47x_frequency SI4735::currentFrequency
protected

data structure to get current frequency

◆ currentFrequencyParams

si47x_set_frequency SI4735::currentFrequencyParams
protected

◆ currentRqsStatus

si47x_rqs_status SI4735::currentRqsStatus
protected

current Radio SIgnal Quality status

◆ currentStatus

si47x_response_status SI4735::currentStatus
protected

current device status

◆ firmwareInfo

si47x_firmware_information SI4735::firmwareInfo
protected

firmware information

◆ currentRdsStatus

si47x_rds_status SI4735::currentRdsStatus
protected

current RDS status

◆ currentAgcStatus

si47x_agc_status SI4735::currentAgcStatus
protected

current AGC status

◆ currentSSBMode

si47x_ssb_mode SI4735::currentSSBMode
protected

indicates if USB or LSB

◆ powerUp

si473x_powerup SI4735::powerUp
protected

◆ volume

uint8_t SI4735::volume = 32
protected

◆ currentAudioMode

uint8_t SI4735::currentAudioMode = SI473X_ANALOG_AUDIO
protected

current audio mode used (ANALOG or DIGITAL or both)

◆ currentSsbStatus

uint8_t SI4735::currentSsbStatus
protected

◆ controlMcu

bool SI4735::controlMcu = false
protected

Referenced by setMcuControl().

◆ controlMcuPin

int8_t SI4735::controlMcuPin
protected

◆ audioMuteMcuPin

int8_t SI4735::audioMuteMcuPin = -1
protected

◆ controlMcuClock

uint32_t SI4735::controlMcuClock
protected

The documentation for this class was generated from the following files: