I2C Communication Problem

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

Moderators: Henry, Mods

Post Reply
ulasss
LCD?
Posts: 3
Joined: Fri Mar 13, 2009 7:35 am

I2C Communication Problem

Post by ulasss »

Hi there I am using both versions of LK204-25 Rev1 and Rev2. I can use use Rev1 without any problem using I2C protocol. Whereas when I try to run the same code on Rev2 board it does not work properly. I soldered I2C jumpers on the Rev2 board and I am using 0x50 as default I2C address. I can run some commands such as clearScreen (0xFE 0x58) however some other commands does not respond well in the Rev2 board. What might be the problem please help I am STUCK!!! :cry:
Raquel
Matrix Orbital
Matrix Orbital
Posts: 834
Joined: Thu Aug 19, 2004 3:37 pm
Location: MO Office

Post by Raquel »

Hi ulassss,

Thanks for posting on the forum.

There is quite a bit of differences between Rev1.0 and Rev2.0. Please check out this PCN.

Can you tell me which commands are not working properly? Can you display characters on the screen?

Also, you might want to check out this I2C FAQ page

Thanks and Best Regards,
Raquel Malinis
Design and Development
Matrix Orbital
ulasss
LCD?
Posts: 3
Joined: Fri Mar 13, 2009 7:35 am

Post by ulasss »

Thank you for your kind reply. I can not display characters on screen yet I can issue clear screen command set contrast command. Isn't it weird?
Raquel
Matrix Orbital
Matrix Orbital
Posts: 834
Joined: Thu Aug 19, 2004 3:37 pm
Location: MO Office

Post by Raquel »

Yes, that is weird.
Install a jumper on R5 and C1 (manual override), cycle the power (keep the jumper in place) and try again; see if you are able to send data.
Raquel Malinis
Design and Development
Matrix Orbital
ulasss
LCD?
Posts: 3
Joined: Fri Mar 13, 2009 7:35 am

Post by ulasss »

No I tried resetting device still no good. I run below code in both LCD revisions

StartI2C();

setI2CAddress(0x50);

clearScreen();

setCursorPos(1, 1);

blinkOn();

writeChar('a');

StopI2C();

In Revision 1 there is no problem it clears the screen writes char 'a' on the screen to the top left spot and blinking cursor appears. However in Revision 2 lcd module, it just clears the screen and there is neither a blinking cursor nor char 'a' on the screen.
Like I said before I just soldered two I2C jumpers with the resistors I have unmounted from 232 jumpers. And throw away third resistor am I correct?
Raquel
Matrix Orbital
Matrix Orbital
Posts: 834
Joined: Thu Aug 19, 2004 3:37 pm
Location: MO Office

Post by Raquel »

Hi,

Yes, you only need to jumper in 2 pads and discard the 3rd 0 Ohm resistor from RS232.

I have tried your code (well, using my own code) and it worked for me: cleared screen, blinking cursor and an 'a'.

What I think you are lacking is some delays. Can you try and add about 100us between the commands?

If you are able to post scope captures, it will be nice to see the waveforms.

Thanks,
Raquel Malinis
Design and Development
Matrix Orbital
Globulus
LCD?
Posts: 1
Joined: Mon Apr 27, 2009 4:39 am

Post by Globulus »

Hi,

I'm using 204-25 rev1.23. It works great in RS232 Mode, and I would like to use it in I2C mode.
I didn't succeed in communicating with the LCD in this mode.
I removed all the jumpers, in order to adress the module with the 0x50 I2C address (in 8bits mode) and use the 0x28 address in 7bits mode (I use an Arduino with the Wire.h library).
But it doesn't work.

I'm a bit confusing about the differences between the 2 revs.
Do I need to solder some jumpers on the module to use the I2C mode as I read in this post ?

Ulass, did you make any hardware modification in order to operate the I2C mode ?

Thanks.
Globulus
Raquel
Matrix Orbital
Matrix Orbital
Posts: 834
Joined: Thu Aug 19, 2004 3:37 pm
Location: MO Office

Post by Raquel »

Hello Globulus,

Thanks for posting on the forum.

The 204-25 PCB Rev 1.23 has been discontinued for about 3 years now. I recommend for new designs to use the newest PCB Rev 2.0.

Back to PCB Rev 1.23: in order to get it in I2C mode with address $50, yes, take out all the jumpers. As per addressing the display though, you need not worry about the 8 bit or 7 bit addressing. Send address $50 as if you are sending data. You should see via a scope that you are sending a '0101 0000' for address, and most importantly you should see the display ACK the address with a 0 on the 9th clock pulse. Check this post out for reference.

For differences between PCB Rev 1.23 and 2.0, please see this PCN.

Thanks,
Raquel Malinis
Design and Development
Matrix Orbital
Post Reply