Link copied to clipboard!

How to program QSPI memory

1. Understanding the QSPI Memory Chip

  • Datasheet: Obtain the datasheet of the QSPI memory chip you are working with. It provides detailed information on its commands, timing, memory layout, and operations such as read, write, and erase.
  • Communication Protocol: QSPI uses a quad SPI protocol, meaning it can send and receive data using four data lines, which increases data throughput compared to traditional SPI.

2. Programming the QSPI Flash

The QSPI used in Riverdi EVE4 displays can be programmed using two primary methods:

  1. Programming via Eve Asset Builder:
    • Method Overview: This method involves using the Eve Asset Builder (EAB) software to program the QSPI flash. EAB allows users to convert and upload graphical assets directly to the display, simplifying the asset management process.
    • Recommended Hardware: For this method, an Evaluation Board with an integrated FT232H USB-to-RiBUS (SPI) bridge is essential. This bridge enables communication between the USB interface and the BT817Q/EVE4 display via SPI.
  2. Direct Programming via P3 Port:
    • Method Overview: This approach allows for direct programming of the QSPI flash memory by using a physical connection to the display’s flash chip.
    • Required Cable: The TC2050-IDC-NL cable is used to connect directly to the flash memory for programming.

Both methods offer different approaches, with the first being more software-driven and requiring specialized hardware for bridging, and the second offering direct access to the flash for hands-on programming, it can also shorten the programming time.

3. Commands to Interact with QSPI Memory

You need to implement or use pre-existing functions to send QSPI commands. Common QSPI commands include:

  • READ Command (0x03 or 0x6B): To read data from memory.
  • WRITE ENABLE (0x06): To enable write operations.
  • WRITE DISABLE (0x04): To disable write operations.
  • PAGE PROGRAM (0x02): To write data to a specific memory address.
  • SECTOR ERASE (0x20): To erase a sector of memory.
  • BULK ERASE (0xC7): To erase the entire memory.