@@ -314,7 +314,7 @@ void Audio::begin(){
314314 mutex_pl = xSemaphoreCreateMutex ();
315315 DCS_HIGH ();
316316 CS_HIGH ();
317- delay (100 );
317+ delay (200 );
318318
319319 // Init SPI in slow mode (0.2 MHz)
320320 VS1053_SPI = SPISettings (200000 , MSBFIRST, SPI_MODE0);
@@ -331,14 +331,14 @@ void Audio::begin(){
331331 write_register (SCI_AUDATA, 44100 + 1 ); // 44.1kHz + stereo
332332 // The next clocksetting allows SPI clocking at 5 MHz, 4 MHz is safe then.
333333 write_register (SCI_CLOCKF, 6 << 12 ); // Normal clock settings multiplyer 3.0=12.2 MHz
334- // set vu meter
335- setVUmeter ();
336334 // SPI Clock to 4 MHz. Now you can set high speed SPI clock.
337335 VS1053_SPI=SPISettings (6700000 , MSBFIRST, SPI_MODE0); // SPIDIV 12 -> 80/12=6.66 MHz
338336 write_register (SCI_MODE, _BV (SM_SDINEW) | _BV (SM_LINE1));
339337 // testComm("Fast SPI, Testing VS1053 read/write registers again... \n");
340338 delay (10 );
341339 await_data_request ();
340+ // set vu meter
341+ setVUmeter ();
342342 m_endFillByte=wram_read (0x1E06 ) & 0xFF ;
343343// sprintf(chbuf, "endFillByte is %X", endFillByte);
344344// if(audio_info) audio_info(chbuf);
@@ -467,7 +467,7 @@ void Audio::stopSong()
467467// ---------------------------------------------------------------------------------------------------------------------
468468void Audio::softReset ()
469469{
470- if (VS1053_RST>0 ) return ; // Hard resrt present
470+ // if(VS1053_RST>0) return; // Hard resrt present
471471 write_register (SCI_MODE, _BV (SM_SDINEW) | _BV (SM_RESET));
472472 delay (10 );
473473 await_data_request ();
@@ -1571,6 +1571,12 @@ void Audio::setDefaults(){
15711571void Audio::setVUmeter () {
15721572// if(!ENABLE_VU_METER) return;
15731573 uint16_t MP3Status = read_register (SCI_STATUS);
1574+ if (MP3Status==0 ) {
1575+ Serial.println (" VS1053 Error: Unable to write SCI_STATUS" );
1576+ _vuInitalized = false ;
1577+ return ;
1578+ }
1579+ _vuInitalized = true ;
15741580 write_register (SCI_STATUS, MP3Status | _BV (9 ));
15751581}
15761582
@@ -1588,6 +1594,7 @@ void Audio::setVUmeter() {
15881594 */
15891595void Audio::getVUlevel () {
15901596// if(!ENABLE_VU_METER) return;
1597+ if (!_vuInitalized) return ;
15911598 int16_t reg = read_register (SCI_AICTRL3);
15921599 uint8_t rl = map ((uint8_t )reg, 85 , 92 , 0 , 255 );
15931600 uint8_t rr = map ((uint8_t )(reg >> 8 ), 85 , 92 , 0 , 255 );
0 commit comments