I am attempting to setup the QuadSPI for AHB reading. I have one single-banked external flash attached to Flash A (A1). I am attempting to use SEQID 0 with the power-on reset values for LUT0 and LUT1 (this is the Read command 0x03). I am able to write and read registers to and from the external device (different sequence IDs), so I have the LUT setup correctly. Also, the IAR debugger is able to read external flash, and I can see the flash transactions occur on my logic analyzer when it does so (transactions are 8 bytes of data long, but will be longer if I change QSPI_BUF3CR[ADATSZ] to a larger value). I am assuming those are merely AHB memory-mapped reads, but I don't know for certain.
My problem is that when my application attempts to read a byte, the hardware locks up, and on the logic analyzer, I see consecutive, repeated reads sent to the flash. Each read has the same address, which is correct.
Has anyone seen this? Am I missing some part of the QuadSPI module setup? Thanks.
Some relevant register values:
| QSPI_BFGENCR[SEQID] | 0 |
| QSPI_BUFxIND | 0 |
| QSPI_LUT0 | 0x08180403 |
| QSPI_LUT1 | 0x24001C08 |
| QSPI_SFxxAD | 0x21000000 |
| QSPI_BUFxCR[ADATSZ] | 0 |
| QSPI_BUF3CR[ALLMST] | 1 |
| QSPI_RBCR[RXBRD] | 1 |