10 years, 2 months ago.

How to speed up SPI_TFT_ILI9341::cls function?

Hi,

Screen clearing is a bit slow as you can see from the video:

http://youtu.be/c15O3an6wFw

SPI_TFT_ILI9341 library can be found from here. It is using SPI at 10Mhz that is maximum for ILI9341.

http://mbed.org/users/dreschpe/code/SPI_TFT_ILI9341/docs/4c30bea883bc/SPI__TFT__ILI9341_8cpp_source.html

1 Answer

10 years, 1 month ago.

Hi Eero, I'm not so familiar with the ILI9341 display controller (I do not have one), but scanned the the code you referenced and the data sheet. Here's what comes to mind:

Interface Performance

  • SPI Clock Rate (as you noted)
  • SPI Transfer Efficiency of sending each byte. You might want to look at Erik Olieman's BurstSPI. There is a caution that his current implementation is for a more or less "write-only" operation, so while not suitable for a full replacement interface it may work very well for the cls( ) function.
  • Alternate Interface - Depending on the display, and your available IO, the 8 and 16-bit parallel interface would likely be much faster. [I have a different display module on 4-wire SPI, and not enough free pins for parallel, but the one I'm using has some hardware acceleration built-in...]

ILITEK ILI9341 chip

I looked over it's datasheet to see what it might offer in hardware. I leave it to you to see if these will help in your situation.

  • Section 8.2.2 - it suggests that a software reset blanks the display. Open question - is there then a lot of reinitialization to perform?
  • Section 8.2.18 - Display off. Open question - can you then fill the display ram without watching it fill?