There can be things: first the delay in detecting the EOC, and the delay after which the SPI starts from the time you call SPIword tranfer. First you can use a GPIO interrupt mode and see the time delay associated. For SPI, as you have mentioned 30us , you can reduce it to around 10 us if you go through the FX3 library source and call the transfer function directly from your code. This is becasue the SPI transfers implemented in the library is have some if and for loops which probably is causing this delay in starting. So, you can give it a try by creating your own SPI transfer function with minimum checks.