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/
Diff: RDA5807M.h
- 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; + +};