10 years, 8 months ago.

SI4703

Hi,

I'm trying to control the SI4703 radio chip with the mbed lpc 1768 and I2C bus. I can't figure out how to power up the SI4703.

Anyone for help?

Here are the links to the datasheet with registers (page 23)

https://www.sparkfun.com/datasheets/BreakoutBoards/Si4702-03-C19-1.pdf

and the AN230 sheet with a description how to power it up (page 12)

http://www.silabs.com/Support%20Documents/TechnicalDocs/AN230.pdf

I don't know how to handle the registers.

1 Answer

10 years, 8 months ago.

Try here, the programming should be very similar.

https://developer.mbed.org/users/kpatel70/notebook/si4735-digital-fm-radio-receiver-with-rdsrbds/

Thanks for your answer. Still got the problem of powering up the chip via I2C bus.

Is there a possibility to set SDA (pin 9/ pin 28) manually to low ? To power it up I need SDA on a low level and reset on a high level. In the example for the arduino uno, first they initialise pin A4 as a digital output, then they use it for SDA. Here's the example code:

void Si4703_Breakout::si4703_init() { pinMode(_resetPin, OUTPUT); pinMode(_sdioPin, OUTPUT); SDIO is connected to A4 for I2C digitalWrite(_sdioPin, LOW); A low SDIO indicates a 2-wire interface digitalWrite(_resetPin, LOW); Put Si4703 into reset delay(1); Some delays while we allow pins to settle digitalWrite(_resetPin, HIGH); Bring Si4703 out of reset with SDIO set to low and SEN pulled high with on-board resistor delay(1); Allow Si4703 to come out of reset

Wire.begin(); Now that the unit is reset and I2C inteface mode, we need to begin I2C

posted by Sepp Hallo 10 Apr 2015

The radio.begin(FM); will reset and start the device in the demo program. Make sure you have pull up resistors on the i2c SDA and SCL lines, value of 4k7 will do.

posted by Paul Staron 10 Apr 2015