Parallel SSD1963 vs SPI speed difference using ESP32. #1075
-
I am considering using 5" 480x272 displays with a parallel connected SSD1963. Either that or the 3.5" 480x320 SPI LCDs off of Aliexpress. I will be using the ESP32 as the processor. Can anyone give me an idea of the times difference to draw the screen using these options? The SPI approach is a lot easier. But if there is a big enough difference I will consider the SSD1963. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
As far as I am aware the SSD1963 ONLY supports a parallel interface but I think you have realised this already. The time to draw a screen in a real application will depend on what you wish to draw and the time it takes to fetch/decode/prepare any data as well. SPI displays are generally slower unless you get one that runs at 80MHz or have an application that can effectively use DMA (in which case performance at 40MHz or above is better than 8 bit parallel) for an ESP32. The ESP32 has a 20MHZ I/O clock so can only send 8 bit parallel data at ~40Mbps when allowing for the write strobe and data setup time. STM32 processors can go >2x faster with a parallel display (faster than the display can cope without speed limiting wait periods!) Old tech displays like the ILI9481 run fine with 8 bit parallel, but only operate at 10MHz SPI rate, so choose carefully. The common performance test used is the "graphicstest" sketch but this is mainly a function test program, so it has limited value for "real-world" applications. However the "Screen fill" test gives a good idea how long it takes to fill the entire screen 5 times. These are the results for a SSD1963 800 x 480 screen, so a smaller 272x480 display should be about 3x faster. So you will be able to clear the screen in ~52ms.
I like the ST7796 (but see here), which clears the screen in ~62ms:
|
Beta Was this translation helpful? Give feedback.
-
Based on the timings you provided above, it doesn't look like there ia a speed benefit using parallel mode with the ESP32. But I decided to try it anyway. Unfortunately without success. I'm using a board I designed at work. We use a PIC32 in the design. The unit that I am using has sockets for the PIC32 CPU module. Normally we the module soldered in but I have a few that have sockets so that when the programmers blow up the the CPU in their development unit, I can can easily replace it. (we had one programmer who regularly blew things up) What I did was match the LCD wire connections listed in Setup50_SSD1963_Parallel.h. #define TFT_WR 4 // Write strobe control pin - must use a pin in the range 0-31 #define TFT_D0 12 // Must use pins in the range 0-31 for the data bus I then changed User_Setup_Select.h I commented out I then opened TFT_Meter_4.INO, compiled, then loaded to the ESP32. Is there something I missed with the change to the setup? |
Beta Was this translation helpful? Give feedback.
-
One thing I forgot to include above. In Setup50_SSD1963_Parallel.h I changed the display type to |
Beta Was this translation helpful? Give feedback.
As far as I am aware the SSD1963 ONLY supports a parallel interface but I think you have realised this already.
The time to draw a screen in a real application will depend on what you wish to draw and the time it takes to fetch/decode/prepare any data as well.
SPI displays are generally slower unless you get one that runs at 80MHz or have an application that can effectively use DMA (in which case performance at 40MHz or above is better than 8 bit parallel) for an ESP32. The ESP32 has a 20MHZ I/O clock so can only send 8 bit parallel data at ~40Mbps when allowing for the write strobe and data setup time. STM32 processors can go >2x faster with a parallel display (faster than the display ca…