PDA

View Full Version : serious I2C-problem



BigWumpus
- 12th May 2006, 09:53
Hello,

I have a problem:

Our controller V3 works great (maybe 3000 parts in the market) with our display V3. They communicate via I2C (16F876 - 16F872). The producer has soldert a lot of 2,7k pullups and at last 4,7k pullups (poland...).
They work great!

Now, we have our display V4 (+PWM for LCD +RGB-backlight) and it works great with controller V3.
Our controller V4 (18F4585) works great with both displays.

The software is nearly the same...

Yesterday we have a problem:
The I2C-communication is bad. A display V4 works on controller V3 but not really on a controller V4. (MSSP receives no bytes)
Sometimes I put my hand over the display - it works, or I touch the display - it works - or not...

Yesterday night i checked out the software. I set down the speed of the I2C to maybe 60kHz - it works. Back to 100kHz - it works. Up to 300kHz - it works. ???

Today I checked again...
A few days ago we have changed the pullups from 4,7k to 3,3k - that may be the problem. But all people tell, the lower the pullups, the better the signal. (signal form is ok). Inserting 10k pullups - it works. And why does the 2,7k pullup worked so well ?

Where is my problem ?
Pullups to low ?

Melanie
- 12th May 2006, 11:01
I find 4K7 pull-up's good from one device on the I2C Bus, right up to about 8 devices on the I2C Bus. Have you put a scope on the Clock and Data lines to see how clean and square the pulses are?

If you are putting your hand over the product and it affects how it works, looks like a decoupling/noise problem. Your I2CBus is pretty resilient and should not be affected. You may need at add some 100nF's around your Vdd and perhaps improve the grounding. It is possible the problem is not with your display, but with your controller. The 18F's are a lot more intollerant of noise. Another thing to look at is if you are using a crystal, if it's being used in weak XT mode instead of HS mode (higher level of drive), your hand approaching it may just add enough extra capacitance to stop it from working.

Melanie
- 13th May 2006, 09:18
The off-topic Part of this Thread that developed has been moved to the "Off-Topic" Section under the title "Manufacturing" before poor BigWumpus loses his original problem buried in Political debate... let's continue only with BW's problem here and leave the Politics in the Off-Topic section.