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
LCD0821 Random Characters
Re: LCD0821 Random Characters
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
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
Matrix Orbital
Technical Support Representative
-
- LCD?
- Posts: 4
- Joined: Mon Oct 21, 2013 3:33 pm
Re: LCD0821 Random Characters
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.
The next photo is the data stream associated with the first photo. The random character is clearly not being sent to the display.
The third photo shows the same random character occasionally appearing on the MO power up screen.
I would appreciate any suggestion you may have.
Regards, Bob
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.
The next photo is the data stream associated with the first photo. The random character is clearly not being sent to the display.
The third photo shows the same random character occasionally appearing on the MO power up screen.
I would appreciate any suggestion you may have.
Regards, Bob
Re: LCD0821 Random Characters
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
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
Matrix Orbital
Technical Support Representative
-
- LCD?
- Posts: 4
- Joined: Mon Oct 21, 2013 3:33 pm
Re: LCD0821 Random Characters
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
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
Re: LCD0821 Random Characters
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
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
Matrix Orbital
Technical Support Representative
-
- LCD?
- Posts: 4
- Joined: Mon Oct 21, 2013 3:33 pm
Re: LCD0821 Random Characters
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
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
Re: LCD0821 Random Characters
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
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
Matrix Orbital
Technical Support Representative