Thought of hacking a Digital Radio Tuner and see how it works.
The tuner card had IC RDA5807M and works at 3.3 Volts.
I have made a library to read and write data bytes using the schematics and source code attached and it has following functions.
Function to set Initialize - void RDA5807P_Init(void);
Function to set FM frequency - RDA5807P_SetFreq(9500);
Function to set Seek Fwd/Rev- void RDA5807_FM_seek(short int freq,int volume,int seek_th); //Seek_th - See threshold
When the initialization is done, the IC starts scanning all the stations which can be read from register 0x0AH.
Status register 0x0AH and 0x0BH are read to know what is the current channel and signal strength.
Through the program we have checked that the Hex values of each register (0x02H- 0x07H) are being calculated correctly by REG2,REG3 and REG5 functions.These hex values are written to RDA5807M .
I am able to read/write data from the device but the IC RDA5807M is always working in Seek mode and I have debugged following problems.
- Writing to Seek On/Of bit in 0x02H has no effect.
Even if we are programming BAND (10)- 76-108 Mhz, the read channel data is always tuned according to BAND(00) - 87-108 Mhz.
Writing to volume[3:0] bits for which are for DAC gain control for scaling volume effects Tuning.
I have attached the code If anybody is working on a similar thing or have done it in past please give a quick look and see if I am doing any mistake in software.As I do not know how to tune RDA5807M because they have not given much information in their datasheet about how to tune etc..
I have also attached a reference code in .rar which I found on-line.It might help.
I am very much interested to work if anybody from my area i.e Azadpur, New Delhi , India is willing to contribute or make anything similar for him/her self.In fact we have some students working with us part time and some more are joining for intern-ship in Embedded System soon.
This is the first project I have shared with Arduino community so I hope I have not skipped any rules.