NHD-2.4-240320-CTCI#-T white screen only

Comments

12 comments

  • dfansler

    BTW I have tried 3 different displays with no luck.
    David

    0
  • dfansler

    And the display is a NHD-2.4-240320SF

    0
  • Saurabh_B

    Hi David,

    Would you be able to confirm the full part number of the display, along with the date code printed on it.

    The controller has changed on the display in the past, I would like to confirm the controller used on the display.

    0
  • dfansler

    Will do when I get home this afternoon
    Thanks
    David

    0
  • dfansler

    Saurabh_B: here is a list of the displays I have - Thanks, David

    NHD-2.4-240320SF-CTXI#-T  2610   8631N00704T
    NHD-2.4-240320SF-CTXI#     2610  8631Q100719W
    NHD-2.4-240320SF-CTXI#     2610  8631Q100719W
    NHD-2.4-240320SF-CTXI#-T  2610  8631N10074T
    NHD-2.4-240320SF-CTXI#     2610  8631Q100719W
    NHD-2.4-240320SF-CTXI#-T  2610  8631N10074T
    NHD-2.4-240320SF-CTXI#     2610  8631Q100719W
    NHD-2.4-240320SF-CTXI#-T  2610  8634N100704T

    NHD-LGC128128BZ-FSW-GBW   100810-07-03-23
    NHD-C128128BZ-FSW-GBW   0033-000-1001  107940-09-3-31

    0
  • Saurabh_B

    These displays do use the older ILI9340 controller, I would recommend trying the values in the code below:

    https://newhavendisplay.com/content/app_notes/2-4TFT_ILI9340.txt

    After initialization are you sending any data to the display?

    0
  • dfansler

    Hi Saurabh_B - thinking you were probably off for Good Friday, so I looked at the data on the different examples of code for the 2.4 display, and tried the 3 that seemed post probable.

    The ILI9340 was the easiest code to port since I had used the same function names for writing commands and data as the posted code.

    Unfortunately, I still have had no luck.  I am turning on the display and I think I am sending valid data to display

    My main.c looks like:
    int main(void)
    {
       flashc_set_wait_state(1);
       board_init();
    //   IO_TEST();
       init_lcd();
            TFT_24S_Write_Command(0x0029);            //display ON
       write_green();
            while(1)
              {}
    }
    void write_green(void)
    {
          unsigned int i;
       TFT_24S_Write_Command(0x002C);              //command to begin writing to frame memory
       for(i=0;i<38400;i++)         //fill screen with blue pixels
       {
                TFT_24S_Write_Data(0x0f10); //random color
       }
            for(i=0;i<38400;i++)         //fill screen with green pixels
       {
                TFT_24S_Write_Data(0xE05f);  //random color
            }
    return;
    }

    Any ideas?
    Thanks,
    David

    0
  • dfansler

    Now that  I have the display running - and it will only run using the ILI9328 code, I have started to try to fine tune the timing to the display.  The values I am having to use are MUCH larger than what the spec sheet says.  For example, doing a simple repetitive write of a single color to the screen, I have to put a 10ms delay between the output of the data and the first write strobe.  Between the write strobe low and high, I have to add a 1us delay.  Anything less and the colors are wrong.

    I have looked at the at the rise time of the lines with my 500MHz 2GS/s scope and it consistantly shows a 3.6ns rise time.  I took the LED's off the lines to eliminate any extra load.

    I have put a video of the display running with different timings on my website at www.dv-fansler.com/hidden.htm  .  The colors are suppose to be blue, green, red, white, black for both the full screen and the window.  The rectangale in the upper left corner is the tab to pull off the display protector.

    Any ideas on the speed issue?
    Kind regards,
    David

    0
  • Saurabh_B

    Thanks for the video.

    I will get back to you shortly with the delays issue.

    0
  • dfansler

    ok - thanks
    David

    0
  • Saurabh_B

    What changes have been made to the initialization?

    0
  • dfansler

    Very small - only 2 changes, one to go from 18 bit to 16 bit and one to raise the refresh rate.
    The unit will only show true colors if I delay at least 4ms between sending each data word. 
    This is really starting to become frustrating.

    Here is my current initialization:
    void init_lcd(void)
    {

    //II9328

    gpio_set_pin_low(LCD_nRESET);       //cycle the reset line
    delay_ms(250);
    gpio_set_pin_high(LCD_nRESET);   //cycle the reset line
    delay_ms(250);
       
    TFT_24S_Write_Command(0x0000); TFT_24S_Write_Data(0x0001);//same as NHD code
    TFT_24S_Write_Command(0x0001); TFT_24S_Write_Data(0x0100);//same as NHD code
    TFT_24S_Write_Command(0x0002); TFT_24S_Write_Data(0x0700);//same as NHD code
    TFT_24S_Write_Command(0x0003); TFT_24S_Write_Data(0x1030);//same as NHD code
    TFT_24S_Write_Command(0x0004); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0008); TFT_24S_Write_Data(0x0202);//same as NHD code
    TFT_24S_Write_Command(0x0009); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x000A); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x000C); TFT_24S_Write_Data(0x0001);//changed from 0x0000
    TFT_24S_Write_Command(0x000D); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x000F); TFT_24S_Write_Data(0x0000);//same as NHD code

    TFT_24S_Write_Command(0x0010); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0011); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0012); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0013); TFT_24S_Write_Data(0x0000);//same as NHD code
    delay_ms(200);                                                                           //same as NHD code
    TFT_24S_Write_Command(0x0010); TFT_24S_Write_Data(0x17B0);//same as NHD code
    TFT_24S_Write_Command(0x0011); TFT_24S_Write_Data(0x0137)
    delay_ms(50);                                                                           //same as NHD code
    TFT_24S_Write_Command(0x0012); TFT_24S_Write_Data(0x013B);
    delay_ms(50);                                                                           //same as NHD code
    TFT_24S_Write_Command(0x0013); TFT_24S_Write_Data(0x1900);//same as NHD code
    TFT_24S_Write_Command(0x0029); TFT_24S_Write_Data(0x0007);//same as NHD code
    TFT_24S_Write_Command(0x002B); TFT_24S_Write_Data(0x0009);//was 0x0020 which did nothing my value gives a 60Hz refresh rate
    delay_ms(50);                                                                           //same as NHD code
    TFT_24S_Write_Command(0x0020); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0021); TFT_24S_Write_Data(0x0000);//same as NHD code

    TFT_24S_Write_Command(0x0030); TFT_24S_Write_Data(0x0007);//same as NHD code
    TFT_24S_Write_Command(0x0031); TFT_24S_Write_Data(0x0504);//same as NHD code
    TFT_24S_Write_Command(0x0032); TFT_24S_Write_Data(0x0703);//same as NHD code
    TFT_24S_Write_Command(0x0035); TFT_24S_Write_Data(0x0002);//same as NHD code
    TFT_24S_Write_Command(0x0036); TFT_24S_Write_Data(0x0707);//same as NHD code
    TFT_24S_Write_Command(0x0037); TFT_24S_Write_Data(0x0406);//same as NHD code
    TFT_24S_Write_Command(0x0038); TFT_24S_Write_Data(0x0006);//same as NHD code
    TFT_24S_Write_Command(0x0039); TFT_24S_Write_Data(0x0404);//same as NHD code
    TFT_24S_Write_Command(0x003C); TFT_24S_Write_Data(0x0700);//same as NHD code
    TFT_24S_Write_Command(0x003D); TFT_24S_Write_Data(0x0A08);//same as NHD code

    TFT_24S_Write_Command(0x0050); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0051); TFT_24S_Write_Data(0x00EF);//same as NHD code
    TFT_24S_Write_Command(0x0052); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0053); TFT_24S_Write_Data(0x013F);//same as NHD code
    TFT_24S_Write_Command(0x0060); TFT_24S_Write_Data(0x2700);//same as NHD code
    TFT_24S_Write_Command(0x0061); TFT_24S_Write_Data(0x0001);//same as NHD code
    TFT_24S_Write_Command(0x006A); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0090); TFT_24S_Write_Data(0x0010);//same as NHD code
    TFT_24S_Write_Command(0x0092); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0095); TFT_24S_Write_Data(0x0110);//same as NHD code
    TFT_24S_Write_Command(0x0097); TFT_24S_Write_Data(0x0000);//same as NHD code
    TFT_24S_Write_Command(0x0007); TFT_24S_Write_Data(0x0173);//same as NHD code
    delay_ms(10);                                                                           //same as NHD code
    return;
    }

    0

Please sign in to leave a comment.