2024-07-10 01:32 AM
I am using Nuckeo-F429ZI board for my project.
I am using SPI HAL drivers for the SPI communication.
I need to transmit a data stream of 12 bytes for every 10 micro seconds with clock speed pf 2 MHz.
I have tried it using SPI HAL drivers, but I'm getting lot of delay between each transmission which is in the order of milli meters. But i need the delay to be in order of micro meters.
Is it possible any how to get my desired results using this board by Interrupt mode or DMA Mode?
Please help
Thanks in advance
2024-07-10 07:00 AM
> I need to transmit a data stream of 12 bytes for every 10 micro seconds with clock speed pf 2 MHz.
To transmit 12 bytes (96 bits) at 2 MHz clock speed, it takes 48 microseconds. You'll need to increase bus speed to even have a chance of this working.
For high speed, it's best to write your own interface to the SPI peripheral. IT and DMA will also have delays from the setup time when using HAL.
2024-07-10 07:09 AM
Hi Guru,
Thanks for the reply. The delay I've specified is after successful SPI transaction of 12 bytes.
2024-07-10 05:02 PM
If HAL is not fast enough, you'll need to write your own code. The reference manual is quite detailed in what is needed to do this. There's no simple "make it 1000x faster" switch you can flip on HAL. However, if you're seeing a delay of several milliseconds, it suggests your code is doing stuff other than calling SPI transmit, as HAL_SPI_Transmit doesn't have that much overhead.