fix: data width must be set before enabling SPI (#5279)

Co-authored-by: raphaelcoeffic <1050031+raphaelcoeffic@users.noreply.github.com>
This commit is contained in:
Raphael Coeffic
2024-07-11 11:27:38 +02:00
committed by GitHub
co-authored by raphaelcoeffic
parent d0791fa0c2
commit 170bdebcc4
6 changed files with 7 additions and 7 deletions
@@ -41,9 +41,8 @@ void ads79xx_init(const stm32_spi_adc_t* adc)
{
const auto* spi = &adc->spi;
stm32_spi_init(spi);
stm32_spi_init(spi, LL_SPI_DATAWIDTH_16BIT);
stm32_spi_set_max_baudrate(spi, ADS79XX_MAX_FREQ);
LL_SPI_SetDataWidth(spi->SPIx, LL_SPI_DATAWIDTH_16BIT);
stm32_spi_unselect(spi);
delay_01us(1);
@@ -247,7 +247,7 @@ static sd_init_fsm_state_t _init_sd_fsm_step(const stm32_spi_t* spi,
switch (state) {
case SD_INIT_START:
TRACE("SD_INIT_START");
stm32_spi_init(spi);
stm32_spi_init(spi, LL_SPI_DATAWIDTH_8BIT);
stm32_spi_set_max_baudrate(spi, SD_SPI_CLK_400K);
return SD_INIT_SPI_POWER_SEQ;
@@ -247,7 +247,7 @@ void flashSpiSync()
bool flashSpiInit(void)
{
stm32_spi_init(&_flash_spi);
stm32_spi_init(&_flash_spi, LL_SPI_DATAWIDTH_8BIT);
delay_ms(1);
flashSpiSync();
@@ -164,7 +164,7 @@ static void _config_dma_streams(const stm32_spi_t* spi)
}
#endif
void stm32_spi_init(const stm32_spi_t* spi)
void stm32_spi_init(const stm32_spi_t* spi, uint32_t data_width)
{
_init_gpios(spi);
@@ -178,6 +178,7 @@ void stm32_spi_init(const stm32_spi_t* spi)
spiInit.TransferDirection = LL_SPI_FULL_DUPLEX;
spiInit.Mode = LL_SPI_MODE_MASTER;
spiInit.NSS = LL_SPI_NSS_SOFT;
spiInit.DataWidth = data_width;
LL_SPI_Init(SPIx, &spiInit);
LL_SPI_Enable(SPIx);
@@ -44,7 +44,7 @@ struct stm32_spi_t {
void stm32_spi_enable_clock(SPI_TypeDef *SPIx);
void stm32_spi_init(const stm32_spi_t* spi);
void stm32_spi_init(const stm32_spi_t* spi, uint32_t data_width);
void stm32_spi_deinit(const stm32_spi_t* spi);
void stm32_spi_select(const stm32_spi_t* spi);
@@ -114,7 +114,7 @@ void audioSpiInit(void)
pinInit.Mode = LL_GPIO_MODE_INPUT;
LL_GPIO_Init(AUDIO_DREQ_GPIO, &pinInit);
stm32_spi_init(&_audio_spi);
stm32_spi_init(&_audio_spi, LL_SPI_DATAWIDTH_8BIT);
}
void audioWaitReady()