ISS66WVH8M8 PSRAM as TouchGFX framebuffer
Working with a custom STM32U5F9ZJT6Q board that has an ISS66WVH8M8 (Octo-SPI 166 MHz 64 Mbit PSRAM) that we would like to use for the framebuffer to a 1024x600 RGB888 LCD. The RAM sits on the HSPI1. With that as a reference I was able to configure the PSRAM in memory-mapped mode. A basic test of filling the RAM a pseudo-random pattern and reading it back convinced me the device is functioning. However, when I try to use it with DMA2D and LTDC, I just get garbage on the screen. When I use internal MCU RAM as the framebuffer, the setup shows my TouchGFX screen as expected.
Project is setup in CubeIDE 1.16.0. TouchGFX Designer 4.24.0 generats the user interface.
I've read the following:
- Section 30 (Hexadeca-SPI interface) of the RM0456 (STM32U5 Series Reference manual).
- AN5050 Application Note on XSPI interface.
- STM32U59xxx STM32U5Axxx Errata sheet.
I can share any setup or memory initialization code if it is helpful.
I have concerns the RAM might not fully work with the U5. One item of concern is the setting the memory type. I used to "AP Memory" (based on someone who had a ISS66WVS4M8 part on a NUCLEO H7 board). The PSRAM datasheet shows a split between the upper 5 and lower 4 bits of the column address, which sounds like the AP memory mode. It also shows byte ordering in D1/D0 format like Macronix memory.
I'm not sure where the problem comes from and looking for items to check.
