big trouble LCD not HD 44780 ( but it is NT 3881)

I have brought ( 20x 2) with backlight

formatting link

I have specially ask the sale-lady it must be HD 44780 compatible.

ALL the pins assignment of the same as a truly LCD module.

my truly LCD program does not work with the new SDEC LMC-SS2A20.

I really hate this. big trouble LCD not HD 44780 ( but it is NT 3881)

Reply to
Mylinux
Loading thread data ...

First glance tells me that the character ram address is different. Line one normally starts at 0x00 and yours is at 0x80. Line two normally starts at 0x40 and yours is at 0xC0.

There's probably more, I'll look closer... I'm bored.. :-)

Be Well, Greg the Grog

Reply to
Grog

$DEITY, cross-posted for 4 groups but they all seem to be on topic this time! Can't help you, but you do seem to be improving your aim. :)

--
Ron Sharp.
I just booted a 23 year old friend:
EXPLORER-85   VER 1.4
COPYRIGHT 1979
NETRONICS R&D
NEW MILFORD, CT.
Reply to
Android Cat

I have used your addresses that you told me.

it seems it is shifting out characters but it has "complete black spot" 5x8 pixel are appearing on each line.

please tell me more how to correct this.

I search alta-vista and deja.com in order to dig into the problem.

Reply to
Mylinux

5x8

and the output is a mess. garbage charaters embedded in each line.

Big trouble.

Reply to
Mylinux

other strange thing, I have not connected pin 15 and 16, it can display display backlight.

Reply to
Mylinux

From the data I've read, the NT3881 is a copy of the HD44780. I've used the HD44780 based LCD's and the CGRAM address for line 1 is 0x80 and line 2 is

0xC0.

The fact that you are getting something displayed is proof that the interface is working (in a fashion).

Try this:

Reset LCD. Send one character to line 1 - is garbage displayed in correct location - ie character 1 at position 1?

If so, then it may be a speed issue - try slowing down the communications to the LCD.

Richard.

Reply to
Richard

I recently had a problem with a LCD module that was supposed to be HD44780 compatible. I cannot now recall if it used the NT3881. What I found was when one read from the module to check the busy bit, the two nibbles was swapped. Busy was at bit 3 in stead of bit 7. When I changed my standard LCD code to swap the nibbles on a read of the busy flag, everything worked as expected.

Regards Anton Erasmus

Reply to
Anton Erasmus

I can't locate the busy bit from nt 3881 pdf.

I wrote up the program to print "A" to lcd

but the trouble is black spot 3 times then A then one japanese character then 8

Reply to
Mylinux

People would probably be able to help you a little more if you gave us a code snippet and also how you have wired your LCD: 4bit or 8bit interface?

As others have already pointed out the row addresses are 0x80 and 0xc0. The UniWorldTech page says it is 5x8 matrix: are you setting this in the function byte during initialisation?

Andrew

Reply to
Andrew Jackson

The

#include "panel.h" // line 30 16 -----> 20 on 20th Sept 2003

void lcd_reset() { out_lcd(0x38,0); file://Display mode usleep(10000); lcd_clr(); file://Clear out_lcd(0x0c,0); file://Display on out_lcd(0x06,0); file://Entry mode }

void lcd_clr() { out_lcd(0x01,0); usleep(3000); }

void lcd_putc(char c) {out_lcd(c,1);}

file://No scrolling void lcd_puts(const char *s) { int i,j;

i=0; j=0; while(s[i]!='\0') { if(s[i]=='\n') { j=0; /* HD 44780 */ out_lcd(0x80|LINE2_ADDR,0);

/* NT 3881 out_lcd(0x80|LINE2_ADDR,0);

*/

} else if(j

Reply to
Mylinux

All the other functions but this look OK. If this is an HD44780 clone then you need to send the FUNCTION command (0x38) four times with a (>4.1ms) delay between each. You must also wait at least 15ms after power is applied before addressing the LCD. So, something like this:

void LcdReset (void) { SystemPauseMs (15);

/* ** Recommended startup sequence issues same command four times. */ for (i = 0; i < 4; i++) { LcdCommand (HD_CMD_FUNCTION | C_FUNCTION_TWOLINE); /* Must wait at least 4.1ms */ SystemPauseMs (5); }

LcdCommand (HD_CMD_ENTRY | C_ENTRY_INC); LcdCommand (HD_CMD_DISPLAY | C_DISPLAY_DISPLAY);

}

I've used this on many LCDs without problems.

Andrew

Reply to
Andrew Jackson

it is a long time since I last wrote LCD code, but IIRC, shouldn't you be sending the reset/init byte to the device 3 times first ?

a quick look through my assembler listing finds that I send the lcd 0000011 three times, seperated by a small-ish delay.

search for the datasheet on google (where i found it many moons ago when i wrote the lcd interface).

hth goose,

Reply to
goose

3881)
a

interface?

0xc0.

I broke one of the circuit and it is beyond repair. Monday I need to travel and buy a compatible one ( hd 44780)

sorry to everyone. I could been more careful.

Reply to
Mylinux

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.