RDA5807M FM Radio library with RDS.

Dependents:   RDA5807M-FM-Radio EFM32 RDA5807M RDS Radio

Example program here:

https://developer.mbed.org/users/star297/code/RDA5807M-FM-Radio/

Revision:
0:527aa96336ac
Child:
1:2c8a64e71afd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RDA5807M.h	Tue Mar 31 22:26:32 2015 +0000
@@ -0,0 +1,91 @@
+
+#include "mbed.h"
+
+class RDA5807M
+{
+    public:
+
+    RDA5807M(PinName sda, PinName scl, int addr);
+    
+    ~RDA5807M();
+
+//--------------------------------------------------------------
+// Global Functions
+//--------------------------------------------------------------
+void WriteAll(void);
+void WriteReg(int address,int data);
+void Init(void);
+void Read(void);
+void Reset(void);
+void PowerOn(void);
+void PowerOff(void);
+void RDS(void);
+void Mute(void);
+void Mono(void);
+void Softmute(void);
+void SoftBlend(void);
+void BassBoost(void);
+void Volume(int volume);
+void SeekUp(void);
+void SeekDown(void);
+void Frequency(float Freq);
+void Channel(void);
+
+//--------------------------------------------------------------
+// Definitions
+//--------------------------------------------------------------
+/* I2C Address */
+#define RDASequential     0x20  //Current Working Communication
+#define RDARandom         0x22  //To Do Soon
+#define TEA5767Mode       0x60  //Not implemented
+/* Initialization Options */
+#define StartingFreq    87.000
+#define EndingFreq      108.00
+#define DefaultFreq     87.000
+#define StartingVolume  0x4
+/* RDA5807M Function Code  */
+/* Register 0x02H (16Bits) */
+#define RDA_DHIZ        0x8000
+#define RDA_MUTE        0x8000
+#define RDA_MONO_ON     0x2000
+#define RDA_MONO_OFF    0xDFFF
+#define RDA_BASS_ON     0x1000
+#define RDA_BASS_OFF    0xEFFF
+#define RDA_RCLK_MODE   0x0800
+#define RDA_RCLK_DIRECT 0x0400
+#define RDA_SEEK_UP     0x0300
+#define RDA_SEEK_DOWN   0x0100
+#define RDA_SEEK_STOP   0xFCFF
+#define RDA_SEEK_WRAP   0x0080
+#define RDA_SEEK_NOWRAP 0xFF7F
+#define RDA_CLK_0327    0x0000
+#define RDA_CLK_1200    0x0010
+#define RDA_CLK_2400    0x0050
+#define RDA_CLK_1300    0x0020
+#define RDA_CLK_2600    0x0060
+#define RDA_CLK_1920    0x0030
+#define RDA_CLK_3840    0x0070
+#define RDA_RDS_ON      0x0008
+#define RDA_RDS_OFF     0xFFF7
+#define RDA_NEW         0x0004
+#define RDA_RESET       0x0002
+#define RDA_POWER       0x0001
+/* Register 0x03H (16Bits) */
+#define RDA_TUNE_ON     0x0010
+#define RDA_TUNE_OFF    0xFFEF
+//--------------------------------------------------------------
+// Global Variables
+//--------------------------------------------------------------
+//
+int rdsready,tuneok,nochannel,rdssynchro,stereo,signal,fmready,fmstation,rdsblockerror;
+float freq;
+unsigned int RDA5807M_WriteReg[8],RDA5807M_ReadReg[7],RDA5807M_RDS[32];
+
+//--------------------------------------------------------------
+
+private:
+
+I2C i2c;
+int addr; 
+
+};