STM32H753 QSPI Status Flag Polling fails with Instruction on 4 lines
Hello,
I stumbled across a probably already wellknown problem:
unable-to-use-quadspi-status-flag-polling-mode-with-instruction
Now I'd like to know if there are any news, somebody wrote that the issue is observed by ST.
Second I'd like to know if newer H75x revisions or devices with OCTO/HEXASPI (H735, H7RS, N6, ) suffer from the same problem(s).
Third, regarding the comment from TeslaDeLorean, I'd like to know if this behaviour is related to the flash device.
Ok, the problem:
If I use 4 lines for instructions for status register polling of a QPI-able flash (MX66L1G45) I observed that if the WIP bit is set in the first status poll, the polling cycle is done, but the next polling fails.
If the WIP is reset at the first time it is polled, the pollings stops, the program continues.
That caused a race condition on my side (works, works not, works, ...) and took some time to investigate...

Here is the situation: first poll is OK (2 clocks for command request, 2 clocks for status reply). WIP bit is set, so the status polling continues. But the second poll halts after the 3rd clock, and the NCS is kept in active state. Looks like the internal logic of the H7 QSPI locked up.
So at first look, it seems this is a H7 problem, but regarding the first successful poll, this timing is also weird:

After the first two clocks, driven by H7, the next 2 clocks are driven by the flash, here SIO0 (blue) and SIO1 (red). What puzzles me is the extra puls after the NCS is inactive. Who drives the SIO0 output at that moment? Telling from the signal height and reflections, it seems that the H7 is the source of it.
Also, as far as I know, (Q)SPI data is shifted at falling clock edge and sampled at rising edge. This seems to be true for the first 2 clocks and for the forth clock. But regarding the 3rd clock, things are different.
In my understanding, the flash should drive its first bit at the falling edge of the 2nd clock. Indeed, after that, the voltage is a bit lower compared to the H7 output before. But then, in the middle of the rising edge of the 3rd clock, the SIO0 (blue) changes from 1->0, exactly when the H7 is sampling the data. In my opinion, what the H7 reads here is unsure, maybe 0 or 1.
So, is this a bug in the flash or in the H7? Does this extra pulse cause the following H7 lockup? Is there any workaround?
Thank you.

