From 1f5dc8177a3c7937527a28244df3278c4f79f175 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Fri, 10 Apr 2026 05:35:16 +0200 Subject: [PATCH] fix(audio): increase VS1053b init timing margins for early-batch chips (#7239) Co-authored-by: raphaelcoeffic <1050031+raphaelcoeffic@users.noreply.github.com> --- radio/src/targets/common/arm/stm32/vs1053b.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/radio/src/targets/common/arm/stm32/vs1053b.cpp b/radio/src/targets/common/arm/stm32/vs1053b.cpp index 24db3ab72..4146677f7 100644 --- a/radio/src/targets/common/arm/stm32/vs1053b.cpp +++ b/radio/src/targets/common/arm/stm32/vs1053b.cpp @@ -175,6 +175,9 @@ static void _wait_ms(uint32_t delay_ms) static uint8_t vs1053b_write_cmd(uint8_t address, uint16_t data) { + // ensure chip is ready before sending command + vs1053b_wait_dreq(100); + stm32_spi_set_max_baudrate(_instance->spi, SPI_LOW_SPEED); XDCS_HIGH(); @@ -203,7 +206,8 @@ static void vs1053b_hard_reset() _reset_high(); // datasheet says 1.8ms at default clock speed - vs1053b_wait_dreq(3000); + vs1053b_wait_dreq(5000); + _wait_ms(20); } static uint32_t vs1053b_send_data(const uint8_t * buffer, uint32_t size) @@ -324,7 +328,7 @@ void vs1053b_init(const vs1053b_t* dev) vs1053b_update_volume(); vs1053b_write_cmd(SPI_CLOCKF, 0x9800); - vs1053b_wait_dreq(1000); + vs1053b_wait_dreq(5000); stm32_spi_set_max_baudrate(_instance->spi, SPI_HIGH_SPEED); vs1053b_send_riff_header();