QSPI - Clock starts before chip select is set
Hi
I am using the QSPI to interface FPGA.
The setup includes STM32F769I-EVAL board wired to MAX10 evaluation board.
The QSPI is configured to indirect mode, data phase only. I was able to read data from the FPGA, control clock speed and set number of bytes to be read each time.
Among other issues, the problem I am facing is that sometime the clock would start while the Chip select is still high!
As the FPGA output a known pattern, it is clear that the CPU actually sample the data before the CS goes low.
The HAL_QSPI_Receive_DMA() function is used to trigger read, meaning that there is no control over the CS vs clock timing.
CCR register is 0x07000000 (Indirect read mode, data on 4 lines)
CR register is 0x40000f05: DMA and interface enabled plus clock Prescalar and FiFo threshold configuration.
is this a known bug? There is nothing in errata sheet regarding indirect mode.
the attached pic- C1(yellow) is CS, while C2(purple) is clock. Both are CPU controlled.
*if anyone here consider using the QSPI as a simple quad SPI, do yourself a favor and reconsider…