NHD0220CW-AB3 issues
Hello,
Perhaps someone can enlighten me.
Several years ago a product was designed that used the 2X20 module NHD-0220CW-AR3 which is now obsolete.
The display is connected to a board through a 40cm flat cable, with terminating resistors to ground (510 Ohm or 1KOhm).
Everything worked perfectly.
Recently I have assembled over 20 products that use the NHD0220CW-AB3 instead.
Now, quite consistently the display works for anywhere between 2 minutes to 24 hours, then suddenly goes blank. A RESET does not solve this, only a power cycle. Even a power cycle does not always work straight away, I need to wait a few good seconds disconnected before the display goes back to life on power-up.
Furthermore, several displays developed permanent faults: good for a few seconds then suddenly gibberish display etc.
The software and hardware driving them is 1:1 the same. I have tried to slow down the communication considerably to ridiculously slow rates, but still the issue persists. Also, I tried an initialization code from your post "NHD-0216CW/ 0220CW/ 0420CW - with Arduino", with no improvement.
Important: older 2X20 red display units, as well as several 4X20 units I have on hand, work perfectly - same software, same power, same flat cable.
The communication mode is 4-bit parallel.
Attached is a snapshot of my command send routine, after loads of delays inserted.
Any clue as to what is happening will be greatly appreciated.
Thank You,
-Al.
==============================================
#define LCD_EN_PULSE DELAY(4); LCD_EN=1; DELAY(254); LCD_EN =0; DELAY(54)
#define LCD_EN_PULSE_SHORT DELAY(4); LCD_EN=1; DELAY(54); LCD_EN =0; DELAY(4)
#define LCD_RS_COMMAND {LCD_DC = 0;}
void LCD_write_cmd(uns8 x)
{
DELAY(254)
LCD_CS=0;
LCD_RS_COMMAND
LCD_EN=1;
if (x&16)LATD0 = 1;else LATD0=0;
if (x&32)LATD1 = 1;else LATD1=0;
if (x&64)LATD2 = 1;else LATD2=0;
if (x&128)LATD3 = 1; else LATD3=0;
LCD_EN_PULSE_SHORT
LCD_EN=1;
if (x&1) LATD0 = 1; else LATD0=0;
if (x&2) LATD1 = 1; else LATD1=0;
if (x&4) LATD2 = 1; else LATD2=0;
if (x&8) LATD3 = 1; else LATD3=0;
LCD_EN_PULSE
LCD_CS=1;
short_delay();
}
-
Hi Al,
Thank you for the detailed description of your issue. The two displays should be fully compatible in software and wiring. However, there was a change to the NHD-0220CW-AB3 models in 2022 that affected the applicable voltage range of the display. As such it would be helpful to know what revision of the display you are using in addition to what voltage you are supply the display and how you are setting pin 3 (REGVDD).
If you were using the 2.8V operation for your existing setup, please note that the change in the voltage range of the newer displays is for 3.3V typically. While they can still function around the minimum voltage (now 2.7V) a drop in power can cause fault to the display operation and would require a full reset to resume normal operation.
0
Please sign in to leave a comment.
Comments
1 comment