Page 1 of 1
I2C Communication Problem
Posted: Fri Mar 13, 2009 7:41 am
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!!!

Posted: Fri Mar 13, 2009 9:32 am
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,
Posted: Fri Mar 13, 2009 11:05 am
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?
Posted: Fri Mar 13, 2009 11:25 am
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.
Posted: Tue Mar 17, 2009 2:28 am
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?
Posted: Tue Mar 17, 2009 10:32 am
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,
Posted: Mon Apr 27, 2009 4:55 am
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
Posted: Mon Apr 27, 2009 9:32 am
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,