2025-08-12 7:49 AM - last edited on 2025-08-12 8:40 AM by Andrew Neil
Hi,
I am using differential SPI communication with an STM32G474. The master sends the clock (SCLK) to the slave and data through the MOSI line. However, the slave responds on MOSI using a delayed clock (DCLK), which is derived from the master clock with some delay (DCLK = SCLK*Delay).
This means the master must read from the slave using DCLK instead of SCLK. I’m sure this cannot be handled through the normal SPI peripheral.
Could someone suggest a solution for this scenario?
One idea I had was:
Use another SPI peripheral on the STM32, configure it as a slave, and use the delayed clock (DCLK) from the slave device as the input clock to capture the return data.
Would this approach work, or is there a better method?
Thank you in advance
2025-08-12 8:18 AM
Surely, you can draw a block diagram?
@Keerthi wrote:I have to handle data from slave using clock send by it and get the data.
Yes, so considering it as a "Master", and using a 2nd STM32 SPI in Slave mode would definitely be a thing to try.
Again, doesn't the device's manufacturer give any suggestions on working with standard SPI Masters? It must be a common question!
2025-08-12 8:34 AM
At 60Mbit is more a job for a fpga.
2025-08-12 8:36 AM
But I am planning to use the microcontroller instead of FPGA. Because even STM32G474 can provide maximum SPI frequency upto 75MHz.
2025-08-12 8:41 AM
@TDK wrote:This is not differential signaling. Sounds much more like "delayed".
Agreed.
Title edited to better describe the situation.