From 1cc1810afc52d9eee6dffb8f79413b7a24a5f2dd Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Mon, 25 Sep 2023 09:47:15 +0200 Subject: [PATCH] fix: VS1053b initialisation on NV14/EL18 (#4108) --- radio/src/targets/common/arm/stm32/vs1053b.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/radio/src/targets/common/arm/stm32/vs1053b.cpp b/radio/src/targets/common/arm/stm32/vs1053b.cpp index 6da8164fe..cad7948be 100644 --- a/radio/src/targets/common/arm/stm32/vs1053b.cpp +++ b/radio/src/targets/common/arm/stm32/vs1053b.cpp @@ -234,7 +234,7 @@ uint8_t audioHardReset(void) delay_ms(100); // 100ms RST_HIGH(); - if (!audioWaitDreq(100)) + if (!audioWaitDreq(5000)) return 0; delay_ms(20); // 20ms @@ -249,12 +249,15 @@ uint8_t audioSoftReset(void) audioSpiReadWriteByte(0x00); // start the transfer - audioSpiWriteCmd(SPI_MODE, 0x0816); // SOFT RESET, new model - if (!audioWaitDreq(100)) - return 0; + uint8_t retry = 0; + uint16_t mode = SM_SDINEW | SM_EARSPEAKER_LO; + while (audioSpiReadReg(SPI_MODE) != mode && retry < 100) { + retry++; + audioSpiWriteCmd(SPI_MODE, mode | SM_RESET); + } // wait for set up successful - uint8_t retry = 0; + retry = 0; while (audioSpiReadReg(SPI_CLOCKF) != 0x9800 && retry < 100) { retry++; audioSpiWriteCmd(SPI_CLOCKF, 0x9800);