Questions? Call us: +1 760-918-6722

DT024DTFT RGB Mode pale contrast

I have designed two boards for use with the DT024DTFT display. One uses the 16 bit I80 RGB565 MCU Interface and the other uses the 18 bit RGB666 Interface. With the aid of code exsamples I got both running now.

Both board versions use basically the same init code except for the interface configuration of cause. The 18 Bit RGB version displays much smother color gradients then the 16 bit I80 version but the colors look pale compared to the I80 version.

I tried to adjust the contrast by changing the VCM 1/2 Control settings but with no visible result.

How can I adjust the contrast of the Display in RGB666 mode?

Kind Regards

Jens

Replies

engineering_seacomp's picture
engineering_seacomp
October 24, 2017

Hi,

Below is some init code for this display.

 

// The following is the for the Displaytech DT024DTFT IPS display
// Using the ILI9341

void InitDevice(void) {
    /////////////////////////////////////////////////////////////////////
    // Initialize the device
    /////////////////////////////////////////////////////////////////////

    // Turn backlight off with micro-controller gpio
    DisplayBacklightOff()

    // Hard reset display
    DisplayResetEnable(); //
    DelayMs(10);
    DisplayResetDisable();
    DelayMs(120);

    //Software Reset
    WriteCommand(0x01); // SOFTWARE_RESET
    //Supposed to wait at least 120ms, wait 250 to be safe
    DelayMs(250);
    WriteCommand(0x28); // DISPLAY_OFF
   
    WriteCommand(0xCF);  // POWER_B
    WriteData(0x00);
    WriteData(0xD1);
    WriteData(0X30);
    
    WriteCommand(0xED);  // POWER_ON_SEQUENCE_CTRL
    WriteData(0x64);
    WriteData(0x03);
    WriteData(0X12);
    WriteData(0X81);
    
    WriteCommand(0xE8);  // DRIVER_TIMING_CONTROL_A
    WriteData(0x85);
    WriteData(0x01);
    WriteData(0x78);

    WriteCommand(0xCB);  // POWER_CONTROL_A
    WriteData(0x39);
    WriteData(0x2C);
    WriteData(0x00);
    WriteData(0x34);
    WriteData(0x02);
    
    WriteCommand(0xF7); // PUMP_RATIO_CONTROL
    WriteData(0x20);
    
    WriteCommand(0xEA); // DRIVER_TIMING_CONTROL_B
    WriteData(0x00);
    WriteData(0x00);
    
    WriteCommand(0xC0); // POWER_1
    WriteData(0x16);    // VRH[5:0]
    
    WriteCommand(0xC1); // POWER_2
    WriteData(0x11);    // SAP[2:0];BT[3:0]
    
    WriteCommand(0xC5); // VCOM_1
    WriteData(0x20);  // 2B
    WriteData(0x2C);  // 2C
    
    WriteCommand(0xC7); // VCOM_2
    WriteData(0xC0);

    WriteCommand(0xF6); // INTERFACE_CONTROL  
    WriteData(0x01);
    WriteData(0x30);
    WriteData(0x00);

    WriteCommand(0xB6); // DISPLAY_FUNCTION     
    WriteData(0x0A);
    WriteData(0xA2);

    WriteCommand(0xB0); // RGB_INTERFACE_SIGNAL
    WriteData(0xC0);    // 0x40 DE mode, 0x60 sync mode

    WriteCommand(0x21); // INVERSION_ON

    WriteCommand(0x36); // MEMORY_ACCESS_CTRL
    WriteData(0x08);    // E8, 48, 88, RGB/BGR Swap
    
    WriteCommand(0x3A); // PIXEL_FORMAT_SET     
    WriteData(0x65);    // 0x65 16-bit 5-6-5 MCU, 0x55

    WriteCommand(0xB1); // FRAME_RATE_NORMAL  
    WriteData(0x00);
    WriteData(0x1B);

    WriteCommand(0xE0);  // POSITIVE_GAMMA_CORRECT
    WriteData(0x0F);
    WriteData(0x29);
    WriteData(0x24);
    WriteData(0x0C);
    WriteData(0x0E);
    WriteData(0x09);
    WriteData(0x4E);
    WriteData(0x78);
    WriteData(0x3C);
    WriteData(0x09);
    WriteData(0x13);
    WriteData(0x05);
    WriteData(0x17);
    WriteData(0x11);
    WriteData(0x00);
    
    WriteCommand(0XE1); // NEGATIVE_GAMMA_CORRECT
    WriteData(0x00);
    WriteData(0x16);
    WriteData(0x1B);
    WriteData(0x04);
    WriteData(0x11);
    WriteData(0x07);
    WriteData(0x31);
    WriteData(0x33);
    WriteData(0x42);
    WriteData(0x05);
    WriteData(0x0C);
    WriteData(0x0A);
    WriteData(0x28);
    WriteData(0x2F);
    WriteData(0x0F);

    //WriteComm(0xF2);       // 3Gamma Function Disable
    //WriteData(0x00);
    
    //WriteComm(0x26);       //Gamma curve selected
    //WriteData(0x01);

    // Must call DisplayWake()
    DisplayWake();
}

void DisplaySleep(void)
{
    DisplayBacklightOff();
    WriteCommand(0x10); // ENTER_SLEEP_MODE
}

void DisplayWake(void)
{
    WriteCommand(0x11);  // SLEEP_OUT
    DelayMs(120); //Wait to wake up

    //Display On
    WriteCommand(0x29); // DISPLAY_ON
    DisplayBacklightOn();
}