Loading...
Pages: [1]   Go Down
Author Topic: Why the Sparkfun Si4735 radio shield is all wrong  (Read 1169 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 9
Posts: 1001
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This is about the Sparkfun "SI4735 AM & FM Receiver Shield" is a FM(RDS/RBDS)/AM/SW/LW radio with the Si4735 chip.
UPDATE: Sparkfun no longer sells that shield. This post is here for reference only.

Si4735 chip: http://www.silabs.com/products/audiovideo/amfmreceivers/Pages/Si473435.aspx

This shield has known problems. But they could not explain why my reception was so poor. Most FM radio broadcast antennas are 40km away from where I live, and the shield performed less than other radios.
I had better FM reception if I connected the antenna to a certain ground point on the board. So I looked into the design of the board and found why the reception was so poor.

Known problems
  • The Si4735 has internal pull-up and pull-down resistors to make it start in I2C mode. The Sparkfun shield uses SPI mode. Because of that seven pins are needed, instead of 2 or 3 (I2C + INT). The newest version of this chip doesn't even have the SPI mode anymore.
  • Reading data from the GP01 pin is a problem for 5V Arduino boards. This can be solved by a diode from D12 to GP01. Also the software has to be changed to set the internal pullup resistor and the SPI interface has to be set to a low clock frequency to make it work.
  • The audio outputs LOUT and ROUT go to the connector without capacitor. Since they have a DC component, it could be a problem for some amplifiers.
  • The AREF is shortcut to ground, making all analog inputs on the Arduino board invalid.

Other problems
  • The FM circuit on the Sparkfun board is copied from the design guide AN383 (Rev 0.6, page 46). However that circuit is for a whip antenna with known parameters. The values for the components has to be calculated. The circuit could have a peak for the FM radio signals and a low-pass filter should not block the maximum SW frequency. Sparkfun simply copied the example values of the components, and didn't read the text with that schematic. This is a bad mistake. The signal gets lost with many sorts of antennas, and with a cable signal.
  • The FM circuit was even badly copied. The switch in the example shortcuts the 33pF if the ferrite antenne is used. The Sparkfun shield does not. Also the ESD diodes are omitted. For a well designed radio the ESD diodes must be added.
  • I can see only a few vias on the board that connects the ground planes on both sides. For a radio it must have many more.  The biggest problem is near the RFGND pin. The components (for example the crystal with the two capacitors) should be placed differently for better radio ground paths.
  • The 74HC4050 (signal level shifter) has an open input. One port is not used and the input should be tied to ground or Vcc.
  • The power for the Si4735 chip (Vio and Vdd) is an output pin of the 74HC4050. A capacitor of 10uF is used for decoupling. It is not a good design to have an digital output charge a capacitor of 10uF. Also a ceramic capacitor is missing. A capacitor of at least 22nF is recommended.
  • The 74HC4050 itself is not decoupled.
  • The 74HC4050D absolute maximum output current is 25mA. Charging the capacitor of 10uF is therefor a very bad idea. The Si4735 could require 23mA plus the current of output pins (I measured 19.3mA at 3.3V). So the output current is even not enough without the capacitor. Because of this, the Si4735 is running at 2.3V instead of 3.3V. This is the main reason that the GP01 pin can not be read by the Arduino without modification. The Vdd should be at least 2.7V, so the Si4735 is not even running at a minimum required voltage. This causes for example a bad RDS detection. This is a major mistake.
  • The digital audio output can not be used. It would be simple to have breakout pins for the digital audio.
  • Metal shielding could improve the FM radio. For example a metal shield over the radio parts, and the possibility to connect a shielded cable.

There are also problems with the software. At Arduino we have the Playground section and the forum. That way a single place for the newest software could be created. The software for the Si4735 has a few versions, each with different improvements.

A good project with the Si4735 is this one: https://umdrive.memphis.edu/tcanaday/www/Projects/Si4735_Radio/si4735.html But it lacks protection diodes and can't select ferrite antennas for AM and LW.

Question: Could I use reed relays to switch two ferrite antennas (AM and LW) ?
« Last Edit: May 17, 2013, 03:30:41 am by Krodal » Logged

São Paulo/SP/Brazil
Offline Offline
Sr. Member
****
Karma: 2
Posts: 293
Brazilian Arduino Team
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

+1... it's a shame sparkfun selling this shield as it is.

look, is all open-source. what do you think in developing our own si4735 board?

I'm not good at all designing PCB but I can help with the schematic. we can use itead studio and open source the pcb so anyone can buy.

a good start is AN383 of silabs that has some tips on design and a proposed schematic. another thing is to make a BOM on digikey and mouser to anyone can buy and solder by yourself.

I suggest using big SMD components to easy soldering.
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1001
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I don't know if I can make a good RF board.
If perhaps 5 people will use it, it is not worth it.

The breakout board (not the shield) of the SI4735 is good for making your own design.
The link in my first post is to someone who used the breakout board.

But the SI4735 still lacks SSB for the shortwave. And it can't receive the CB band (27Mc).

I bought a used radio with SSB and and was going to connect the buttons to an Arduino. But to do that I would have to take the radio completely apart and it still looked as if it was new. So I don't have an Arduino controlled radio at the moment.
Logged

São Paulo/SP/Brazil
Offline Offline
Sr. Member
****
Karma: 2
Posts: 293
Brazilian Arduino Team
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The problem is sparkfun that is not selling breakout anymore. I'll have to buy an "adapter board" and solder by myself.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Krodal and Wagner,

I'm actually trying to design my own schematic to use with the Si4735.  I'm trying to construct a single station radio using the Si4735 chip with an Atmega328 and an Analog Devices ssm2305 class d amp. The goal is to have a compact radio that can be tuned once in the coding and powers on to a specific FM station. Basically this project is coming from having used the Si4735 shield that Sparkfun was selling in this manner, but now trying to pair it down with fewer components.  I thought this would be a good place to post a picture of my current schematic for some feedback since you guys have a lot to say on the topic. 
Any comments on the design would be great! 
Thanks!
Logged

Offline Offline
Edison Member
*
Karma: 9
Posts: 1001
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Did you read the document about the antenna circuit.
The 180nH and the 18pF are for a 'tuned' antenna circuit.
It could increase the sensitivity, but if there is a mismatch, the reception gets worse.

I would like to see protection diodes for the antenna input.

Why is the green led on the SCK pin ?
You have so many unused pins, you might as well use another.

I think that sometimes a diode is used at the reset circuit. Parallel to R1. See the schematic of the Arduino Uno.
Logged

Pages: [1]   Go Up
Print
 
Jump to: