Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Michael_L

Pages: 1 ... 6 7 [8] 9 10 ... 24
106
TFTs / Re: NHD-7.0-800480EF-20 Pinout
« on: December 19, 2014, 11:53:06 AM »
You are very welcome, and thank you for your kind feedback!  :D

107
TFTs / Re: NHD-7.0-800480EF-20 Pinout
« on: December 18, 2014, 09:21:49 AM »
The TE signal is not available to the user, and is already handled.  The B/L enable is listed as power supply, but you are correct; it is an MPU connection.  You may use this to turn OFF/ON the backlight.  It can be left unconnected because there is a pull-up resistor on the board.  The MPU should only need to sink less than 1mA.  The same goes for the DISP signal, except this is used for blanking the display as you have mentioned.

108
TFTs / Re: Vertical colored lines
« on: December 18, 2014, 09:15:18 AM »
As long as you follow the sequence as provided in the example code it should work every time.  Take special note of the RESET line being toggled in the beginning and also the delays around it (in ms).

109
OLEDs / Re: Font for NHD-2.8-25664UCB2-ND
« on: December 15, 2014, 05:23:26 PM »
The NHD-2.8-25664UCB2 does not have a built-in font table.  You may use one in your software, or switch to the NHD-2.8-25664UMB3, which is the same display but with an IC containing fonts for various languages/sizes.

110
TFTs / Re: TFT LCD pixels sticking / burning
« on: December 15, 2014, 05:20:47 PM »
The only way to reduce burn in with any display would be to effectively reduce how long you are displaying the same image on the display by use of screen savers, turning off the display, changing the image, etc.  We do not offer any Industrial Grade Displays for Panel Monitoring with long life, but I have yet to hear any customers comment/complain about burn-in with our TFTs.  As for your last question about Monochrome LCD Touch Technology free of this bug/problem of pixel damage, I cannot say for certain but we have not heard any complaints with any of our monochrome LCDs regarding this issue.

111
My apologies, I thought you were just referring to them as examples.  From batch to batch of the same display part number, the Vih spec will not change.  The Vih spec can vary between different parts, but not between 2 displays of the same part number.

112
The BF would be the only way I know of to check the internal state of the controller.  What voltage are you applying to V0?  The reason I ask is because it may be possible you have characters on the screen but cannot see them due to improper contrast voltage.  Do you have any character LCD library functions you are using, or is your code from scratch?  Have you successfully used this setup to communicate to an LCD previously?

113
No pull-ups/pull-downs are required on any of the signals on this display (even in 4-bit mode).  You may view in the datasheet that the wiring diagram for the display shows only one resistor, and it is adjustable (potentiometer) to allow for contrast adjustment.

114
TFTs / Re: NHD‐2.4‐240320SF‐CTXL#‐FTN1 touch-screen problem
« on: December 10, 2014, 11:19:05 AM »
I haven't seen this issue, nor have I heard any customers asking about it as of yet.  The fact that you have multiple displays makes it very doubtful that it has to do with a defective display.  Also, since the "untouchable region" pattern shown on the display is the same from display to display, it makes it even more unlikely.  I'm guessing it is something with your software (I know it works everywhere else but that doesn't mean there is some anomaly or special case happening in those areas).  Do you have a resistive touch panel controller IC you could try using instead of handling it manually via software?

115
Can you provide a full part number of the display you are using?

116
Character LCDs / Re: Issue with reading busy flag in 4 bit mode.
« on: December 10, 2014, 08:39:58 AM »
The byte order should remain the same between compatible controllers.

117
TFTs / Re: NHD‐2.4‐240320SF‐CTXL#‐FTN1 touch-screen problem
« on: December 10, 2014, 08:36:41 AM »
Do you have another display to try?  I'm curious to see if this is also occurring on another display, and if the "untouchable region" remains the same or changes.
If you do, please try it and let me know.  If you do not have another to try, you may either try purchasing another one to test, or emailing quality@newhavendisplay.com to set up an RMA.

118
TFTs / Re: Vertical colored lines
« on: December 04, 2014, 03:28:02 PM »
Other than electrical issues, I'd say it is a result of improper initialization.  I've responded to your previous post with some example code; I've also included it below:

Code: [Select]
//---------------------------------------------------------
/*
NHD_5_7_320240WFB_mega.ino
Program for writing to Newhaven Display 5.7 TFT with NHD-5.7-320240WFB-20 Controller Board (SSD1963, 8-bit)

(c)2013 Michael LaVine - Newhaven Display International, Inc.

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
*/
//---------------------------------------------------------

// The 8 bit data bus is connected to PORTA of the Arduino Mega2560
// 5V voltage regulator on Arduino Mega has been replaced with a 3.3V regulator to provide 3.3V logic

int RS  = 30;    // RS signal connected to Arduino digital pin 30
int WR  = 31;    // /WR signal connected to Arduino digital pin 31
int RD  = 32;    // /RD signal connected to Arduino digital pin 32
int RES = 33;    // /RES signal connected to Arduino digital pin 33

// /CS signal tied to GND

//;******************************************************************************
void TFT_Write_Command(unsigned char command)
{
  digitalWrite(RS, LOW);
  PORTA = command;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//;******************************************************************************
void TFT_Write_Data(unsigned char data)
{
  //digitalWrite(RS, HIGH);
  PORTA = data;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//====================================================
void TFT_Command_Write(unsigned char REG,unsigned char VALUE)
{
        TFT_Write_Command(REG);
        digitalWrite(RS, HIGH);
        TFT_Write_Data(VALUE);
}
//======================================================
void WindowSet(unsigned int s_x,unsigned int e_x,unsigned int s_y,unsigned int e_y)
{
TFT_Write_Command(0x2a); //SET column address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_x)>>8); //SET start column address
TFT_Write_Data(s_x);
TFT_Write_Data((e_x)>>8); //SET end column address
TFT_Write_Data(e_x);

TFT_Write_Command(0x2b); //SET page address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_y)>>8); //SET start page address
TFT_Write_Data(s_y);
TFT_Write_Data((e_y)>>8); //SET end page address
TFT_Write_Data(e_y);
}
void disp()
{
unsigned int i, j;
        WindowSet(0,319,0,239);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
for(i=0;i<240;i++)         //fill screen with blue pixels
{
    for(j=0;j<320;j++)
            {
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,319,0,239);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<240;i++)         //fill screen with green pixels
{
    for(j=0;j<320;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,319,0,239);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<240;i++)         //fill screen with red pixels
{
    for(j=0;j<320;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
            }
}
}
//======================================================
void setup()
{
  DDRA = 0xFF;
  PORTA = 0x00;
  DDRC = 0xFF;
  PORTC = 0x00;
  digitalWrite(RD, HIGH);
  digitalWrite(WR, LOW);
  digitalWrite(RES, LOW);
  delay(120);
  digitalWrite(RES, HIGH);
  delay(120);
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xe2);         //set multiplier and divider of PLL
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x1d);
  TFT_Write_Data(0x02);
  TFT_Write_Data(0x04);
  TFT_Command_Write(0xe0,0x01);    //Enable PLL
  delay(1);
  TFT_Command_Write(0xe0,0x03);    //Lock PLL
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xb0); //SET LCD MODE  SET TFT 18Bits MODE
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x0c); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x80); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x01); //SET horizontal size=320-1 HightByte
  TFT_Write_Data(0x3f);         //SET horizontal size=320-1 LowByte
  TFT_Write_Data(0x00); //SET vertical size=240-1 HightByte
  TFT_Write_Data(0xef); //SET vertical size=240-1 LowByte
  TFT_Write_Data(0x00); //SET even/odd line RGB seq.=RGB
  TFT_Command_Write(0xf0,0x00);         //SET pixel data I/F format=8bit
  TFT_Command_Write(0x36,0x09);         //SET address mode=flip vertical 
  TFT_Write_Command(0xe6);    //SET PCLK freq
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x00);
  TFT_Write_Data(0xe7);
  TFT_Write_Data(0x4f);
  TFT_Write_Command(0xb4); //SET HBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x01); //SET HSYNC Total=440
  TFT_Write_Data(0xb8);
  TFT_Write_Data(0x00); //SET HBP 68
  TFT_Write_Data(0x44);
  TFT_Write_Data(0x0f);  //SET HSYNC Pulse Width=128=127pixels+1
  TFT_Write_Data(0x00); //SET Hsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Data(0x00); //SET Hsync pulse subpixel start position
  TFT_Write_Command(0xb6); //SET VBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x01); //SET Vsync total
  TFT_Write_Data(0x08);
  TFT_Write_Data(0x00); //SET VBP=19
  TFT_Write_Data(0x13);
  TFT_Write_Data(0x07);  //SET VSYNC Pulse Width= 8=7lines+1
  TFT_Write_Data(0x00); //SET Vsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Command(0x13); //SET display on
  //TFT_Write_Command(0x38); //SET display on
  TFT_Write_Command(0x29); //SET display on
  delay(10);
}

void loop()
{
  disp();
  delay(1000); 
}

You will notice it is for the 8-bit interface, however, the initialization/sequence/timing will be the same because even in 16-bit mode the commands are sent using only 8-bits.

119
TFTs / Re: NHD-5.7-320240WFB-ETXI #-T-1
« on: December 04, 2014, 03:24:37 PM »
Below is some example code for that display+controller written for the Arduino Mega:

Code: [Select]
//---------------------------------------------------------
/*
NHD_5_7_320240WFB_mega.ino
Program for writing to Newhaven Display 5.7 TFT with NHD-5.7-320240WFB-20 Controller Board (SSD1963, 8-bit)

(c)2013 Michael LaVine - Newhaven Display International, Inc.

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
*/
//---------------------------------------------------------

// The 8 bit data bus is connected to PORTA of the Arduino Mega2560
// 5V voltage regulator on Arduino Mega has been replaced with a 3.3V regulator to provide 3.3V logic

int RS  = 30;    // RS signal connected to Arduino digital pin 30
int WR  = 31;    // /WR signal connected to Arduino digital pin 31
int RD  = 32;    // /RD signal connected to Arduino digital pin 32
int RES = 33;    // /RES signal connected to Arduino digital pin 33

// /CS signal tied to GND

//;******************************************************************************
void TFT_Write_Command(unsigned char command)
{
  digitalWrite(RS, LOW);
  PORTA = command;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//;******************************************************************************
void TFT_Write_Data(unsigned char data)
{
  //digitalWrite(RS, HIGH);
  PORTA = data;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//====================================================
void TFT_Command_Write(unsigned char REG,unsigned char VALUE)
{
        TFT_Write_Command(REG);
        digitalWrite(RS, HIGH);
        TFT_Write_Data(VALUE);
}
//======================================================
void WindowSet(unsigned int s_x,unsigned int e_x,unsigned int s_y,unsigned int e_y)
{
TFT_Write_Command(0x2a); //SET column address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_x)>>8); //SET start column address
TFT_Write_Data(s_x);
TFT_Write_Data((e_x)>>8); //SET end column address
TFT_Write_Data(e_x);

TFT_Write_Command(0x2b); //SET page address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_y)>>8); //SET start page address
TFT_Write_Data(s_y);
TFT_Write_Data((e_y)>>8); //SET end page address
TFT_Write_Data(e_y);
}
void disp()
{
unsigned int i, j;
        WindowSet(0,319,0,239);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
for(i=0;i<240;i++)         //fill screen with blue pixels
{
    for(j=0;j<320;j++)
            {
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,319,0,239);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<240;i++)         //fill screen with green pixels
{
    for(j=0;j<320;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,319,0,239);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<240;i++)         //fill screen with red pixels
{
    for(j=0;j<320;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
            }
}
}
//======================================================
void setup()
{
  DDRA = 0xFF;
  PORTA = 0x00;
  DDRC = 0xFF;
  PORTC = 0x00;
  digitalWrite(RD, HIGH);
  digitalWrite(WR, LOW);
  digitalWrite(RES, LOW);
  delay(120);
  digitalWrite(RES, HIGH);
  delay(120);
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xe2);         //set multiplier and divider of PLL
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x1d);
  TFT_Write_Data(0x02);
  TFT_Write_Data(0x04);
  TFT_Command_Write(0xe0,0x01);    //Enable PLL
  delay(1);
  TFT_Command_Write(0xe0,0x03);    //Lock PLL
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xb0); //SET LCD MODE  SET TFT 18Bits MODE
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x0c); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x80); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x01); //SET horizontal size=320-1 HightByte
  TFT_Write_Data(0x3f);         //SET horizontal size=320-1 LowByte
  TFT_Write_Data(0x00); //SET vertical size=240-1 HightByte
  TFT_Write_Data(0xef); //SET vertical size=240-1 LowByte
  TFT_Write_Data(0x00); //SET even/odd line RGB seq.=RGB
  TFT_Command_Write(0xf0,0x00);         //SET pixel data I/F format=8bit
  TFT_Command_Write(0x36,0x09);         //SET address mode=flip vertical 
  TFT_Write_Command(0xe6);    //SET PCLK freq
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x00);
  TFT_Write_Data(0xe7);
  TFT_Write_Data(0x4f);
  TFT_Write_Command(0xb4); //SET HBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x01); //SET HSYNC Total=440
  TFT_Write_Data(0xb8);
  TFT_Write_Data(0x00); //SET HBP 68
  TFT_Write_Data(0x44);
  TFT_Write_Data(0x0f);  //SET HSYNC Pulse Width=128=127pixels+1
  TFT_Write_Data(0x00); //SET Hsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Data(0x00); //SET Hsync pulse subpixel start position
  TFT_Write_Command(0xb6); //SET VBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x01); //SET Vsync total
  TFT_Write_Data(0x08);
  TFT_Write_Data(0x00); //SET VBP=19
  TFT_Write_Data(0x13);
  TFT_Write_Data(0x07);  //SET VSYNC Pulse Width= 8=7lines+1
  TFT_Write_Data(0x00); //SET Vsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Command(0x13); //SET display on
  //TFT_Write_Command(0x38); //SET display on
  TFT_Write_Command(0x29); //SET display on
  delay(10);
}

void loop()
{
  disp();
  delay(1000); 
}

You will notice it is for the 8-bit interface, however, the initialization/sequence/timing will be the same because even in 16-bit mode the commands are sent using only 8-bits.

120
Graphic LCDs / Re: NHD-C160100DiZ-FSW-FBW w/PIC18F47J53
« on: December 04, 2014, 03:17:10 PM »
Please disregard those lines of code, there are simply left there from other code snippets from another initialization sequence.  Those pins don't connect to anything on this display.
The ST7528 datasheet does not give a minimum for I2C clock frequency, only a max of 400kHz.  Therefore, I would think you can communicate at any speeds lower than that, even as low as 10kHz.  Is there any way to try, say, 100kHz with your setup?  Also, what value pullups are you using?  Can you try 10kΩ? Is it possible to make your I2C lines shorter?

Pages: 1 ... 6 7 [8] 9 10 ... 24