23 #include <Adafruit_I2CDevice.h> 28 #define SI4710_ADDR0 0x11 29 #define SI4710_ADDR1 0x63 30 #define SI4710_STATUS_CTS 0x80 33 #define SI4710_CMD_POWER_UP \ 35 #define SI4710_CMD_GET_REV 0x10 37 #define SI4710_CMD_POWER_DOWN 0x11 38 #define SI4710_CMD_SET_PROPERTY 0x12 39 #define SI4710_CMD_GET_PROPERTY 0x13 40 #define SI4710_CMD_GET_INT_STATUS 0x14 41 #define SI4710_CMD_PATCH_ARGS \ 43 #define SI4710_CMD_PATCH_DATA \ 45 #define SI4710_CMD_TX_TUNE_FREQ 0x30 46 #define SI4710_CMD_TX_TUNE_POWER \ 48 #define SI4710_CMD_TX_TUNE_MEASURE \ 50 #define SI4710_CMD_TX_TUNE_STATUS \ 52 #define SI4710_CMD_TX_ASQ_STATUS \ 55 #define SI4710_CMD_TX_RDS_BUFF \ 57 #define SI4710_CMD_TX_RDS_PS 0x36 59 #define SI4710_CMD_GPO_CTL 0x80 60 #define SI4710_CMD_GPO_SET 0x81 63 #define SI4713_PROP_GPO_IEN 0x0001 64 #define SI4713_PROP_DIGITAL_INPUT_FORMAT \ 66 #define SI4713_PROP_DIGITAL_INPUT_SAMPLE_RATE \ 68 #define SI4713_PROP_REFCLK_FREQ \ 71 #define SI4713_PROP_REFCLK_PRESCALE \ 74 #define SI4713_PROP_TX_COMPONENT_ENABLE \ 76 #define SI4713_PROP_TX_AUDIO_DEVIATION \ 79 #define SI4713_PROP_TX_PILOT_DEVIATION \ 82 #define SI4713_PROP_TX_RDS_DEVIATION \ 85 #define SI4713_PROP_TX_LINE_LEVEL_INPUT_LEVEL \ 88 #define SI4713_PROP_TX_LINE_INPUT_MUTE \ 92 #define SI4713_PROP_TX_PREEMPHASIS \ 95 #define SI4713_PROP_TX_PILOT_FREQUENCY \ 97 #define SI4713_PROP_TX_ACOMP_ENABLE \ 99 #define SI4713_PROP_TX_ACOMP_THRESHOLD \ 101 #define SI4713_PROP_TX_ATTACK_TIME \ 104 #define SI4713_PROP_TX_RELEASE_TIME \ 107 #define SI4713_PROP_TX_ACOMP_GAIN \ 110 #define SI4713_PROP_TX_LIMITER_RELEASE_TIME \ 112 #define SI4713_PROP_TX_ASQ_INTERRUPT_SOURCE \ 114 #define SI4713_PROP_TX_ASQ_LEVEL_LOW \ 117 #define SI4713_PROP_TX_ASQ_DURATION_LOW \ 120 #define SI4713_PROP_TX_AQS_LEVEL_HIGH \ 123 #define SI4713_PROP_TX_AQS_DURATION_HIGH \ 126 #define SI4713_PROP_TX_RDS_INTERRUPT_SOURCE \ 129 #define SI4713_PROP_TX_RDS_PI 0x2C01 130 #define SI4713_PROP_TX_RDS_PS_MIX \ 132 #define SI4713_PROP_TX_RDS_PS_MISC \ 134 #define SI4713_PROP_TX_RDS_PS_REPEAT_COUNT \ 136 #define SI4713_PROP_TX_RDS_MESSAGE_COUNT \ 139 #define SI4713_PROP_TX_RDS_PS_AF \ 141 #define SI4713_PROP_TX_RDS_FIFO_SIZE \ 162 void tuneFM(uint16_t freqKHz);
166 void setTXpower(uint8_t pwr, uint8_t antcap = 0);
171 void beginRDS(uint16_t programID = 0xADAF);
186 void sendCommand(uint8_t len);
189 uint8_t _i2ccommand[10];
190 Adafruit_I2CDevice* i2c_dev = NULL;
uint8_t currAntCap
current antenna capacitor
Definition: Adafruit_Si4713.h:176
void setRDSbuffer(const char *s)
Queries the status of the RDS Group Buffer and loads new data into buffer.
Definition: Adafruit_Si4713.cpp:273
void readASQ(void)
Queries the TX status and input audio signal metrics.
Definition: Adafruit_Si4713.cpp:156
uint16_t currFreq
current frequency
Definition: Adafruit_Si4713.h:175
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:382
uint8_t getStatus(void)
Read interrupt status bits.
Definition: Adafruit_Si4713.cpp:306
uint8_t currNoiseLevel
current noise level
Definition: Adafruit_Si4713.h:176
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:171
void reset()
Resets the registers to default settings and puts chip in powerdown mode.
Definition: Adafruit_Si4713.cpp:73
uint8_t currdBuV
current BuV
Definition: Adafruit_Si4713.h:176
bool begin(uint8_t addr=SI4710_ADDR1, TwoWire *theWire=&Wire)
Setups the i2c and calls powerUp function.
Definition: Adafruit_Si4713.cpp:51
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:223
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:190
uint8_t currASQ
current ASQ
Definition: Adafruit_Si4713.h:176
void setProperty(uint16_t p, uint16_t v)
Set chip property over I2C.
Definition: Adafruit_Si4713.cpp:91
void setTXpower(uint8_t pwr, uint8_t antcap=0)
Sets the output power level and tunes the antenna capacitor.
Definition: Adafruit_Si4713.cpp:145
void tuneFM(uint16_t freqKHz)
Tunes to given transmit frequency.
Definition: Adafruit_Si4713.cpp:127
Class that stores state and functions for interacting with Si4713 breakout.
Definition: Adafruit_Si4713.h:152
uint8_t getRev()
Get the hardware revision code from the device using SI4710_CMD_GET_REV.
Definition: Adafruit_Si4713.cpp:345
int8_t currInLevel
current IN level
Definition: Adafruit_Si4713.h:180
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:320
#define SI4710_ADDR1
if SEN is high, default!
Definition: Adafruit_Si4713.h:29
void setGPIO(uint8_t x)
Sets GP1 / GP2 output level (low or high).
Definition: Adafruit_Si4713.cpp:396
void setRDSstation(const char *s)
Set up the RDS station string.
Definition: Adafruit_Si4713.cpp:244