AUDIO LIB
Fork of VS1053 by
VS1053.cpp@9:e5337a55871a, 2018-02-21 (annotated)
- Committer:
- Hagrid
- Date:
- Wed Feb 21 14:57:39 2018 +0000
- Revision:
- 9:e5337a55871a
- Parent:
- 8:5ad25d480d5f
Add feature to my project
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Hagrid | 9:e5337a55871a | 1 | #include "VS1053.h" |
kayekss | 0:708868399033 | 2 | #include "mbed.h" |
Hagrid | 9:e5337a55871a | 3 | |
Hagrid | 9:e5337a55871a | 4 | // patch binary |
Hagrid | 9:e5337a55871a | 5 | #include "VS1053b_patch.c" |
Hagrid | 9:e5337a55871a | 6 | // spectrum analyzer binary |
Hagrid | 9:e5337a55871a | 7 | #include "VS1053b_specana.c" |
Hagrid | 9:e5337a55871a | 8 | |
Hagrid | 9:e5337a55871a | 9 | //Serial pc(USBTX, USBRX); |
Hagrid | 9:e5337a55871a | 10 | |
Hagrid | 9:e5337a55871a | 11 | /* ================================================================== |
Hagrid | 9:e5337a55871a | 12 | * Constructor |
Hagrid | 9:e5337a55871a | 13 | * =================================================================*/ |
Hagrid | 9:e5337a55871a | 14 | VS1053::VS1053( |
Hagrid | 9:e5337a55871a | 15 | PinName mosi, PinName miso, PinName sck, PinName cs, PinName rst, |
Hagrid | 9:e5337a55871a | 16 | PinName dreq, PinName dcs, PinName vol) |
Hagrid | 9:e5337a55871a | 17 | : |
Hagrid | 9:e5337a55871a | 18 | _spi(mosi, miso, sck), |
Hagrid | 9:e5337a55871a | 19 | _CS(cs), |
Hagrid | 9:e5337a55871a | 20 | _RST(rst), |
Hagrid | 9:e5337a55871a | 21 | _DREQ(dreq), |
Hagrid | 9:e5337a55871a | 22 | _DCS(dcs), |
Hagrid | 9:e5337a55871a | 23 | _VOL(vol) { |
Hagrid | 9:e5337a55871a | 24 | firstTime=-1; |
Hagrid | 9:e5337a55871a | 25 | } |
Hagrid | 9:e5337a55871a | 26 | |
Hagrid | 9:e5337a55871a | 27 | /*=================================================================== |
Hagrid | 9:e5337a55871a | 28 | * Functions |
Hagrid | 9:e5337a55871a | 29 | *==================================================================*/ |
Hagrid | 9:e5337a55871a | 30 | |
Hagrid | 9:e5337a55871a | 31 | void VS1053::cs_low(void) |
Hagrid | 9:e5337a55871a | 32 | { |
Hagrid | 9:e5337a55871a | 33 | _CS = 0; |
Hagrid | 9:e5337a55871a | 34 | } |
Hagrid | 9:e5337a55871a | 35 | void VS1053::cs_high(void) |
Hagrid | 9:e5337a55871a | 36 | { |
Hagrid | 9:e5337a55871a | 37 | _CS = 1; |
Hagrid | 9:e5337a55871a | 38 | } |
Hagrid | 9:e5337a55871a | 39 | void VS1053::dcs_low(void) |
kayekss | 0:708868399033 | 40 | { |
Hagrid | 9:e5337a55871a | 41 | _DCS = 0; |
Hagrid | 9:e5337a55871a | 42 | |
Hagrid | 9:e5337a55871a | 43 | } |
Hagrid | 9:e5337a55871a | 44 | void VS1053::dcs_high(void) |
Hagrid | 9:e5337a55871a | 45 | { |
Hagrid | 9:e5337a55871a | 46 | _DCS = 1; |
Hagrid | 9:e5337a55871a | 47 | } |
Hagrid | 9:e5337a55871a | 48 | void VS1053::sci_en(void) //SCI enable |
Hagrid | 9:e5337a55871a | 49 | { |
Hagrid | 9:e5337a55871a | 50 | cs_high(); |
Hagrid | 9:e5337a55871a | 51 | dcs_high(); |
Hagrid | 9:e5337a55871a | 52 | cs_low(); |
Hagrid | 9:e5337a55871a | 53 | } |
Hagrid | 9:e5337a55871a | 54 | void VS1053::sci_dis(void) //SCI disable |
Hagrid | 9:e5337a55871a | 55 | { |
Hagrid | 9:e5337a55871a | 56 | cs_high(); |
Hagrid | 9:e5337a55871a | 57 | } |
Hagrid | 9:e5337a55871a | 58 | void VS1053::sdi_en(void) //SDI enable |
Hagrid | 9:e5337a55871a | 59 | { |
Hagrid | 9:e5337a55871a | 60 | dcs_high(); |
Hagrid | 9:e5337a55871a | 61 | cs_high(); |
Hagrid | 9:e5337a55871a | 62 | dcs_low(); |
kayekss | 0:708868399033 | 63 | } |
Hagrid | 9:e5337a55871a | 64 | void VS1053::sdi_dis(void) //SDI disable |
Hagrid | 9:e5337a55871a | 65 | { |
Hagrid | 9:e5337a55871a | 66 | dcs_high(); |
kayekss | 0:708868399033 | 67 | } |
Hagrid | 9:e5337a55871a | 68 | void VS1053::reset(void) //hardware reset |
Hagrid | 9:e5337a55871a | 69 | { |
Hagrid | 9:e5337a55871a | 70 | // wait(0.01); |
Hagrid | 9:e5337a55871a | 71 | wait_ms(10); |
Hagrid | 9:e5337a55871a | 72 | _RST = 0; |
Hagrid | 9:e5337a55871a | 73 | // wait(0.01); |
Hagrid | 9:e5337a55871a | 74 | wait_ms(5); |
Hagrid | 9:e5337a55871a | 75 | _RST = 1; |
Hagrid | 9:e5337a55871a | 76 | // wait(0.10); |
Hagrid | 9:e5337a55871a | 77 | wait_ms(10); |
Hagrid | 9:e5337a55871a | 78 | } |
Hagrid | 9:e5337a55871a | 79 | void VS1053::power_down(void) //hardware and software reset |
Hagrid | 9:e5337a55871a | 80 | { |
Hagrid | 9:e5337a55871a | 81 | cs_low(); |
Hagrid | 9:e5337a55871a | 82 | reset(); |
Hagrid | 9:e5337a55871a | 83 | // sci_write(0x00, SM_PDOWN); |
Hagrid | 9:e5337a55871a | 84 | sci_write(0x00, 0x10); // tempo |
Hagrid | 9:e5337a55871a | 85 | wait(0.01); |
Hagrid | 9:e5337a55871a | 86 | reset(); |
kayekss | 0:708868399033 | 87 | } |
Hagrid | 9:e5337a55871a | 88 | void VS1053::sci_initialise(void) |
Hagrid | 9:e5337a55871a | 89 | { |
Hagrid | 9:e5337a55871a | 90 | _RST = 1; //no reset |
Hagrid | 9:e5337a55871a | 91 | _spi.format(8,0); //spi 8bit interface, steady state low |
Hagrid | 9:e5337a55871a | 92 | // _spi.frequency(1000000); //rising edge data record, freq. 1Mhz |
Hagrid | 9:e5337a55871a | 93 | _spi.frequency(2000000); //rising edge data record, freq. 2Mhz |
Hagrid | 9:e5337a55871a | 94 | |
Hagrid | 9:e5337a55871a | 95 | |
Hagrid | 9:e5337a55871a | 96 | cs_low(); |
Hagrid | 9:e5337a55871a | 97 | for(int i=0; i<4; i++) |
Hagrid | 9:e5337a55871a | 98 | { |
Hagrid | 9:e5337a55871a | 99 | _spi.write(0xFF); //clock the chip a bit |
Hagrid | 9:e5337a55871a | 100 | } |
Hagrid | 9:e5337a55871a | 101 | cs_high(); |
Hagrid | 9:e5337a55871a | 102 | dcs_high(); |
Hagrid | 9:e5337a55871a | 103 | wait_us(5); |
Hagrid | 9:e5337a55871a | 104 | } |
Hagrid | 9:e5337a55871a | 105 | void VS1053::sdi_initialise(void) |
silis | 7:97a8edd44fe9 | 106 | { |
Hagrid | 9:e5337a55871a | 107 | _spi.format(8,0); |
Hagrid | 9:e5337a55871a | 108 | // _spi.frequency(7000000); //set to 7MHz |
Hagrid | 9:e5337a55871a | 109 | // _spi.frequency(12000000); //set to 12MHz to make fast transfer |
Hagrid | 9:e5337a55871a | 110 | _spi.frequency(18000000); //set to 18MHz to make fast transfer |
Hagrid | 9:e5337a55871a | 111 | //NG does not work// _spi.frequency(24000000); //set to 24MHz to make fast transfer |
Hagrid | 9:e5337a55871a | 112 | |
Hagrid | 9:e5337a55871a | 113 | cs_high(); |
Hagrid | 9:e5337a55871a | 114 | dcs_high(); |
silis | 7:97a8edd44fe9 | 115 | } |
Hagrid | 9:e5337a55871a | 116 | void VS1053::sci_write(unsigned char address, unsigned short int data) |
Hagrid | 9:e5337a55871a | 117 | { |
Hagrid | 9:e5337a55871a | 118 | sci_en(); //enables SCI/disables SDI |
Hagrid | 9:e5337a55871a | 119 | |
Hagrid | 9:e5337a55871a | 120 | while(!_DREQ); //wait unitl data request is high |
Hagrid | 9:e5337a55871a | 121 | _spi.write(0x02); //SCI write |
Hagrid | 9:e5337a55871a | 122 | _spi.write(address); //register address |
Hagrid | 9:e5337a55871a | 123 | _spi.write((data >> 8) & 0xFF); //write out first half of data word |
Hagrid | 9:e5337a55871a | 124 | _spi.write(data & 0xFF); //write out second half of data word |
Hagrid | 9:e5337a55871a | 125 | |
Hagrid | 9:e5337a55871a | 126 | sci_dis(); //enables SDI/disables SCI |
Hagrid | 9:e5337a55871a | 127 | wait_us(5); |
kayekss | 0:708868399033 | 128 | } |
Hagrid | 9:e5337a55871a | 129 | void VS1053::sdi_write(unsigned char datum) |
Hagrid | 9:e5337a55871a | 130 | { |
Hagrid | 9:e5337a55871a | 131 | sdi_en(); |
Hagrid | 9:e5337a55871a | 132 | |
Hagrid | 9:e5337a55871a | 133 | while(!_DREQ); |
Hagrid | 9:e5337a55871a | 134 | _spi.write(datum); |
Hagrid | 9:e5337a55871a | 135 | |
Hagrid | 9:e5337a55871a | 136 | //? sci_dis(); |
Hagrid | 9:e5337a55871a | 137 | sdi_dis(); |
Hagrid | 9:e5337a55871a | 138 | } |
Hagrid | 9:e5337a55871a | 139 | unsigned short int VS1053::sci_read(unsigned short int address) |
Hagrid | 9:e5337a55871a | 140 | { |
Hagrid | 9:e5337a55871a | 141 | cs_low(); //enables SCI/disables SDI |
Hagrid | 9:e5337a55871a | 142 | |
Hagrid | 9:e5337a55871a | 143 | while(!_DREQ); //wait unitl data request is high |
Hagrid | 9:e5337a55871a | 144 | _spi.write(0x03); //SCI write |
Hagrid | 9:e5337a55871a | 145 | _spi.write(address); //register address |
Hagrid | 9:e5337a55871a | 146 | unsigned short int received = _spi.write(0x00); //write out dummy byte |
Hagrid | 9:e5337a55871a | 147 | received <<= 8; |
Hagrid | 9:e5337a55871a | 148 | received += _spi.write(0x00); //write out dummy byte |
Hagrid | 9:e5337a55871a | 149 | |
Hagrid | 9:e5337a55871a | 150 | cs_high(); //enables SDI/disables SCI |
Hagrid | 9:e5337a55871a | 151 | |
Hagrid | 9:e5337a55871a | 152 | return received; //return received word |
Hagrid | 9:e5337a55871a | 153 | } |
Hagrid | 9:e5337a55871a | 154 | void VS1053::sine_test_activate(unsigned char wave) |
Hagrid | 9:e5337a55871a | 155 | { |
Hagrid | 9:e5337a55871a | 156 | cs_high(); //enables SDI/disables SCI |
kayekss | 0:708868399033 | 157 | |
Hagrid | 9:e5337a55871a | 158 | while(!_DREQ); //wait unitl data request is high |
Hagrid | 9:e5337a55871a | 159 | _spi.write(0x53); //SDI write |
Hagrid | 9:e5337a55871a | 160 | _spi.write(0xEF); //SDI write |
Hagrid | 9:e5337a55871a | 161 | _spi.write(0x6E); //SDI write |
Hagrid | 9:e5337a55871a | 162 | _spi.write(wave); //SDI write |
Hagrid | 9:e5337a55871a | 163 | _spi.write(0x00); //filler byte |
Hagrid | 9:e5337a55871a | 164 | _spi.write(0x00); //filler byte |
Hagrid | 9:e5337a55871a | 165 | _spi.write(0x00); //filler byte |
Hagrid | 9:e5337a55871a | 166 | _spi.write(0x00); //filler byte |
Hagrid | 9:e5337a55871a | 167 | |
Hagrid | 9:e5337a55871a | 168 | cs_low(); //enables SCI/disables SDI |
kayekss | 0:708868399033 | 169 | } |
Hagrid | 9:e5337a55871a | 170 | void VS1053::sine_test_deactivate(void) |
Hagrid | 9:e5337a55871a | 171 | { |
Hagrid | 9:e5337a55871a | 172 | cs_high(); |
Hagrid | 9:e5337a55871a | 173 | |
Hagrid | 9:e5337a55871a | 174 | while(!_DREQ); |
Hagrid | 9:e5337a55871a | 175 | _spi.write(0x45); //SDI write |
Hagrid | 9:e5337a55871a | 176 | _spi.write(0x78); //SDI write |
Hagrid | 9:e5337a55871a | 177 | _spi.write(0x69); //SDI write |
Hagrid | 9:e5337a55871a | 178 | _spi.write(0x74); //SDI write |
Hagrid | 9:e5337a55871a | 179 | _spi.write(0x00); //filler byte |
Hagrid | 9:e5337a55871a | 180 | _spi.write(0x00); //filler byte |
Hagrid | 9:e5337a55871a | 181 | _spi.write(0x00); //filler byte |
Hagrid | 9:e5337a55871a | 182 | _spi.write(0x00); //filler byte |
kayekss | 0:708868399033 | 183 | } |
Hagrid | 9:e5337a55871a | 184 | void VS1053::volume(uint8_t left, uint8_t right) |
Hagrid | 9:e5337a55871a | 185 | { |
kayekss | 0:708868399033 | 186 | |
kayekss | 0:708868399033 | 187 | |
Hagrid | 9:e5337a55871a | 188 | uint16_t v; |
Hagrid | 9:e5337a55871a | 189 | v = left; |
Hagrid | 9:e5337a55871a | 190 | v <<= 8; |
Hagrid | 9:e5337a55871a | 191 | v |= right; |
kayekss | 0:708868399033 | 192 | |
Hagrid | 9:e5337a55871a | 193 | while(!_DREQ); |
Hagrid | 9:e5337a55871a | 194 | |
Hagrid | 9:e5337a55871a | 195 | sci_write(0x0B, v); |
Hagrid | 9:e5337a55871a | 196 | } |
Hagrid | 9:e5337a55871a | 197 | |
Hagrid | 9:e5337a55871a | 198 | void VS1053::writeStream(unsigned char *array, int size) |
Hagrid | 9:e5337a55871a | 199 | { |
Hagrid | 9:e5337a55871a | 200 | for(int i=0; i<size; i++) |
Hagrid | 9:e5337a55871a | 201 | { |
Hagrid | 9:e5337a55871a | 202 | sdi_write(array[i]); |
Hagrid | 9:e5337a55871a | 203 | } |
Hagrid | 9:e5337a55871a | 204 | volume(50,50); |
Hagrid | 9:e5337a55871a | 205 | } |
Hagrid | 9:e5337a55871a | 206 | |
Hagrid | 9:e5337a55871a | 207 | #if 0 |
Hagrid | 9:e5337a55871a | 208 | // this function does not work |
Hagrid | 9:e5337a55871a | 209 | // because of function call overhead |
Hagrid | 9:e5337a55871a | 210 | void VS1053::putcStream(unsigned char datum) |
Hagrid | 9:e5337a55871a | 211 | { |
Hagrid | 9:e5337a55871a | 212 | sdi_write(datum); |
Hagrid | 9:e5337a55871a | 213 | } |
Hagrid | 9:e5337a55871a | 214 | #endif |
Hagrid | 9:e5337a55871a | 215 | |
Hagrid | 9:e5337a55871a | 216 | unsigned short int VS1053::wram_read(unsigned short int address) |
silis | 8:5ad25d480d5f | 217 | { |
Hagrid | 9:e5337a55871a | 218 | unsigned short int tmp1,tmp2; |
Hagrid | 9:e5337a55871a | 219 | sci_write(SCI_WRAMADDR,address); |
Hagrid | 9:e5337a55871a | 220 | tmp1=sci_read(SCI_WRAM); |
Hagrid | 9:e5337a55871a | 221 | sci_write(SCI_WRAMADDR,address); |
Hagrid | 9:e5337a55871a | 222 | tmp2=sci_read(SCI_WRAM); |
Hagrid | 9:e5337a55871a | 223 | if (tmp1==tmp2) return tmp1; |
Hagrid | 9:e5337a55871a | 224 | sci_write(SCI_WRAMADDR,address); |
Hagrid | 9:e5337a55871a | 225 | tmp1=sci_read(SCI_WRAM); |
Hagrid | 9:e5337a55871a | 226 | if (tmp1==tmp2) return tmp1; |
Hagrid | 9:e5337a55871a | 227 | sci_write(SCI_WRAMADDR,address); |
Hagrid | 9:e5337a55871a | 228 | tmp1=sci_read(SCI_WRAM); |
Hagrid | 9:e5337a55871a | 229 | if (tmp1==tmp2) return tmp1; |
Hagrid | 9:e5337a55871a | 230 | return tmp1; |
Hagrid | 9:e5337a55871a | 231 | } |
Hagrid | 9:e5337a55871a | 232 | |
Hagrid | 9:e5337a55871a | 233 | void VS1053::wram_write(unsigned short int address, unsigned short int data) |
Hagrid | 9:e5337a55871a | 234 | { |
Hagrid | 9:e5337a55871a | 235 | sci_write(SCI_WRAMADDR,address); |
Hagrid | 9:e5337a55871a | 236 | sci_write(SCI_WRAM,data); |
Hagrid | 9:e5337a55871a | 237 | return; |
silis | 8:5ad25d480d5f | 238 | } |
Hagrid | 9:e5337a55871a | 239 | |
Hagrid | 9:e5337a55871a | 240 | |
Hagrid | 9:e5337a55871a | 241 | void VS1053::terminateStream(void) |
Hagrid | 9:e5337a55871a | 242 | { |
Hagrid | 9:e5337a55871a | 243 | #if 1 |
Hagrid | 9:e5337a55871a | 244 | unsigned int endFillByte=wram_read(para_endFillByte); |
Hagrid | 9:e5337a55871a | 245 | // printf("endFillByte:%04X\r\n",endFillByte); // debug |
Hagrid | 9:e5337a55871a | 246 | for(int n=0; n<2052; n++) sdi_write(0xFF&endFillByte); |
Hagrid | 9:e5337a55871a | 247 | sci_write(SCI_MODE,(SM_SDINEW+SM_CANCEL)); |
Hagrid | 9:e5337a55871a | 248 | for(int n=0; n<2048; n++) sdi_write(0xFF&endFillByte); |
Hagrid | 9:e5337a55871a | 249 | // don't reset if you don't want to lose the patch |
Hagrid | 9:e5337a55871a | 250 | // sci_write(SCI_MODE,(SM_SDINEW+SM_RESET)); // set mode reg. |
Hagrid | 9:e5337a55871a | 251 | // wait_ms(10); |
Hagrid | 9:e5337a55871a | 252 | #endif |
Hagrid | 9:e5337a55871a | 253 | } |
Hagrid | 9:e5337a55871a | 254 | |
Hagrid | 9:e5337a55871a | 255 | void VS1053::write_plugin(const unsigned short *plugin, unsigned int len) |
Hagrid | 9:e5337a55871a | 256 | { |
Hagrid | 9:e5337a55871a | 257 | unsigned int i; |
Hagrid | 9:e5337a55871a | 258 | unsigned short addr, n, val; |
Hagrid | 9:e5337a55871a | 259 | |
Hagrid | 9:e5337a55871a | 260 | for(i=0; i<len;) |
Hagrid | 9:e5337a55871a | 261 | { |
Hagrid | 9:e5337a55871a | 262 | addr = plugin[i++]; |
Hagrid | 9:e5337a55871a | 263 | n = plugin[i++]; |
Hagrid | 9:e5337a55871a | 264 | if(n & 0x8000U) //RLE run, replicate n samples |
Hagrid | 9:e5337a55871a | 265 | { |
Hagrid | 9:e5337a55871a | 266 | n &= 0x7FFF; |
Hagrid | 9:e5337a55871a | 267 | val = plugin[i++]; |
Hagrid | 9:e5337a55871a | 268 | while(n--) |
Hagrid | 9:e5337a55871a | 269 | { |
Hagrid | 9:e5337a55871a | 270 | sci_write(addr,val); |
Hagrid | 9:e5337a55871a | 271 | } |
kayekss | 0:708868399033 | 272 | } |
Hagrid | 9:e5337a55871a | 273 | else //copy run, copy n sample |
Hagrid | 9:e5337a55871a | 274 | { |
Hagrid | 9:e5337a55871a | 275 | while(n--) |
Hagrid | 9:e5337a55871a | 276 | { |
Hagrid | 9:e5337a55871a | 277 | val = plugin[i++]; |
Hagrid | 9:e5337a55871a | 278 | sci_write(addr,val); |
Hagrid | 9:e5337a55871a | 279 | } |
Hagrid | 9:e5337a55871a | 280 | } |
Hagrid | 9:e5337a55871a | 281 | } |
Hagrid | 9:e5337a55871a | 282 | |
Hagrid | 9:e5337a55871a | 283 | return; |
kayekss | 0:708868399033 | 284 | } |
Hagrid | 9:e5337a55871a | 285 | |
Hagrid | 9:e5337a55871a | 286 | |
Hagrid | 9:e5337a55871a | 287 | void VS1053::initialize(void) |
Hagrid | 9:e5337a55871a | 288 | { |
Hagrid | 9:e5337a55871a | 289 | _RST = 1; |
Hagrid | 9:e5337a55871a | 290 | cs_high(); //chip disabled |
Hagrid | 9:e5337a55871a | 291 | sci_initialise(); //initialise MBED |
Hagrid | 9:e5337a55871a | 292 | sci_write(SCI_MODE,(SM_SDINEW+SM_RESET)); // set mode reg. |
Hagrid | 9:e5337a55871a | 293 | wait_ms(10); |
Hagrid | 9:e5337a55871a | 294 | #if 1 |
Hagrid | 9:e5337a55871a | 295 | // debug |
Hagrid | 9:e5337a55871a | 296 | unsigned int chipID_0=wram_read(para_chipID_0); |
Hagrid | 9:e5337a55871a | 297 | if (firstTime) printf("chipID_0:%04X\r\n",chipID_0); // debug |
Hagrid | 9:e5337a55871a | 298 | unsigned int chipID_1=wram_read(para_chipID_1); |
Hagrid | 9:e5337a55871a | 299 | if (firstTime) printf("chipID_1:%04X\r\n",chipID_1); // debug |
Hagrid | 9:e5337a55871a | 300 | unsigned int struct_version=wram_read(para_version); |
Hagrid | 9:e5337a55871a | 301 | if (firstTime) printf("structure version:%04X\r\n",struct_version); // debug |
Hagrid | 9:e5337a55871a | 302 | #endif |
Hagrid | 9:e5337a55871a | 303 | //get chip version, set clock multiplier and load patch |
Hagrid | 9:e5337a55871a | 304 | int i = (sci_read(SCI_STATUS)&0xF0)>>4; |
Hagrid | 9:e5337a55871a | 305 | if(i == 4) |
Hagrid | 9:e5337a55871a | 306 | { |
Hagrid | 9:e5337a55871a | 307 | if (firstTime) printf("Installed Chip is: VS1053\r\n"); |
Hagrid | 9:e5337a55871a | 308 | sci_write(SCI_CLOCKF, (SC_MULT_XTALIx50+SC_ADD_20x)); |
Hagrid | 9:e5337a55871a | 309 | #ifdef VS_PATCH |
Hagrid | 9:e5337a55871a | 310 | // loading patch |
Hagrid | 9:e5337a55871a | 311 | write_plugin(vs1053b_patch, sizeof(vs1053b_patch)/2); |
Hagrid | 9:e5337a55871a | 312 | if (firstTime) { |
Hagrid | 9:e5337a55871a | 313 | printf("VS1053b patch loaded.\r\n"); |
Hagrid | 9:e5337a55871a | 314 | printf("patch size:%d bytes\r\n",sizeof(vs1053b_patch)); |
Hagrid | 9:e5337a55871a | 315 | } |
Hagrid | 9:e5337a55871a | 316 | #endif |
Hagrid | 9:e5337a55871a | 317 | #ifdef VS_SPECANA |
Hagrid | 9:e5337a55871a | 318 | // loading plugin(spectrum analyzer) |
Hagrid | 9:e5337a55871a | 319 | write_plugin(vs1053b_specana, sizeof(vs1053b_specana)/2); |
Hagrid | 9:e5337a55871a | 320 | if (firstTime) printf("VS1053b specana loaded.\r\n"); |
Hagrid | 9:e5337a55871a | 321 | #endif |
kayekss | 0:708868399033 | 322 | } |
Hagrid | 9:e5337a55871a | 323 | else printf("??? Not Supported Chip???\r\n"); |
Hagrid | 9:e5337a55871a | 324 | sdi_initialise(); |
Hagrid | 9:e5337a55871a | 325 | firstTime=0; // disable message when init after 1st time |
Hagrid | 9:e5337a55871a | 326 | } |