I2C problem

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

Moderators: Henry, Mods

Post Reply
croc4
LCD?
Posts: 7
Joined: Wed Feb 11, 2004 1:19 pm

I2C problem

Post by croc4 »

I recently purchased the above LCD model and have connected it to a Micro controller (brainstem) via the I2C bus. According to the spec sheet the display runs at 100kpbs. However I am seeing strange behavior when sending numerical strings of greater than two characters.
If I change the speed of the I2C bus on the controller to 400kpbs I see much more reliable results.

So is there a change to the I2C bus speed that is not been updated in the spec sheet? and is there a stuffing option that I can check on the board to verify the speed of the I2C bus is correctly set?

There is some flux left on the board where some rework was done, So I'd like to verfiy that this rework was correctly done, can you send an image of what it should look like so that I can verify mine?

Miles
Matrix Orbital
Matrix Orbital
Posts: 1105
Joined: Mon Mar 04, 2002 4:00 pm

Post by Miles »

Hello...

When your communicating with your Brainstem Micro, are you bit bashing or are you using I2C functions...? The "flux" you probably see is from our rosin core solder when we connect the display to the PCB...this will not cause any problems...
Miles Y.
Head of Technical Support
Product Manager
Matrix Orbital

croc4
LCD?
Posts: 7
Joined: Wed Feb 11, 2004 1:19 pm

Post by croc4 »

Miles wrote:Hello...

When your communicating with your Brainstem Micro, are you bit bashing or are you using I2C functions...? The "flux" you probably see is from our rosin core solder when we connect the display to the PCB...this will not cause any problems...

I am using the I2C function of the brainstem. the brain stem can run the I2C bus at 100k, 400k and 1meg, running at 100K seems to work for the most part, except when sending in ("1234" for example), the display prints out a bunch of numbers (1233221111221111 for example), but at 400k it seems to work much better, so since this does not make sense I was wondering if there was a stuffing mistake on the board. The flux its self, I was not worried about, but it looks like there was a resister changed in the location above D7 (there is no ref des) (top of the board)
but there is a 10K, ind (I think) and then a 4.3Kohm resistor (this is the one that looks to be done by hand) So I just wanted to make sure there was no "stuffing" mistake done.

Miles
Matrix Orbital
Matrix Orbital
Posts: 1105
Joined: Mon Mar 04, 2002 4:00 pm

Post by Miles »

Can you tell me what pull up resistors are being used on the I2C bus...? From your description of the components in question, I believe you are refering to our contrast cct. and this will have no part in the communication problem. Have you tried slowing down to something below 100kbps...It is possible that 400kbps looks like it is working better, however it may be dropping more bytes ...
Miles Y.
Head of Technical Support
Product Manager
Matrix Orbital

croc4
LCD?
Posts: 7
Joined: Wed Feb 11, 2004 1:19 pm

Post by croc4 »

Miles wrote:Can you tell me what pull up resistors are being used on the I2C bus...? From your description of the components in question, I believe you are refering to our contrast cct. and this will have no part in the communication problem. Have you tried slowing down to something below 100kbps...It is possible that 400kbps looks like it is working better, however it may be dropping more bytes ...
The pullups on the brainstem I2C bus are 2.2K, unfortunatly 100K is the slowest the brainstem can run at.

Miles
Matrix Orbital
Matrix Orbital
Posts: 1105
Joined: Mon Mar 04, 2002 4:00 pm

Post by Miles »

Have you tried running other I2C devices on the bus, such as a memory chip, etc...?
Miles Y.
Head of Technical Support
Product Manager
Matrix Orbital

croc4
LCD?
Posts: 7
Joined: Wed Feb 11, 2004 1:19 pm

Post by croc4 »

Miles wrote:Have you tried running other I2C devices on the bus, such as a memory chip, etc...?
Yes I have tried running a compass module that has an I2C interface, and that works fine, I also tried two different brainstems and I get the same results.

The guys at acroname use your LCD0821 display and for them they see no problems, I looked over the data sheet and I didn't see a difference between the LCD0821 and the GLK12232-25 with respect to the I2C interface. Is there any thing that I need to take into account for the 12232-25 as apposed to the 0821?

For the most part it "seems" to work, I just see garbled numbers when sending in more that two at a time.

Miles
Matrix Orbital
Matrix Orbital
Posts: 1105
Joined: Mon Mar 04, 2002 4:00 pm

Post by Miles »

I have three suggestions for you:

1) Ask Acroname for their source code and try it on the GLK12232-25-SM. The I2C works the same way with both units.

2) Try slowing down yor software routines. Keep your routines short and put a delay between specific bytes.

3) You may want to try using RS232 or TTL communication protocol instead.
Miles Y.
Head of Technical Support
Product Manager
Matrix Orbital

croc4
LCD?
Posts: 7
Joined: Wed Feb 11, 2004 1:19 pm

Post by croc4 »

Miles wrote:I have three suggestions for you:

1) Ask Acroname for their source code and try it on the GLK12232-25-SM. The I2C works the same way with both units.

2) Try slowing down yor software routines. Keep your routines short and put a delay between specific bytes.

3) You may want to try using RS232 or TTL communication protocol instead.

I asked the guys at acroname to run a quick test on a GLK12232-25 they have and they are seeing the same results. Is there any firmware issues/changes that may account for the behaviour?. I need to use I2C for my application, so RS232 is not an option, plus it shouldn't work better at 400k if the device is spec'd for 100k.

Any way for some hardware folks to look into this to see if there is an issue?
I would like to get this resolved and not have to use workarounds (for obvious reasons ;-) )

Thanks

Miles
Matrix Orbital
Matrix Orbital
Posts: 1105
Joined: Mon Mar 04, 2002 4:00 pm

Post by Miles »

Can you please try my suggestion #2 as you are not slowing down the actual speed of your transmission rather you are solwing down the specific bytes to the unit...
Miles Y.
Head of Technical Support
Product Manager
Matrix Orbital

tlcm
LCD?
Posts: 1
Joined: Sun Feb 28, 2010 6:05 am

Post by tlcm »

[quote="croc4"][quote="Miles"]I have three suggestions for you:

1) Ask Acroname for their source code and try it on the GLK12232-25-SM. The I2C works the same way with both units.

2) Try slowing down yor software routines. Keep your routines short and put a delay between specific bytes.

3) You may want to try using RS232 or TTL communication protocol instead.[/quote]


I asked the guys at acroname to run a quick test on a GLK12232-25 they have and they are seeing the same results. Is there any firmware issues/changes that may account for the behaviour?. I need to use I2C for my application, so RS232 is not an option, plus it shouldn't work better at 400k if the device is spec'd for 100k.

Any way for some hardware folks to look into this to see if there is an issue?
I would like to get this resolved and not have to use workarounds (for obvious reasons ;-) )

Thanks[/quote]

I know that many years have gone since you discussed this subject, but I have just started using GLK12232-25 display and I have the same problem as croc4 used to have. I tried with sloing the speed down (below 100kbit/s), but without any success. The best result (but unfortunately not good) is at 400kbit/s. I can't try with higher speed because my processor doesn't support this.
The processor works on 3.3V. I have 1K pull-ups on SDA and SCL. Pull-ups are connected on 5V.
Has anyone in these years solved this problem?

Thanks

Raquel
Matrix Orbital
Matrix Orbital
Posts: 796
Joined: Thu Aug 19, 2004 3:37 pm
Location: MO Office

Post by Raquel »

Hi,
Which PCB Rev of the GLK12232-25-SM do you have?
Raquel Malinis
Design and Development
Matrix Orbital

Post Reply