Saturday, March 28, 2015

RDA5807SP fixed!

Finally had some time to play the the RDA5807SP chip set again.  Attacked the problem from a slightly different direction (probably what I should have done in the first place).  The documentation mentions specific bits (i.e., the chip id) being 0x58.  In dumping the registers to screen, it turns out that I wasn't swapping the 8-bit chunks around properly. 

What helped was the RDA5802 listing at Rockbox.  (Thanks y'all!!) One of the shortcomings of the Chinese programming guide is that it doesn't really address loading of the firmware.  Finding the proper firmware listing wasn't simple.  Getting it to load was somewhat of a guess.

Fixing the byte swapping, plus a couple hours of code pounding, and I now have the following functions working in RDA-mode (not in TEA5767 emulation): init, tune, and status.  It's enough to listen to local radio stations).  I still need to work out the volume, mute/unmute, and seek functions, as well as addressing a serious backlog of writing up the notes

Sunday, March 1, 2015

I2C code on Github

I've been playing with various I2C-based breakout boards.  Finally got around to posting the code on Github.  Currently I've posted code for the following breakout boards:

  • Si4703 FM radio receiver
  • BMP085 temperature/pressure sensor
  • TEA5767 (or RDA5807SP in TEA5767 mode) FM radio receiver

Some of it requires the wiringPi library, though I'm working to remove that dependency (to allow porting the code to the Cubietruck).

Also pending is code for:

  • Si4707 weatherband receiver
  • a generic lightning sensor