LCD0821 Random Characters

LK/ELK/VK/PK/OK/MX/GLK/EGLK/GVK/GLT Series

Moderators: Henry, Mods

Post Reply
vatechnologies
LCD?
Posts: 4
Joined: Mon Oct 21, 2013 3:33 pm

LCD0821 Random Characters

Post by vatechnologies » Tue Oct 22, 2013 4:57 am

I also am having problems with the LCD0821 intermittently displaying a random unrecognizable character. I am using the display in I2C mode with a PIC microcontroller.

After power us the MO character is displayed. Sometimes a random charter is displayed on this screen a second or two after power up. The random character also sometimes appears as I am displaying text on the screen. The random character is always in addition to the data I am actually sending to the display and does not appear as a corruption of a character I wish to display. The position of this character is not fixed at any particular location.

I am certain that this random character is not actually being sent to the display over the I2C bus since I have viewed all the transfers using an I2C bus analyzer. The SDA and SCL signals look pretty clean and are being pulled up with 10K resistors. The signal timing requirements in the manual are all being complied with. I have seen this issue with more then eight LCD0821 units.

Any Ideas? Thanks, Bob

Tino
Matrix Orbital
Matrix Orbital
Posts: 158
Joined: Wed May 22, 2013 9:04 am
Location: Matrix Orbital

Re: LCD0821 Random Characters

Post by Tino » Tue Oct 22, 2013 8:24 am

Hi Bob

Thank you for posting on our forums!

I understand you are using the LCD0821 in I2C mode with a PIC Microcontroller and are getting a random character on the display at different times.

Is the character always the same character? Or is it different each time?
For example is it always a 'P'?

You also mentioned that the random character is in addition to the actual data you are sending to the display. When you send commands to the display, does the display properly perform the command or do you get a random character?

If you have any other questions or concerns please feel free to ask.
Thank you
Martino
Martino DeLeon
Matrix Orbital
Technical Support Representative

vatechnologies
LCD?
Posts: 4
Joined: Mon Oct 21, 2013 3:33 pm

Re: LCD0821 Random Characters

Post by vatechnologies » Tue Oct 22, 2013 9:41 am

Hi Martino:

Thanks for your reply. The random character always seems to be the same character (see attached photos). The display seems to properly execute all commands sent to it.

I have attached three photos. The first shows the random character after a colon.......this may occur in one our of every 5 power up sequences.
Char appears after colon.JPG
Char appears after colon.JPG (27.9 KiB) Viewed 2844 times
The next photo is the data stream associated with the first photo. The random character is clearly not being sent to the display.
I2C data stream.JPG
I2C data stream.JPG (34.79 KiB) Viewed 2844 times
The third photo shows the same random character occasionally appearing on the MO power up screen.
Char appears after two secs on MO screen.JPG
Char appears after two secs on MO screen.JPG (24.17 KiB) Viewed 2844 times
I would appreciate any suggestion you may have.

Regards, Bob

Tino
Matrix Orbital
Matrix Orbital
Posts: 158
Joined: Wed May 22, 2013 9:04 am
Location: Matrix Orbital

Re: LCD0821 Random Characters

Post by Tino » Tue Oct 22, 2013 10:42 am

Hi Bob,

Have you tried putting in a delay on the start up and within the data stream? A random Character like this can be caused by too much data going to the display at a time or just the flow of data is too fast. Placing a delay can help the display process all the data properly.

Try placing a delay before you send a command on start up also in between commands.

I have seen this myself as well and when placing a delay in between some commands.

Let me know if the delay helps.
Thank you
Martino
Martino DeLeon
Matrix Orbital
Technical Support Representative

vatechnologies
LCD?
Posts: 4
Joined: Mon Oct 21, 2013 3:33 pm

Re: LCD0821 Random Characters

Post by vatechnologies » Tue Oct 22, 2013 12:10 pm

Martino:

I currently have a 2 second delay after power up and before I write the first command to the display. Are you suggesting inserting a delay before each data byte is sent or just before each command?

for example:

Clear Screen and then Print HELLO

0x50 0xFE 0x58 (DELAY) 0x50 0x48 0x45 0x4C 0x4C 0x4F (DELAY)

or

0x50 (DELAY) 0xFE (DELAY) 0x58 (DELAY) 0x50 (DELAY) 0x48 (DELAY) 0x45 (DELAY) 0x4C (DELAY) 0x4C (DELAY) 0x4F (DELAY)

Which is correct? How much delay should I use?

Thanks, Bob

Tino
Matrix Orbital
Matrix Orbital
Posts: 158
Joined: Wed May 22, 2013 9:04 am
Location: Matrix Orbital

Re: LCD0821 Random Characters

Post by Tino » Tue Oct 22, 2013 1:15 pm

Hi Bob,

I meant a delay before each command.

I have replicated the random character that you are getting on your display. I get it two seconds after I send data to my display without sending a "Stop Condition" at the end of the data.

With that being said this may be the cause in your case. Please be sure to have a "Start Condition" sent to the display before the data is sent to it and a "Stop Condition" at the end of the data or commands.

If you have any other questions or concerns please feel free to ask
Thank you
Martino
Martino DeLeon
Matrix Orbital
Technical Support Representative

vatechnologies
LCD?
Posts: 4
Joined: Mon Oct 21, 2013 3:33 pm

Re: LCD0821 Random Characters

Post by vatechnologies » Tue Oct 22, 2013 3:34 pm

Marino

This is good news. You may have identified the problem.

Can you please send me a HEX example of how to Clear the screen and the display HELLO using the proper Start Condition and Stop Conditions.

I just want to make sure I fully understand.

Many Thanks. Bob

Tino
Matrix Orbital
Matrix Orbital
Posts: 158
Joined: Wed May 22, 2013 9:04 am
Location: Matrix Orbital

Re: LCD0821 Random Characters

Post by Tino » Tue Oct 22, 2013 3:47 pm

Hi Bob,

Please see Page 9 of 64 in the I2C Protocol document here:
http://www.nxp.com/documents/user_manual/UM10204.pdf

Please let me know if this helps.

This functionality may be hidden to you in the library you are using. I use a Arduino UNO and before transmitting I use the Wire.BeginTransmision(address) then for my stop condition I use the Wire.EndTransmission() function.

If you have any other questions or concerns please feel free to ask.
Thank you
Martino
Martino DeLeon
Matrix Orbital
Technical Support Representative

Post Reply

Who is online

Users browsing this forum: No registered users and 12 guests