Configuration of display with ST7789V controller

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Configuration of display with ST7789V controller

      Hello,

      I'm going to develop an application with emWin using an RGB display which pixel dimensions is 240 x 320 and its display controller is the Sitronix ST7789V while the data communication will be made through the 8080 parallel interface.
      Reading the ST7789V I found out that on the chip a display RAM is included (240 x 320 x 18bits) and I also read, on the emWin manual, that the ST7789V controller is supported for the drivers GUIDRV_CompactColor_16 and for the GUIDRV_FlexColor.

      Does this mean that I do not need to reserve a frame/frames RAM memory (even though I have to assign some RAM to emWin library)? Or emWin requires some internal frame buffer to improve performances?

      What will be the steps to configure emWin (STemWin in my case as I will use an STM32)? I'm still a bit confused on what I should do...

      If you also have some example code for the configuration it will be highly appreciated.

      Thank you!

      Regards,
      Mark
    • Hi,

      For the ST7789 the GUIDRV_FlexColor function GUIDRV_FLEXCOLOR_F66709 should be used.

      Unfortunately, we don't have an example for the ST7789 but since there are several other controllers using GUIDRV_FLEXCOLOR_F66709 you can use the one attached a as a reference. Of course, you have to adapt the _InitController() function according to the initialization sequence of the ST7789.


      In general no framebuffer on MCU side is required, but emWin still needs some meory allocated as working RAM.

      It is possible to use a cached version of the driver. This way emWin will perform any drawing operation first into the cache. Once all drawing operations are finished, it will flush the changed area of the cache at once. This way you can avoid flickering effects.

      Of course, this cache will require some memory which gets allocated from the memory block designated to emWin (most likely in GUIConf.c). The required memory is calculated as follows:
      xSize * ySize * Bytes per pixel

      Regards,
      Sven
      Files
      • LCDConf.zip

        (1.97 kB, downloaded 949 times, last: )
      Please read the forum rules before posting.

      Keep in mind, this is *not* a support forum.
      Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
      Should you be entitled to support you can contact us via our support system: segger.com/ticket/

      Or you can contact us via e-mail.
    • SEGGER - Schoenen wrote:

      Hi,

      For the ST7789 the GUIDRV_FlexColor function GUIDRV_FLEXCOLOR_F66709 should be used.

      Unfortunately, we don't have an example for the ST7789 but since there are several other controllers using GUIDRV_FLEXCOLOR_F66709 you can use the one attached a as a reference. Of course, you have to adapt the _InitController() function according to the initialization sequence of the ST7789.


      In general no framebuffer on MCU side is required, but emWin still needs some meory allocated as working RAM.

      It is possible to use a cached version of the driver. This way emWin will perform any drawing operation first into the cache. Once all drawing operations are finished, it will flush the changed area of the cache at once. This way you can avoid flickering effects.

      Of course, this cache will require some memory which gets allocated from the memory block designated to emWin (most likely in GUIConf.c). The required memory is calculated as follows:
      xSize * ySize * Bytes per pixel

      Regards,
      Sven
      Hi Sven,
      thank you for your support!
      I will try to configure emWin then and see what performance can be achieved (the HW is quite basic stuff).

      Regards,
      Mark