<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
An oscilloscope would allow measuring the actual the slew rate
accurately enough to determine if you've got some headroom or if
things are on the ragged edge.<br>
<br>
But the load capacitance of the sensors should be in their data
sheets, so adding those up gives you a start on knowing the total
load. And there are online calculators for estimating the
capacitance of PCB traces. But just taking it to a 'scope' would
close the gap between theory and reality. :-)<br>
<br>
-Pete<br>
<br>
<div class="moz-cite-prefix">On 09/11/2014 11:46 AM, Jeff Highsmith
wrote:<br>
</div>
<blockquote
cite="mid:26841A0A-DB00-4577-BE23-34E2ACD459BF@jeffhighsmith.com"
type="cite">
<div>Rodney,</div>
<div><br>
</div>
<div>Can bus capacitance be easily measured? I've got five I2C
sensors hooked up to the project I'm working on, though all
within a square foot. Can I just put my multimeter in
capacitance mode and measure across SDA and SCL when the circuit
is off?</div>
<div><br>
</div>
<div>Thanks!</div>
<div>Jeff :)</div>
<div><br>
</div>
<br>
<div>
<div>On Sep 11, 2014, at 11:39 , Rodney Radford wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div dir="ltr">
<div>As long as the I2C devices are close to the
microprocessor, you do not need additional pull up
resistors.<br>
<br>
However, as you increase the distance (say to an extra
sensor board), the long wires add additional capacitance
to the I2C lines, turning those sharp edges into something
that looks more like a sine wave. The same occurs as you
add more devices as each device has it's own internal
capacitance. The additional pull up resistors help correct
this, allowing you to put your sensors further away (or
add more sensors).<br>
<br>
</div>
<div>So if you are going off-board with your sensors, yes, i
would definitely recommend adding pull up resistors. The
lower the value of the resistors, the more pull up you get
and the sharper your edges become - at the increase of
additional current required for your device, so it is a
trade off. <br>
<br>
</div>
<div>I worked on a setup years ago where I used I2C as a
communication bus for a large aquarium monitoring system
where I had I2C temperature sensors in each aquarium, I2C
port expanders to drive small 2x16 line LCD displays, and
port expanders to control turning on heaters to each
aquarium. The aquariums were in an external storage shed
that was not insulated, so by measuring the external
temperature we could start increasing the water
temperature as the external temperature dropped, to
prevent the water from getting too cold before the heaters
cut in. In hind site, it may have been easier to insulate
the shed, but the system worked well for years. I was
running I2C lines over CAT-5 30' and it worked like a
charm. I did optoisolate the I2C lines back to the
computer (which was a Windows PC that was bit-banging the
I2C out the PC's parallel port) to prevent lightning of
other high static charges from damaging the port.<br>
<br>
</div>
<div>Of course now I would replace all of that with a few
small microprocessors and a Raspberry Pi, but this was
back in the early/mid 90s...<br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Sep 11, 2014 at 11:28 AM,
Charles McClelland <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:chip@mcclellands.org" target="_blank">chip@mcclellands.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">Adam,
<div><br>
</div>
<div>Thank you for the response your and Jon’s note
raises another question:</div>
<div><br>
</div>
<div>Is there an advantage to putting resistors on the
circuit board versus simply using the Arduino’s
internal pull-ups? Power savings or - as Jon
mentioned - the ability to tune for performance?</div>
<div><br>
</div>
<div>On the RTC - here is my reader’s digest version
of the bewildering variety that Maxim offers: </div>
<div><span style="white-space:pre-wrap"> </span>-
DS1337 - Great but no battery backup to keep clock
set when I change the batteries</div>
<div><span style="white-space:pre-wrap"> </span>-
DS1338 - Adds battery backup but drops alarms</div>
<div><span style="white-space:pre-wrap"> </span>-
DS1339 - Battery backup, alarms and an alarm pin -
and it is cheaper than the DS1338. </div>
<div><br>
</div>
<div>I am hoping the library / commands for all three
will be similar and similar. Thoughts?</div>
<div><br>
</div>
<div>thanks,</div>
<div><br>
</div>
<div>Chip</div>
<div>
<div class="h5">
<div><br>
</div>
<div><br>
<div>
<div>On Sep 11, 2014, at 8:50 AM, Adam Haile
<<a moz-do-not-send="true"
href="mailto:email@adamhaile.net"
target="_blank">email@adamhaile.net</a>>
wrote:</div>
<br>
<blockquote type="cite">
<div dir="ltr">There's no need for them at
all.
<div>I2C only needs pull up resistors on
the bus as a whole, NOT for each device.</div>
<div>Also, the Wire library in Arduino
automatically enables the internal
pullup resistors when you call begin().
You can also do the same by setting a
pin as an input and then writing HIGH to
it, but Wire takes care of it for you.</div>
<div><br>
</div>
<div>Sure, having extra won't help but you
certainly don't need more than one set.</div>
<div><br>
</div>
<div>For the RTC, check out the DS1337, it
is the DS1307's big brother and includes
alarms. However, there are no alarm
pins, you just have to poll for if the
alarm is "going off". But there is lots
of code out there already for the
DS1337. If you need alarm interrupts,
I'm not sure what to use... nothing I'm
familiar with that has separate alarm
pins.</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Sep 11,
2014 at 8:28 AM, Charles McClelland <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:chip@mcclellands.org"
target="_blank">chip@mcclellands.org</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">First, I
wanted to thank Paul for the excellent
presentation on interrupts. I now
have a Watch Dog Timer routine which
is saving me from having to put a
clock on one project.<br>
<br>
On my other project though, I still
need a clock. And since I am already
using an I2C bus, I thought I could
simply add one to that bus. That way
I will have two I2C sensors connected
to an Arduino (ATMEGA328). My
question is how to best implement the
pull-up the resistors. Should I put
resistors on each (perhaps 10k since
they will effectively be in parallel)
or should I put one set of pull up
resistors on the main board for both?
It seems like the latter is the better
approach but I did not know if there
was some reason to do one over the
other.<br>
<br>
On a related note, I need a 3.3V I2C
Real Time Clock with Alarms - I am
looking at the DS1339 and hoping I can
use some of the DS1307 library since
they are both from Maxim. Any other
suggestions?<br>
<br>
Thanks,<br>
<br>
Chip<br>
<br>
<br>
<br>
_______________________________________________<br>
Triangle, NC Embedded Computing
mailing list<br>
<a moz-do-not-send="true"
href="mailto:TriEmbed@triembed.org"
target="_blank">TriEmbed@triembed.org</a><br>
<a moz-do-not-send="true"
href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org"
target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a
moz-do-not-send="true"
href="http://triembed.org/"
target="_blank">http://TriEmbed.org</a><br>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
Triangle, NC Embedded Computing mailing list<br>
<a moz-do-not-send="true"
href="mailto:TriEmbed@triembed.org">TriEmbed@triembed.org</a><br>
<a moz-do-not-send="true"
href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org"
target="_blank">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a moz-do-not-send="true"
href="http://TriEmbed.org/" target="_blank">http://TriEmbed.org</a><br>
<br>
</blockquote>
</div>
<br>
</div>
_______________________________________________<br>
Triangle, NC Embedded Computing mailing list<br>
<a moz-do-not-send="true" href="mailto:TriEmbed@triembed.org">TriEmbed@triembed.org</a><br>
<a class="moz-txt-link-freetext" href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a><br>
TriEmbed web site: <a class="moz-txt-link-freetext" href="http://TriEmbed.org">http://TriEmbed.org</a><br>
</blockquote>
</div>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
Triangle, NC Embedded Computing mailing list
<a class="moz-txt-link-abbreviated" href="mailto:TriEmbed@triembed.org">TriEmbed@triembed.org</a>
<a class="moz-txt-link-freetext" href="http://mail.triembed.org/mailman/listinfo/triembed_triembed.org">http://mail.triembed.org/mailman/listinfo/triembed_triembed.org</a>
TriEmbed web site: <a class="moz-txt-link-freetext" href="http://TriEmbed.org">http://TriEmbed.org</a>
</pre>
</blockquote>
<br>
</body>
</html>