SPI Clock rate limitation?
TL;DR. What are the limiting factors for incoming clock speed for an SPI peripheral operating in slave mode?
I'm using the STM32U575 MCU with a few peripherals, and am clocking it down to 16MHz for SYSCLK and all related peripherals. I'm generating a decent amount of data by running the ADC at 20ksps. (TIM2 triggering ADC4, which drops samples into memory using DMA, and have verified output using a 1Mbaud UART.) However, what I really need is for this data to come out of the SPI peripheral, and more specifically, synced to an external clock. I figured the SPI in slave mode would be a good fit.
I've been able to get some test byte arrays out of the SPI peripheral when the SCLK line is receiving 200kHz, however, this starts falling apart at 300kHz. Falling apart means things like the TX complete callback not firing or the clock and data starting to incur some glitches.
The setup is the U575 Nucleo board, and the clock source is an external signal generator set to 3.3V square wave.
As an extra data point, I tried increasing the clock of the U575 to 160MHz (10x), and found that it works at 2MHz and stops working at 3MHz (10x jumps respectively).
Is there something within the SPI peripheral that limits the speed of the incoming clock?