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/

RDA5807M.h

Committer:
star297
Date:
2015-03-31
Revision:
0:527aa96336ac
Child:
1:2c8a64e71afd

File content as of revision 0:527aa96336ac:


#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; 

};