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 - Ted_M

Pages: [1] 2
1
TFTs / Re: SPI problem with NHD-3.5-320240FT-CSXN-CTP
« on: April 05, 2018, 11:57:37 AM »
Hi Rainer,

Unfortunately we have not tested this using an MPSSE interface.  If you find any issues using this type of interface, please report them here for us to help.
         

2
TFTs / Re: SPI problem with NHD-3.5-320240FT-CSXN-CTP
« on: April 04, 2018, 12:00:22 PM »
Hi Rainer,

The added buffers (74LCX125) on the FTDI board allow the SPI master and slave interface of the FT8xx to be 5v tolerant. 
Our board will support the 3.3v SPI interface and is not 5v tolerant. Thanks for your input and let us know what you find.

Best Regards,
Ted

3
TFTs / Re: SPI problem with NHD-3.5-320240FT-CSXN-CTP
« on: April 04, 2018, 10:11:03 AM »
Hi Rainer,

The MPSSE cable may not supply enough current to drive the display and the backlight on it's own.  Please describe how the display is receiving power in your configuration. 

Try connecting this display to an Arduino using our NHD-FT81x-SHIELD for easier prototyping.  It has a built in Buck regulator that will supply the proper power to the display and also drive the backlight.

http://www.newhavendisplay.com/userguides/NHD-FT81x-SHIELD_User_Guide.pdf

Best Regards,
Ted

4
OLEDs / Re: NHD-0420CW-Ax3 I2C VDD level
« on: March 15, 2018, 09:35:05 AM »
Please refer to this post for clarification on the issue of using I2C mode at 5v:

http://www.newhavendisplay.com/NHD_forum/index.php/topic,3953.msg6560.html#msg6560

5
OLEDs / Re: NHD‐3.12‐25664UMB3
« on: February 27, 2018, 11:14:19 AM »
The Multi-font IC can be left open and unused by floating pins 19,20,21 and 22.  The display itself will run independent from the onboard Multi-font IC.

6
Graphic LCDs / Re: Any issue powering the NHD-C12864WO-B1TFH#-M from 3.3V?
« on: February 27, 2018, 09:03:40 AM »
The NHD-C12864WO-B1TFH#-M display can be powered safely by 3.3v so a single power source can be used for your application.

7
OLEDs / Re: BITMAPS FOR OLED SSD1322
« on: February 26, 2018, 03:24:29 PM »
Hi Semed,

Try using the 2 Pixels/byte setting in LCD Assistant.

Please refer to section 8.3.1 on page 22 of the SSD1322 specification for more details on using Gray Scale Mode:

http://www.newhavendisplay.com/appnotes/datasheets/OLEDs/SSD1322.pdf

- Ted

8
Graphic LCDs / Re: NHD-C160100DiZ-FSW-FBW won't display anything
« on: February 22, 2018, 10:47:03 AM »
Hi Ronnie,

Please take a look at our website for more detailed example code. It is listed in our Application Notes section under example code for Chip on Glass displays.
Here we provide more complete I2C code showing writes to the display.
https://newhavendisplay.com/appnotes/excode/txt/CoGLCD/C160100DiZ.txt

I hope this code is more helpful to reference. The code listed in the display datasheet is only to provide the example initialization sequence.

9
OLEDs / Re: [STM32] [NHD-0420W-Ax3] [US2066] Problem Arduino to C
« on: February 21, 2018, 10:13:12 AM »
Hi Arrgon,

Use the US2066 code for examples using the #include "NHD_US2066.h"  for I2C mode.

https://github.com/NewhavenDisplay/NHD_US2066/blob/master/NHD_US2066.cpp

10
OLEDs / Re: [NHD-0420CW-Ax3] Start my display in C language
« on: February 21, 2018, 09:15:38 AM »
Hi Arrgon,

Below are the commands necessary to initialize the display.  Additional support code can be found in our datasheet:
http://www.newhavendisplay.com/specs/NHD-0420CW-AW3.pdf
 
More example code can also be found on our Github site:

https://github.com/NewhavenDisplay/NHD_US2066
 

Code: [Select]
void init()
{
RES = 1;                 //reset HIGH inactive
delayms(1);            //delay
command(0x2A);    //function set (extended command set)
command(0x71);    //function selection A
data(0x00);            // disable internal VDD regulator (2.8V I/O). data(0x5C) = enable regulator (5V I/O)
command(0x28);    //function set (fundamental command set)
command(0x08);    //display off, cursor off, blink off
command(0x2A);    //function set (extended command set)
command(0x79);    //OLED command set enabled
command(0xD5);    //set display clock divide ratio/oscillator frequency
command(0x70);    //set display clock divide ratio/oscillator frequency
command(0x78);    //OLED command set disabled
command(0x09);    //extended function set (4-lines)
command(0x06);    //COM SEG direction
command(0x72);    //function selection B
data(0x00);           //ROM CGRAM selection
command(0x2A);    //function set (extended command set)
command(0x79);    //OLED command set enabled
command(0xDA);   //set SEG pins hardware configuration
command(0x10);    //set SEG pins hardware configuration
command(0xDC);   //function selection C
command(0x00);    //function selection C
command(0x81);    //set contrast control
command(0x7F);    //set contrast control
command(0xD9);    //set phase length
command(0xF1);    //set phase length
command(0xDB);    //set VCOMH deselect level
command(0x40);    //set VCOMH deselect level
command(0x78);    //OLED command set disabled
command(0x28);    //function set (fundamental command set)
command(0x01);   //clear display
command(0x80);   //set DDRAM address to 0x00
command(0x0C);   //display ON
delayms(100);       //delay
}

Please let me know if you have any questions.

11
OLEDs / Re: NHD-0420CW-A*3 VDD Voltage level
« on: February 14, 2018, 09:03:49 AM »
3.3V is ok to use for VDD on this display.

12
Accessories / Re: Bezel for 4.3" display
« on: July 03, 2017, 11:32:40 AM »
Please check http://www.elwoodcontrols.com as they will offer pre-made front bezels for our 4.3" TFT and many other sizes of our displays.

13
Here is some example Arduino code for a 2x16 display using I2C that may help to get you started.

/******************************************************
 * Using i2c on NHD 0216KZ3
 * ARDUINO MEGA
 */

#define SCLK 21
#define SDO 20



const char Slave    = 0x50;

const char t1[]=("Newhaven Display");
const char t2[]=("    LINE  2     ");

void I2C_out(unsigned char j){
  int n;
  unsigned char d;
  d=j;
  for(n = 0; n<8; n++){
    if((d&0x80) == 0x80)
      digitalWrite(SDO, HIGH);
    else
      digitalWrite(SDO, LOW);
    d = (d<<1);
    digitalWrite(SCLK, LOW);
    delay(10);
    digitalWrite(SCLK, HIGH);
    delay(5);
    digitalWrite(SCLK, LOW);
    delay(10);
  }
  digitalWrite(SCLK, HIGH);
  delay(1);
  while(SDO ==1){
   
    digitalWrite(SCLK, LOW);
    //delay(1);
    digitalWrite(SCLK, HIGH);
    //delay(1);
   
  }
  digitalWrite(SCLK, LOW);
}
void I2C_Start(){
  digitalWrite(SCLK, HIGH);
  digitalWrite(SDO, HIGH);
  digitalWrite(SDO, LOW);
  digitalWrite(SCLK, LOW);
}

void I2C_Stop(){
  digitalWrite(SDO, LOW);
  digitalWrite(SCLK, LOW);
  digitalWrite(SCLK, HIGH);
  digitalWrite(SDO, HIGH);
}
void disp(const char *text)
{
  int n;
  for(n=0;n<16;n++)
  {
    I2C_Start();
    delay(5);
    I2C_out(Slave);
    delay(5);
    I2C_out(*text);
    text++;
    I2C_Stop();
    delay(10);
  }
}

void setup() {
  // put your setup code here, to run once:
  pinMode(SDO, OUTPUT);
  pinMode(SCLK, OUTPUT);
  digitalWrite(SCLK, LOW);
  digitalWrite(SDO, LOW);
 
  I2C_Start();
  delay(1);
  I2C_out(0x50);
  delay(1);
 
  delay(10);
  I2C_out(0xFE);
  I2C_out(0x51);
  I2C_Stop();
  delay(100);
  I2C_Start();
  delay(5);
  I2C_out(Slave);
  delay(5);
  I2C_out(0xFE);
  I2C_out(0x46);
  delay(10);
  I2C_Stop();
  delay(100);
  I2C_Start();
  delay(5);
  I2C_out(Slave);
  delay(5);
  I2C_out(0xFE);
  I2C_out(0x47);
 

  delay(100);
  I2C_Stop();
  delay(10);
  I2C_Start();
    delay(5);
    I2C_out(Slave);
    delay(5);
    I2C_out(0xFE);
    I2C_out(0x52);
    delay(5);
    I2C_out(40);
    delay(5);
    I2C_Stop();
    delay(250);
 
 
}

void loop() {
  unsigned char x = 0x21;
  int i;
  I2C_Start();
  delay(5);
  I2C_out(Slave);
  delay(5);
  I2C_out(0xFE);
  I2C_out(0x51);
  I2C_Stop();
  double a;
  char buff[10];
  a = 2.523;

  sprintf(buff, "%g" , a);
  int n = 0;
  /*
    for (n = 0; n < 8 ; n ++){
      I2C_Start();
  delay(1);
  I2C_out(Slave);
  delay(1);
    I2C_out(buff[n]);
    delay(1);
    I2C_Stop();
    delay(1);
  }
 
  delay (2500);*/
  disp(t1);
  delay(100);

  delay(100);
  I2C_Start();
  delay(5);
  I2C_out(Slave);
  delay(5);
  I2C_out(0xFE);
  I2C_out(0x45);
  //delay(10);
  I2C_out(0x40);
  delay(10);
  I2C_Stop();
  delay(10);
  disp(t2);
  I2C_Stop();
  delay(1000);
  do{
   delay(10);
  for( i = 0 ; i < 50 ; i++){
    I2C_Start();
    delay(5);
    I2C_out(Slave);
    delay(5);
    I2C_out(0xFE);
    I2C_out(0x52);
    delay(5);
    I2C_out(i);
    delay(5);
    I2C_Stop();
    delay(5);
  }
  int b;
  for( i = 0 ; i < 51 ; i++){
    I2C_Start();
    delay(5);
    I2C_out(Slave);
    delay(5);
    I2C_out(0xFE);
    I2C_out(0x52);
    delay(5);
    b = 50 - i;
    I2C_out(b);
    delay(5);
    I2C_Stop();
    delay(25);
  }
  }while(1);
  /*for(i = 0; i < 57; i++){
    I2C_Start();
    delay(5);
    I2C_out(Slave);
    delay(5);
    I2C_out(x);
    x++;
    I2C_Stop();
    delay(10);
  }
// delay(5000);
 
  I2C_Start();
  delay(5);
  I2C_out(Slave);
  delay(5);
  I2C_out(0xFE);
 
  I2C_out(0x51);
  delay(10);

    I2C_out(0xFE);
  I2C_out(0x4B);
  delay(10);
  I2C_out(0xFE);
  I2C_out(0x46);
  delay(10);
  I2C_Stop();
  disp(t1);
  delay(1000);
  for( i = 0 ; i < 50 ; i++){
    I2C_Start();
    delay(5);
    I2C_out(Slave);
    delay(5);
    I2C_out(0xFE);
    I2C_out(0x52);
    delay(5);
    I2C_out(i);
    delay(5);
    I2C_Stop();
    delay(250);
  }
   I2C_Start();
    delay(5);
    I2C_out(Slave);
    delay(5);
    I2C_out(0xFE);
    I2C_out(0x52);
    delay(5);
    I2C_out(40);
    delay(5);
    I2C_Stop();
    delay(250);
 
  while(1);*/
 
}

14
We recommend using a level shifter to transition up to 5v logic levels to drive the display.
If 5v is not available in your design to power the display, then adding a 5v step-up DC to DC converter will be necessary.

15
OLEDs / Re: NHD-0420CW I2C interface
« on: February 02, 2017, 02:26:43 PM »
The Co bit can be kept low.  The data being sent will then be interpreted as Data or Command based on the  D/C# selection bit for the remainder of the write.  The I2C sequence will function as the standard protocol with the Co bit always low, beginning with the Start byte and using  D/C# and Ack/Nack bits until the last data byte ending with the stop.  If the Co bit is ever set High, then the display will ignore any data being sent to it during that time.

Pages: [1] 2