<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>