SSD1351 register problem

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

  • SSD1351 register problem

    I'm working with STEmWin V5.28 with an SSD1351 Oled display. 8 bit parallel interface.
    I've configured the Flex driver like this (removed some irrelevant code lines)

    C Source Code

    1. pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);
    2. Config.Orientation = 0;
    3. GUIDRV_FlexColor_Config(pDevice, &Config);
    4. GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66722, GUIDRV_FLEXCOLOR_M16C0B8);



    On Init the driver writes to the register 0xA0 a value of 0x00, which is the wrong value.

    Referring here:
    hpinfotech.ro/SSD1351.pdf


    Register 0xA0 bits 7:6 set the colour depth. 00b is 256 colour, despite the driver being set for 565. The correct value is 01b for 65K colour.
    Also for my display bit 5 needs to be set (enable COMsplit odd even) and bit 4 to be set (scan from COM[N-1} to COM0.)
    So my display works with a value of 0x70.

    I've hacked my code to intercept that register write and change the value, but is there something with my configuration that is causing this?
    Thanks.
  • Hi,

    You wrote: "Register 0xA0 bits 7:6 set the colour depth. 00b is 256 colour"

    Please note that this is not right:
    [img]data:image/png;base64,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[/img]

    Bit 5 can be set using the configuration structure. Here is a sample:

    C Source Code

    1. void LCD_X_Config(void) {
    2. GUI_DEVICE * pDevice;
    3. GUI_PORT_API PortAPI = {0};
    4. CONFIG_FLEXCOLOR Config = {0};
    5. pDevice = GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);
    6. LCD_SetSizeEx (0, XSIZE_PHYS, YSIZE_PHYS);
    7. LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);
    8. PortAPI.pfWrite8_A0 = LCD_X_6800_8_Write00;
    9. PortAPI.pfWrite8_A1 = LCD_X_6800_8_Write01;
    10. PortAPI.pfWriteM8_A1 = LCD_X_6800_8_WriteM01;
    11. PortAPI.pfReadM8_A1 = LCD_X_6800_8_ReadM01;
    12. GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66722, GUIDRV_FLEXCOLOR_M16C0B8);
    13. Config.RegEntryMode = 0x20; // Enable COM Split Odd Even
    14. GUIDRV_FlexColor_Config(pDevice, &Config);
    15. }
    Display All


    Regards, Jörg
    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.
  • Thank you for the reply.

    Which data sheet did you get those register details from?

    The one I linked (page 32), and my display, say this:

    A[7:6] Set Color Depth,
    00b 256 color
    01b 65K color, [reset]
    10b 262k color, 8/18-bit,16 bit (1st option) MCU interface
    11b 262k color, 16 - bit MCU interface