24 #include <Adafruit_I2CDevice.h> 27 #define SI4710_ADDR0 0x11 28 #define SI4710_ADDR1 0x63 29 #define SI4710_STATUS_CTS 0x80 32 #define SI4710_CMD_POWER_UP \ 34 #define SI4710_CMD_GET_REV 0x10 36 #define SI4710_CMD_POWER_DOWN 0x11 37 #define SI4710_CMD_SET_PROPERTY 0x12 38 #define SI4710_CMD_GET_PROPERTY 0x13 39 #define SI4710_CMD_GET_INT_STATUS 0x14 40 #define SI4710_CMD_PATCH_ARGS \ 42 #define SI4710_CMD_PATCH_DATA \ 44 #define SI4710_CMD_TX_TUNE_FREQ 0x30 45 #define SI4710_CMD_TX_TUNE_POWER \ 47 #define SI4710_CMD_TX_TUNE_MEASURE \ 49 #define SI4710_CMD_TX_TUNE_STATUS \ 51 #define SI4710_CMD_TX_ASQ_STATUS \ 54 #define SI4710_CMD_TX_RDS_BUFF \ 56 #define SI4710_CMD_TX_RDS_PS 0x36 58 #define SI4710_CMD_GPO_CTL 0x80 59 #define SI4710_CMD_GPO_SET 0x81 62 #define SI4713_PROP_GPO_IEN 0x0001 63 #define SI4713_PROP_DIGITAL_INPUT_FORMAT \ 65 #define SI4713_PROP_DIGITAL_INPUT_SAMPLE_RATE \ 67 #define SI4713_PROP_REFCLK_FREQ \ 70 #define SI4713_PROP_REFCLK_PRESCALE \ 73 #define SI4713_PROP_TX_COMPONENT_ENABLE \ 75 #define SI4713_PROP_TX_AUDIO_DEVIATION \ 78 #define SI4713_PROP_TX_PILOT_DEVIATION \ 81 #define SI4713_PROP_TX_RDS_DEVIATION \ 84 #define SI4713_PROP_TX_LINE_LEVEL_INPUT_LEVEL \ 87 #define SI4713_PROP_TX_LINE_INPUT_MUTE \ 91 #define SI4713_PROP_TX_PREEMPHASIS \ 94 #define SI4713_PROP_TX_PILOT_FREQUENCY \ 96 #define SI4713_PROP_TX_ACOMP_ENABLE \ 98 #define SI4713_PROP_TX_ACOMP_THRESHOLD \ 100 #define SI4713_PROP_TX_ATTACK_TIME \ 103 #define SI4713_PROP_TX_RELEASE_TIME \ 106 #define SI4713_PROP_TX_ACOMP_GAIN \ 109 #define SI4713_PROP_TX_LIMITER_RELEASE_TIME \ 111 #define SI4713_PROP_TX_ASQ_INTERRUPT_SOURCE \ 113 #define SI4713_PROP_TX_ASQ_LEVEL_LOW \ 116 #define SI4713_PROP_TX_ASQ_DURATION_LOW \ 119 #define SI4713_PROP_TX_AQS_LEVEL_HIGH \ 122 #define SI4713_PROP_TX_AQS_DURATION_HIGH \ 125 #define SI4713_PROP_TX_RDS_INTERRUPT_SOURCE \ 128 #define SI4713_PROP_TX_RDS_PI 0x2C01 129 #define SI4713_PROP_TX_RDS_PS_MIX \ 131 #define SI4713_PROP_TX_RDS_PS_MISC \ 133 #define SI4713_PROP_TX_RDS_PS_REPEAT_COUNT \ 135 #define SI4713_PROP_TX_RDS_MESSAGE_COUNT \ 138 #define SI4713_PROP_TX_RDS_PS_AF \ 140 #define SI4713_PROP_TX_RDS_FIFO_SIZE \ 161 void tuneFM(uint16_t freqKHz);
165 void setTXpower(uint8_t pwr, uint8_t antcap = 0);
170 void beginRDS(uint16_t programID = 0xADAF);
185 void sendCommand(uint8_t len);
188 uint8_t _i2ccommand[10];
189 Adafruit_I2CDevice *i2c_dev = NULL;
uint8_t currAntCap
current antenna capacitor
Definition: Adafruit_Si4713.h:175
void setRDSbuffer(const char *s)
Queries the status of the RDS Group Buffer and loads new data into buffer.
Definition: Adafruit_Si4713.cpp:271
void readASQ(void)
Queries the TX status and input audio signal metrics.
Definition: Adafruit_Si4713.cpp:154
uint16_t currFreq
current frequency
Definition: Adafruit_Si4713.h:174
Adafruit_Si4713(int8_t rstpin=-1)
Instantiates a new Si4713 class.
Definition: Adafruit_Si4713.cpp:38
void setGPIOctrl(uint8_t x)
Configures GP1 / GP2 as output or Hi-Z.
Definition: Adafruit_Si4713.cpp:380
uint8_t getStatus(void)
Read interrupt status bits.
Definition: Adafruit_Si4713.cpp:304
uint8_t currNoiseLevel
current noise level
Definition: Adafruit_Si4713.h:175
void readTuneStatus(void)
Queries the status of a previously sent TX Tune Freq, TX Tune Power, or TX Tune Measure using SI4710_...
Definition: Adafruit_Si4713.cpp:169
void reset()
Resets the registers to default settings and puts chip in powerdown mode.
Definition: Adafruit_Si4713.cpp:71
uint8_t currdBuV
current BuV
Definition: Adafruit_Si4713.h:175
bool begin(uint8_t addr=SI4710_ADDR1, TwoWire *theWire=&Wire)
Setups the i2c and calls powerUp function.
Definition: Adafruit_Si4713.cpp:49
void beginRDS(uint16_t programID=0xADAF)
Begin RDS Sets properties as follows: SI4713_PROP_TX_AUDIO_DEVIATION: 66.25KHz, SI4713_PROP_TX_RDS_DE...
Definition: Adafruit_Si4713.cpp:221
void readTuneMeasure(uint16_t freq)
Measure the received noise level at the specified frequency using SI4710_CMD_TX_TUNE_MEASURE command...
Definition: Adafruit_Si4713.cpp:188
uint8_t currASQ
current ASQ
Definition: Adafruit_Si4713.h:175
void setProperty(uint16_t p, uint16_t v)
Set chip property over I2C.
Definition: Adafruit_Si4713.cpp:89
void setTXpower(uint8_t pwr, uint8_t antcap=0)
Sets the output power level and tunes the antenna capacitor.
Definition: Adafruit_Si4713.cpp:143
void tuneFM(uint16_t freqKHz)
Tunes to given transmit frequency.
Definition: Adafruit_Si4713.cpp:125
Class that stores state and functions for interacting with Si4713 breakout.
Definition: Adafruit_Si4713.h:151
uint8_t getRev()
Get the hardware revision code from the device using SI4710_CMD_GET_REV.
Definition: Adafruit_Si4713.cpp:343
int8_t currInLevel
current IN level
Definition: Adafruit_Si4713.h:179
void powerUp()
Sends power up command to the breakout, than CTS and GPO2 output is disabled and than enable xtal osc...
Definition: Adafruit_Si4713.cpp:318
#define SI4710_ADDR1
if SEN is high, default!
Definition: Adafruit_Si4713.h:28
void setGPIO(uint8_t x)
Sets GP1 / GP2 output level (low or high).
Definition: Adafruit_Si4713.cpp:394
void setRDSstation(const char *s)
Set up the RDS station string.
Definition: Adafruit_Si4713.cpp:242