Si4705 radio receiver - no response

Hemi345

Senior Member
Good morning,

I built a module with one of these ICs and am having trouble getting anything out of it.

The programming guide is at: https://www.silabs.com/documents/public/application-notes/AN332.pdf

On page 207, it states the I2C address when SEN pin = 0, is 0010001b. When SEN = 1, the address is 1100011b.
I have SEN pulled high, so I've tried 11000110 as the address (also tried 00100010 just in case).

On page 64, it details the power on command. Looks like I need to send 2 bytes. Here's what my code looks like:

Code:
#picaxe 20x2
#terminal 9600
#no_data

pause 2000

hi2csetup I2CMASTER, %11000110, i2cfast, i2cbyte

sertxd("Power on",13,10)
'first byte: CTSi disabled,GPO2 disabled, boot normally, use XO, FM rec
'sec byte: opmode = analog audio outputs
hi2cout 0x01,(%00010000,%00000101)

pause 1000

sertxd("GetRev:")
hi2cin 0x10,(b1,b2,b3,b4,b5,b6,b7,b8)
sertxd("1:",#b1,"2:",#b2,"3:",#b3,"4:",#b4,"5:",#b5,"6:",#b6,"7:",#b7,"8:",#b8,13,10)
Does my power on command look correct?

When I try to get the chip revision info, all I get is 255 for each value.

I just had a thought. If I don't tell it to receive all 15 response bytes, would I get the '255' value for the first eight?
Should I change the GetRev command to receive all 15 even I only want to see what the first eight are?
Code:
sertxd("GetRev:")
hi2cin 0x10,(b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15)
sertxd("1:",#b1,"2:",#b2,"3:",#b3,"4:",#b4,"5:",#b5,"6:",#b6,"7:",#b7,"8:",#b8,13,10)
Not near the project at the moment to give it a try. Just curious for ideas on things to try tonight.

BTW, I have an RTC and EEPROM on the same PCB that the PICAXE 20X2 is on and can confirm I2C comms work fine with them, so I believe my wiring is all correct.
Thanks.
 

Hemi345

Senior Member
It's hard to RTFM when it's more like a novel at 302 pages and has other models and protocols mixed in. I did find a section detailing the powerup sequence on page 214. Reset pin needs to be held low for 1/2 second initially, then left to be pulled high by the 10K resistor. Also some programming examples on page 255 that show the reset at the very first step. :rolleyes:

I also found a Sparkfun ard*ino library for the Si4703 that states SDA needs to be low while reset goes high to put it into I2C mode (atleast on the Si4703). If a simple toggle of Reset doesn't allow me to configure the 4705, I'll give that a try.
 

inglewoodpete

Senior Member
Resetting it before sending it the power on command works great :cool:
Glad you got it working. I was going to suggest trying i2cSlow. Often, i2cFast only works on a very compact circuit board, not on a breadboard or only with very short interconnection wiring.
 

Hemi345

Senior Member
This little tuner is pretty sweet. Once I got signs of life, I moved it over to my AXE091 where I have room to connect a small amp and try some things out. Currently looking into decoding the RDS data. This was my first time soldering a 0.50mm pitch QFN package. :eek:
Si4705.jpg
 

Hemi345

Senior Member
No doubt. Through-hole and surface mount stuff that is solderable by an iron is getting scarce. I'm really enjoying that Quick hot air station I bought about a year ago.(y)
 
Top