This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

QSPI custom commands/opcode

Hello Devs,

I am facing an difficult time to write a custom opcode to a QSPI flash memory. where I am trying to read the manufacture ID, it requires send the OP code + Address+ write dummy bytes + read

using nrf_drv_qspi_cinstr_xfer is not possible for me retrieve the manufacture ID from the module, since it requires read at the address 0 (24bits) and cinstr_xfer doesn't allow to add an address 

using  nrf_drv_qspi_read where the timing diagram is almost the same, but the qspi_read doesn't allow to change the opcode to 0x94

any suggestion?

Parents
  • Hi

    The QSPI is only able to read and write full words in multiples of 4 bytes. This is because the QSPI peripherals READ and WRITE SRC registers have to point to a word-aligned address and only works in 32-bit words, I.E. ending with 0x0, 0x4, 0x8, or 0xC. Please see the documentation for more information. I know this isn't much of a further explanation, but the fact is that the HW peripheral is not able to end at any other values.

    Best regards,

    Simon

Reply
  • Hi

    The QSPI is only able to read and write full words in multiples of 4 bytes. This is because the QSPI peripherals READ and WRITE SRC registers have to point to a word-aligned address and only works in 32-bit words, I.E. ending with 0x0, 0x4, 0x8, or 0xC. Please see the documentation for more information. I know this isn't much of a further explanation, but the fact is that the HW peripheral is not able to end at any other values.

    Best regards,

    Simon

Children
No Data
Related