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