2025-05-16 2:34 AM - edited 2025-05-16 3:29 AM
Hello,
I am using the NUCLEO-WBA55CG. I read in the Reference manual (https://www.st.com/resource/en/reference_manual/rm0493-multiprotocol-wireless-bluetooth-le-and-ieee802154-stm32wba5xxx-armbased-32bit-mcus-stmicroelectronics.pdf) that the SPI peripheral has the option to bypass the SPI clock prescaler. This is new to me and I have never worked with STM32 MCUs that have this option. My understanding is that by setting the BPASS bit in the SPI_CFG1 register, the prescaler, which is set by the MBR bits in the SPI_CFG1 register is ignored, and so the SPI clock frequency is that of the spi_ker_clk clock, in stead of being divided by at least 2 when using the prescaler with the MBR bits. When I set this bit, the SPI appears to be working as intended, except the SPI stops outputting the clock at the corresponding pin. The MOSI line and the CS line (I am using hardware chip select management) work as intended- I can see the test data I am sending and both the MOSI and CS seem to be working fine with a halved duration of bit length, as expected. The SPI clock, however, is not output at the corresponding pin. Further, I am using linked-lists DMA to run the SPI peripheral at 24 MHz with the clock prescaler BYPASS and using the Master Inter-Data Idleness setting (MIDI bits in the SPI_CFG2 register) to achieve a certain duration of the CS. When the BYPASS bit is off, all works well and the SPI outputs the clock.
Has anyone come across this or similar problems? Do you have any ideas what it may be?