AUDIO LIB
Fork of VS1053 by
Embed:
(wiki syntax)
Show/hide line numbers
VS1053.h
00001 #ifndef VS1053_H 00002 #define VS1053_H 00003 00004 #define FIXED_VOL 00005 00006 // the following two is exclusive use 00007 #define VS_PATCH 00008 //#define VS_SPECANA 00009 00010 #include "mbed.h" 00011 //#include "SDFileSystem.h" 00012 #include "string" 00013 #include "string.h" 00014 00015 // SCI register address assignment 00016 #define SCI_MODE 0x0 00017 #define SCI_STATUS 0x1 00018 #define SCI_BASS 0x2 00019 #define SCI_CLOCKF 0x3 00020 #define SCI_DECODE_TOME 0x4 00021 #define SCI_AUDATA 0x5 00022 #define SCI_WRAM 0x6 00023 #define SCI_WRAMADDR 0x7 00024 #define SCI_HDAT0 0x8 00025 #define SCI_HDAT1 0x9 00026 #define SCI_AIADDR 0xA 00027 #define SCI_VOL 0xB 00028 #define SCI_AICTRL0 0xC 00029 #define SCI_AICTRL1 0xD 00030 #define SCI_AICTRL2 0xE 00031 #define SCI_AICTRL3 0xF 00032 00033 00034 //SCI_MODE register bits as of p.38 of the datasheet 00035 #define SM_DIFF 0x0001 00036 #define SM_LAYER12 0x0002 00037 #define SM_RESET 0x0004 00038 #define SM_CANCEL 0x0008 00039 #define SM_EARSPEAKER_LO 0x0010 00040 #define SM_TESTS 0x0020 00041 #define SM_STREAM 0x0040 00042 #define SM_EARSPEAKER_HI 0x0080 00043 #define SM_DACT 0x0100 00044 #define SM_SDIORD 0x0200 00045 #define SM_SDISHARE 0x0400 00046 #define SM_SDINEW 0x0800 00047 #define SM_ADPCM 0x1000 00048 #define SM_B13 0x2000 00049 #define SM_LINE1 0x4000 00050 #define SM_CLK_RANGE 0x8000 00051 00052 //SCI_CLOCKF register bits as of p.42 of the datasheet 00053 #define SC_MULT_XTALI 0x0000 00054 #define SC_MULT_XTALIx20 0x2000 00055 #define SC_MULT_XTALIx25 0x4000 00056 #define SC_MULT_XTALIx30 0x6000 00057 #define SC_MULT_XTALIx35 0x8000 00058 #define SC_MULT_XTALIx40 0xA000 00059 #define SC_MULT_XTALIx45 0xC000 00060 #define SC_MULT_XTALIx50 0xE000 00061 // 00062 #define SC_ADD_NOMOD 0x0000 00063 #define SC_ADD_10x 0x0800 00064 #define SC_ADD_15x 0x1000 00065 #define SC_ADD_20x 0x1800 00066 00067 00068 // Extra Parameter in X memory (refer to p.58 of the datasheet) 00069 #define para_chipID_0 0x1E00 00070 #define para_chipID_1 0x1E01 00071 #define para_version 0x1E02 00072 #define para_config1 0x1E03 00073 #define para_playSpeed 0x1E04 00074 #define para_byteRate 0x1E05 00075 #define para_endFillByte 0x1E06 00076 // 00077 #define para_positionMsec_0 0x1E27 00078 #define para_positionMsec_1 0x1E28 00079 #define para_resync 0x1E29 00080 00081 00082 class VS1053 { 00083 00084 public: 00085 VS1053( 00086 //PinName _mmosi, PinName _mmiso, PinName _ssck, PinName _ccs, const char* _name, 00087 PinName _mosi, PinName _miso, PinName _sck, PinName _cs, PinName _rst, PinName _dreq, 00088 PinName _dcs, PinName _vol); 00089 00090 void cs_low(void); 00091 void cs_high(void); 00092 void dcs_low(void); 00093 void dcs_high(void); 00094 void sci_en(void); 00095 void sci_dis(void); 00096 void sdi_en(void); 00097 void sdi_dis(void); 00098 00099 void sci_initialise(void); 00100 void sdi_initialise(void); 00101 void reset(void); 00102 void power_down(void); 00103 00104 void sci_write(unsigned char, unsigned short int); 00105 void sdi_write(unsigned char); 00106 unsigned short int sci_read(unsigned short int); 00107 void sine_test_activate(unsigned char); 00108 void volume(uint8_t left, uint8_t right); 00109 void sine_test_deactivate(void); 00110 void writeStream(unsigned char *, int); 00111 #if 0 00112 void putcStream(unsigned char); 00113 #endif 00114 void terminateStream(void); 00115 // void write_plugin(const unsigned short *, unsigned int); 00116 void initialize(void); 00117 00118 DigitalIn _DREQ; 00119 DigitalOut _RST; 00120 AnalogIn _VOL; 00121 00122 protected: 00123 unsigned short int wram_read(unsigned short int); 00124 void wram_write(unsigned short int, unsigned short int); 00125 void write_plugin(const unsigned short *, unsigned int); 00126 SPI _spi; 00127 DigitalOut _CS; 00128 DigitalOut _DCS; 00129 int firstTime; 00130 00131 }; 00132 #endif
Generated on Sat Jul 16 2022 19:45:30 by 1.7.2