I2C pull-up resistors value with two or more devices ?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Hi all...

I'm using two 24LC512 I2C eeproms. The datasheet (microchip) says that a 10k
resistor is typical for 100kHz operation. Is the value of the resistor the
same for two eeproms on the bus ?

Thanks



Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it
10k

No. The 10K is total pullup resistance. Use 20k on each eeprom.
You can run several dozen devices, as long as total pullup resistance is no
more than 10K.





Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it
that a
resistor the
is no

What's the rationale for that? In what way will two parallel 20k
pull-ups on the same wire behave differently than one 10k pull-up?

I think one resistor will do just fine, Rodo.

Robert



Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it
One resistor will do just fine at that speed and presumably small distance.
If you are going further and faster you need to consider the bus capacitance
and terminate things properly. Philips have "Active I2C Termination" but
unless you are travelling metres you won't need it.

Peter



Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it

The rationale is that the 10K is meant for termination to prevent noise
from being introduced ... much like termination resistors in floppies.
In the case of floppies termination resistor HAD to be on one floppy at END
of cable.
Alternative could have been to have weaker resistors on all floppies.
That is the case with I2C. You can put dozens of devices on a
single line with > 1K pullup on each device.

Ideally you would want 20K on each line where I2C line enters IC.
Practically if both chips are on one board a single 10K will do fine.
Just make sure the single pullup is at end of trace so both devices
are properly terminated.







Re: I2C pull-up resistors value with two or more devices ?
On Wed, 26 Nov 2003 18:13:28 GMT, the renowned "Gman"

Quoted text here. Click to load it

It's not really a "termination" because the 10K or 20K is nowhere near
the characteristic impedance of traces or wires. And it doesn't matter
much since the signals are so slow compared to the signal speed down
the bus and back.

The lower limit on the I2C pull up resistors is set by the weakest
drive capability of the devices on the bus (to pull it down to a logic
0, plus a bit for noise margin). The upper limit is set by the
capacitance of the wires and the maximum frequency (it has to be able
to generate a logic 1 (plus a bit for noise margin) in the time
available). If you add more length or more devices, you increase the
capacitance and the pullup resistor may have to be decreased. Using
one resistor per device on the bus sort-of does that.

Best regards,
Spehro Pefhany
--
"it's the network..."                          "The Journey is the reward"
snipped-for-privacy@interlog.com             Info for manufacturers: http://www.trexon.com
We've slightly trimmed the long signature. Click to see the full one.
Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it
END

The idea of termination isn't to match impedances, but to lower
the impedance to an open-collector input of device such that RF
can not induce noise on the bus. If a resistor is not near the
open-collector
I2C input, then the length of wire from the pullup to the I2C input
becomes a high impedance antenna. The great the length of this antenna,
the greater the chance of RF induced noise.

Quoted text here. Click to load it

The lower limit of I2C pullup is specified in spec as 10K.
The upper limit of I2C pullup is determined by number of devices
(which collectively must not combine to less than 10K)
The upper limit of I2C devices on the bus is also specified in I2C spec
(about 128?).






Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it

No, that's NOT the primary reason. Calculate the rise-time of a 400pF
bus line with a 100K pullup from 0 to 0.7Vdd plus, say 100mV noise
margin. Compare with the 10us bit time.  

Quoted text here. Click to load it

What "spec" are you talking about? A minimum 3mA drive capability is
required by all devices meeting the I2C specification, which with a 5V
supply is about 1.7K. It can also be a current source.

Quoted text here. Click to load it

See "THE I2C-BUS SPECIFICATION VERSION 2.1" (Philips Semiconductors)
section 16.1 "Maximum and minimum values of resistors Rp and Rs for
Standard-mode I2C-bus devices" if working it out from first principles
is too much. There are nomographs to help. It also covers mixed-mode
operation and other more complex real-world variations.

There is actually no specific limit on the number of devices, but it's
typically at least 20 devices using minimum pullup resistor (the limit
is set by the 400pF maximum bus capacitance spec).

Best regards,
Spehro Pefhany
--
"it's the network..."                          "The Journey is the reward"
snipped-for-privacy@interlog.com             Info for manufacturers: http://www.trexon.com
We've slightly trimmed the long signature. Click to see the full one.
Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it
says
resistance
noise
at

THE I2C-BUS SPECIFICATION VERSION 2.1" (Philips Semiconductors)
Been a while since I've read it, but that is the origin of 10K value.

A minimum 3mA drive capability is
Quoted text here. Click to load it

There is a limit specified in the spec. Again, I haven't read it in a while.
I worked on a system that had roughly100 devices on a single I2C bus
that conformed to the spec.







Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it
... snip ...
Quoted text here. Click to load it

At last an accurate description!  The number of old wives tales
told on these newsgroups continues to amaze me.  They tend to have
a germ of misunderstood truth.

--
Chuck F ( snipped-for-privacy@yahoo.com) ( snipped-for-privacy@worldnet.att.net)
   Available for consulting/temporary embedded and systems.
We've slightly trimmed the long signature. Click to see the full one.
Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it
END

For proper termination, the resistors would have to match the characteristic
impedance of the copper trace. And to give you an indication: a typical
trace of 0.3mm over a groundplane on 1.6 mm FR4 has an impedance of appr.
130 Ohms. In I2C, they're just for pull up. Nothing else.

Meindert



Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it
characteristic

Termination/pullup prevents RF from getting on I2C bus. If a board is
laid out willy nilly and I2C pullup is not near input, say 12" away,
the I2C bus will be highly subseptible to RF from all kinds
of transmitters; police, fire, military, FM. That part of I2C bus that
is not terminated properly becomes a high impedance antenna.







Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it

Well, I just fail to see why the position of a 10k resistor would matter on
a 120 Ohm track. From an HF point of view, a short wire would be very high
impedant in free air, but we're talking about 120 Ohm here. From a VHF point
of view, it could be resonating but in that case 10k on one side or on both
wouldn't make much difference either when the capacitance of the drivers
would already account for an RF load of 100 to 200 ohm.

Meindert



Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it
on
point
both

My concern is high power RF in the vicinity of an improperly terminated
board.
A 1000w linear HF amp driven by a CB,
A 1500w  Navy transmitter,
Underneath a AM tower putting out 50,000w.
If your application has high impedance "antenna", your I2C bus will crash.



Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it

Even then, it wouldn't make a difference where this 10k resistor is placed.

Quoted text here. Click to load it


Not an issue. Equipment has to conform to certain standards, for instance
EN61000-6-1 or -6-3 or FCC Part X, which clearly say what fieldstrength is
to be tolerated (3V/m for 'normal' stuff and 10V/m for marine stuff, for
instance). And whether a circuit is susceptible to that kind of
fieldstrength is more a matter of proper PCB design and screening than a 10k
resistor on the right spot. Believe me, the load of a 10k resistor doesn't
have much influence on received RF by a PCB track when this track is
connected to cmos IC's.

Meindert







Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it
Two questions.

First, how does the location of a pullup resistor do anything to reduce
the susceptibility of a long trace to RF? RF induced on the trace is by
definition AC, while the pullup provides a DC reference. Are you
claiming that the pullup provides a low-impedance path to ground? Well,
at high frequencies doesn't the trace capacitance provide a much lower
AC impedance path to ground? I just don't buy this claim. If I'm wrong,
please educate me.

Second, in terms of the operation of the I2C bus, what effect would the
RF interference have anyway? If your margins are so slim that a few uV
of RF cause problems then your design is faulty anyway.

Why try to complicate such a simple thing? We're talking about a pullup
resistor on a very slow signal. They only important thing to consider
about the resistor is its value. The location makes no difference at
all, in my opinion, I don't care how long the trace is. The only
exception is if you have devices that can plug into (or off of) the bus
and you have to place the pullup in a location where is will always be
active (i.e., it can't be unplugged). Simplicity is one of the things
that makes I2C so useful.

Robert



Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it

In fact you will find that almost everything you build has an
impedance between about 50 and 200 ohms at high frequencies, with
100 being a very usable estimate.  At audio (telephone)
frequencies twisted pairs look closer to 600 ohms.

--
Chuck F ( snipped-for-privacy@yahoo.com) ( snipped-for-privacy@worldnet.att.net)
   Available for consulting/temporary embedded and systems.
We've slightly trimmed the long signature. Click to see the full one.
Re: I2C pull-up resistors value with two or more devices ?
Quoted text here. Click to load it

10K is only a typical value. The Philips (and hopefully Microchip) app
notes show min and max resistances for several variables, such as bus
capacitance.



--
Mike Page BEng(Hons) MIEE           www.eclectic-web.co.uk


Re: I2C pull-up resistors value with two or more devices ?

Quoted text here. Click to load it

    It depends on the distributed capacitance on each, data and clock, line.
The best method is to use the maximum current possible to keep clean rise
times.  This is variously rated at 3 milliamperes.

    A much better design we've used in the past is to pull up to +12Vdc
instead of to +5V but use a diode clamp to prevent the excursion from
exceeding 5.5Vdc.  This accomplishes two things, first signals transit
trough thresholds rapidly and secondly are very noise-immune when floating
high.  For long runs or cables we add a second signal diode to ground
clamping negative excursions.  The 1N914B is a good choice as it's current
handling capabilities is much higher than most at 100ma.

    I've successfully run IIC over 15' inside a cabinet with nasty motor
start relays and solenoids using the above design with few errors.  Of
course your IIC code should be error-tolerant anyhow, right?
 
-- Regards, Albert
----------------------------------------------------------------------
AM Research, Inc.                  The Embedded Systems Experts
http://www.amresearch.com (916) 780-7623
----------------------------------------------------------------------


Re: I2C pull-up resistors value with two or more devices ?
Here are some comments on pullups, crosstalk etc

http://www.i2cchip.com/i2c_connector.html#Crosstalk

Simon

Site Timeline