[TriEmbed] I2C range extension

Fred Ebeling FEbeling at ECPDesigns.com
Thu Oct 1 13:49:30 CDT 2015


This is an interesting problem, how do you create a network that has
multiple nodes that run all over the place and still maintain some
type of interaction.   How about the “WEB”.

Fred

From: Charles McClelland via TriEmbed 
Sent: Thursday, October 01, 2015 2:07 PM
To: triembed at triembed.org 
Subject: [TriEmbed] I2C range extension

Fred,  

Thanks for the history and tip on RS-485.  As with all things engineering there are tradeoffs.  Do you think I captured them correctly below:

For an i2c sensor, communicating with a micro controller, using:

An i2c extender / redriver:
- Such as theTI P82B715DR
- Can go up to 5m at 5V but 3.3V operation works - just at reduced range
- Costs $2 a chip SOIC 8
- Can use CAT5 UTP
- Uses open-drain lines - noise can be an issue and longer length takes lower pull-up values sucking juice


An Dual UART i2c to RS-485 transceiver:
- Such as the NXP SC16IS752 
- Can take 100kHz to 1000’ (rule of thumb - range = 100kHz / 10^8)
- Costs $4 a chip - 28-TSSOP
- Can use CAT5 UTP
- Differential signaling - more tolerant of noise
- Runs at 2.5 or 3.3V without degradation of performance

Looking at this list, I think I will try the RS-485 solution as well - thanks for pointing this out Fred and I hope this comparison is helpful to folks.

Thanks,

Chip



  On Sep 30, 2015, at 6:02 PM, triembed-request at triembed.org wrote:

  Send TriEmbed mailing list submissions to
  triembed at triembed.org

  To subscribe or unsubscribe via the World Wide Web, visit
  http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
  or, via email, send a message with subject or body 'help' to
  triembed-request at triembed.org

  You can reach the person managing the list at
  triembed-owner at triembed.org

  When replying, please edit your Subject line so it is more specific
  than "Re: Contents of TriEmbed digest..."


  Today's Topics:

    1. Re: Fred Brooks presenting tonight on Centennial Campus
       (Adam Haile)
    2. Re: I2C range extension (Rodney Radford)
    3. Re: Fred Brooks presenting tonight on Centennial Campus
       (Pete Soper)
    4. Re: I2C range extension (Chip McClelland) (Fred Ebeling)


  ----------------------------------------------------------------------

  Message: 1
  Date: Wed, 30 Sep 2015 14:50:06 -0400
  From: Adam Haile <email at adamhaile.net>
  To: Rodney Radford <ncgadgetry at gmail.com>
  Cc: TriEmbed Discussion <triembed at triembed.org>, trianglerobotics
  <trianglerobotics at yahoogroups.com>, Triangle Linux Users Group
  General Discussion <trilug at trilug.org>
  Subject: Re: [TriEmbed] Fred Brooks presenting tonight on Centennial
  Campus
  Message-ID:
  <CAG8g-TYsX+pF7F293jZg37zf_zR=3AV4Y_KBKdDPXV+v2oAtCg at mail.gmail.com>
  Content-Type: text/plain; charset="utf-8"

  Oh man... that's really tempting. Thanks!

  On Wed, Sep 30, 2015 at 2:46 PM, Rodney Radford via TriEmbed <
  triembed at triembed.org> wrote:


    Fred Brooks, author of "Mytical Man Month" and project lead of the IBM/360
    system, will be presenting tonight on Centennial campus on the history of
    computing.

    If you have never heard of Dr Brooks, you should read a little about his
    career and show up tonight to hear him speak.

    https://en.wikipedia.org/wiki/Fred_Brooks

    If you know who he is, you already know why you should attend.

    More detail at the link below:


    https://meetings.vtools.ieee.org/m/35685



    _______________________________________________
    Triangle, NC Embedded Computing mailing list
    TriEmbed at triembed.org
    http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
    TriEmbed web site: http://TriEmbed.org



  -------------- next part --------------
  An HTML attachment was scrubbed...
  URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20150930/18e246ab/attachment-0001.html>

  ------------------------------

  Message: 2
  Date: Wed, 30 Sep 2015 15:04:21 -0400
  From: Rodney Radford <ncgadgetry at gmail.com>
  To: TriEmbed Discussion <triembed at triembed.org>
  Subject: Re: [TriEmbed] I2C range extension
  Message-ID:
  <CA+kfaxGN56iAhKCSsRDi7VzLZuH71vwxxxZVzZKEoGquUDAgBw at mail.gmail.com>
  Content-Type: text/plain; charset="utf-8"

  I used I2C to control about a dozen salt water aquariums several years ago.

  This involved a single PC bit-banging I2C out a parallel port (so was slow)
  to a temperature sensor in each of the aquariums (some 30' away), sending
  status out to a a couple 2x16 and 4x16 displays (I2C serial -> parallel ->
  LCD parallel interface), and controlling the heaters.

  This was for an outdoor, unheated, uninsulated building where the water in
  the salt water aquariums had to be kept within a fairly narrow range.  We
  monitored the temperature of the tanks and the external temp and would
  start the heaters in the water when we notice the temp dropping.  This
  replaced a mechanical temperature setup where the heaters would turn on
  once the water got too cold, but by that time, the thermal mass of the
  water prevented it from heating fast enough.

  Now all of this would be replaced with a couple Arduinos, one devoted to
  each tank, and a multi-drop serial bus to report back to the PC, but this
  was back about 20 years ago.

  This worked with no problems for the several years i worked with it.

  A few things we did:
  * twisted pair
  * I2C range extenders with 12v pullups
  * was not a noisy environment (outdoor building with only a single power
  drop and no other electrical devices)

  This was far enough back that you couldn't even buy the I2C devices in low
  quantities, so companies like Pure Unobtanium sprung up (Ed Nisley's
  company - previous author in Circuit Cellar Ink, and past Triangle Amateur
  Robotics member) would buy parts in the minimum quantity and sell to
  hobbyists.  Unfortunately by the time he would burn through enough stock to
  break even, they would be available from other suppliers for less.

  Also check out AccessBus - it was based on I2C and was designed to be a
  desktop peripheral interface.  Unfortunately it was not adopted and USB has
  since taken over this market.

  So the short of it - yes, you can use I2C for longer distances in some
  circumstances.


  On Tue, Sep 29, 2015 at 10:03 PM, Charles West via TriEmbed <
  triembed at triembed.org> wrote:


    Hello,

    Thanks again for all the good discussion on electrical connectors.

    We're still debating some of the specifics for the CANInstall and/or
    I2CPotential protocols.  One of the big things up in the air is how
    reliable I2C is and how long the range can be.

    My impression is that having a I2C bus of more than a meter or two is
    considered pushing your luck.  However, there seem to be range
    extender/repeater chips available that promise rather drastically improved
    range (such as the P82B715).

    If I may ask, what is the longest I2C bus you have built/seen?

    How has your experience been in terms of reliability?

    What sort of bus speeds do you tend to use?

    The bus speed is driven by the master, so theoretically you could have a
    sub-hertz baud rate?  Does this mean that you could get a really long range
    with a super slow baud rate or are the edges not sharp enough to be
    detected?

    Thanks,
    Charlie

    _______________________________________________
    Triangle, NC Embedded Computing mailing list
    TriEmbed at triembed.org
    http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
    TriEmbed web site: http://TriEmbed.org



  -------------- next part --------------
  An HTML attachment was scrubbed...
  URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20150930/7393dd7e/attachment-0001.html>

  ------------------------------

  Message: 3
  Date: Wed, 30 Sep 2015 15:32:55 -0400
  From: Pete Soper <pete at soper.us>
  To: triembed at triembed.org
  Subject: Re: [TriEmbed] Fred Brooks presenting tonight on Centennial
  Campus
  Message-ID: <560C38E7.7090105 at soper.us>
  Content-Type: text/plain; charset=ISO-8859-1; format=flowed

  WOW. Thanks very much for the notice, Rod. This is truly one of the 
  grand old men of software engineering (and he's much younger than I 
  thought!)

  -Pete




  ------------------------------

  Message: 4
  Date: Wed, 30 Sep 2015 14:18:13 -0400
  From: "Fred Ebeling" <FEbeling at ECPDesigns.com>
  To: "Charles McClelland" <chip at mcclellands.org>,
  <triembed at triembed.org>
  Subject: Re: [TriEmbed] I2C range extension (Chip McClelland)
  Message-ID: <B812360D6960473488D05FE620FFFE2C at ECPDesigns>
  Content-Type: text/plain; charset="utf-8"

  This has been an interesting discussion, but perhaps a bit of history would
  help.   The original I2C protocal was developed by Philips to interconnect
  HIFI equipment together and still be able to use a 3 connector plug.  It was
  designed for short distances, perhaps 10 feet max.

  To go further the normal ?standard? is to use RS 485 (or RS 422) standard.  This
  uses three wires, a ground, and two signal wires that are opposite of each other.
  So when the TX+ sends a ?1?, the TX- sends a ?0?.  The wires are also terminated
  usually with a 120 ohm resistor on both ends.  Thou some ignore this rule.

  RS-485 can go thousands of feet.  I have set up systems with the length of over
  4000? between the controller and the node. 

  Speed is based on distance, the major limitation is the ?capacitance of the wire?.  This
  will cause the leading and falling edge to degrade and limit the speed to around 10KHz
  for long distances.  Shorter distances (100?) can get up to 1 MHz.

  The problem thou is this is one way communications at a time.  Think of it like the
  old CB radios.  You send a packet to the ?good old boy? at the end node and say ?Over?
  so the end node can respond back.

  RS 422 eliminates this by having separate xmit and rec pairs.  

  In either case, the RS485 IC are reasonable priced and there are even standards for
  the connectors and connections.

  Fred Ebeling
  ECP Designs



  From: Charles McClelland via TriEmbed 
  Sent: Wednesday, September 30, 2015 1:54 PM
  To: triembed at triembed.org 
  Subject: [TriEmbed] I2C range extension (Chip McClelland)

  Charlie, 

  I agree with John?s recommendations but wanted to pass on my experience.   I can reliably go 8? with i2c under the following conditions:
  - Cat5 cable and paying attention to which pairs are used for SDA / SCL
  - Speed set to 100kHz 
  - 4.7k pull-ups to 3.3V

  I need to get to 50? so I have ordered a few P82B715 chips.  These chips advertise to get to 50? but only if you are using 5V logic so we will see if they can go 50? at 3.3V.  I will share my results at the next meeting.

  Hope this helps,

  Chip



  On Sep 30, 2015, at 1:00 PM, triembed-request at triembed.org wrote:

  Send TriEmbed mailing list submissions to
  triembed at triembed.org

  To subscribe or unsubscribe via the World Wide Web, visit
  http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
  or, via email, send a message with subject or body 'help' to
  triembed-request at triembed.org

  You can reach the person managing the list at
  triembed-owner at triembed.org

  When replying, please edit your Subject line so it is more specific
  than "Re: Contents of TriEmbed digest..."


  Today's Topics:

     1. Re: Bulk LED Order (Adam Haile)
     2. I2C range extension (Charles West)
     3. Re: I2C range extension (John Vaughters)


  ----------------------------------------------------------------------

  Message: 1
  Date: Tue, 29 Sep 2015 13:58:17 -0400
  From: Adam Haile <email at adamhaile.net>
  To: "triembed at triembed.org" <triembed at triembed.org>
  Subject: Re: [TriEmbed] Bulk LED Order
  Message-ID:
  <CAG8g-TaEQgjJRs4GGKhWiMPj-NTKE_iUxbLXbdqY-6z6Nn0fTQ at mail.gmail.com>
  Content-Type: text/plain; charset="utf-8"

  Final call! Putting in quote request tomorrow. Let me know if you want
  anything.

  On Fri, Sep 11, 2015 at 11:14 AM, Adam Haile <email at adamhaile.net> wrote:


     I recently had to tear down my old porch lighting install when we had our
     house repainted, so I'm going to be ordering a bunch of new lights from my
     supplier in China.

     Like last time, if anyone wants to get in on the order, the pricing is a
     huge discount from normal suppliers like Adafruit, Sparkfun, Amazon, eBay,
     etc.

     I don't take a profit, the prices in the pricing lists (GDrive link below)
     are direct from the manufacturer. The major point here is to save on
     shipping for everyone. Which I'll divide between all buyers based on the
     percentage of the overall purchase price which is yours.

     Pricing lists here:

     https://drive.google.com/folderview?id=0B7a_WsLpan5-SEl5TjAtTjctZm8&usp=sharing

     So, if you would like anything, please let me know in the next couple of
     weeks and give me the exact model number and quantity. Most things come in
     5m rolls, so you can tell me rolls or meters.

     Once I get everyone's details I'll will request a final quote (some of the
     pricing can vary by quantity) and then send everyone their final cost.

     *PLEASE NOTE*: Since I have to pay the manufacturer via PayPal, you *MUST* pay
     me via Paypal. That way no money has to go through my own personal bank
     accounts first. So, sorry, no cash or checks. And payment must go through
     prior to submitting the final order to the manufacturer. Sorry if this is
     an inconvenience, but it's the easiest way for me to do it.

     Let me know.

     Adam


  -------------- next part --------------
  An HTML attachment was scrubbed...
  URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20150929/48eba6b8/attachment-0001.html>

  ------------------------------

  Message: 2
  Date: Tue, 29 Sep 2015 22:03:01 -0400
  From: Charles West <crwest at ncsu.edu>
  To: TriEmbed <triembed at triembed.org>
  Subject: [TriEmbed] I2C range extension
  Message-ID:
  <CAGojqSk0_4x63vjm0EhqRag56fW9y38j9qfJzOF8sRwzW_tfLQ at mail.gmail.com>
  Content-Type: text/plain; charset="utf-8"

  Hello,

  Thanks again for all the good discussion on electrical connectors.

  We're still debating some of the specifics for the CANInstall and/or
  I2CPotential protocols.  One of the big things up in the air is how
  reliable I2C is and how long the range can be.

  My impression is that having a I2C bus of more than a meter or two is
  considered pushing your luck.  However, there seem to be range
  extender/repeater chips available that promise rather drastically improved
  range (such as the P82B715).

  If I may ask, what is the longest I2C bus you have built/seen?

  How has your experience been in terms of reliability?

  What sort of bus speeds do you tend to use?

  The bus speed is driven by the master, so theoretically you could have a
  sub-hertz baud rate?  Does this mean that you could get a really long range
  with a super slow baud rate or are the edges not sharp enough to be
  detected?

  Thanks,
  Charlie
  -------------- next part --------------
  An HTML attachment was scrubbed...
  URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20150929/064d0dab/attachment-0001.html>

  ------------------------------

  Message: 3
  Date: Wed, 30 Sep 2015 12:54:03 +0000 (UTC)
  From: John Vaughters <jvaughters04 at yahoo.com>
  To: Charles West <crwest at ncsu.edu>, TriEmbed <triembed at triembed.org>
  Subject: Re: [TriEmbed] I2C range extension
  Message-ID:
  <1421720024.2476926.1443617643320.JavaMail.yahoo at mail.yahoo.com>
  Content-Type: text/plain; charset=UTF-8

  Charlie,

  The biggest problem I would be concerned about on i2c over a long distance is noise susceptibility that could affect reliability. So the importance of reliable communication is at question. I guess the first question would be, do you have an environment that is noisey? Then, Do you care if you have interruptions? If your environment is fairly clean of noise and you can live with communication interruptions, then long i2c may be a good low cost solution for long runs. 

  Here is what you may want to consider. 

  1. Take control of the pull up resistors by disabling them on the chip.
  2. Tune the pull up resistors by starting at a safe low level and then increase them until you stop getting communication at the length you are running. Then back down. Keep in mind that you will gain more reliability as you reduce the pull ups.
  3. Twisted pair cables would be your first attack on noise.
  4. If you still encounter noise, consider ferrite beads to supress. This is best done if you have an idea of the noise frequency. 

  The alternative is if you truly desire reliable communications, then 485/CAN is the way to go. CAN being the most expensive, but gives you the similar capability to i2c with the ad hoc interruption communication capability. Or better stated an adhoc like network with a priority assignment.

  I personally never ran i2c that long and cannot answer those questions. I generally have used 485 the most. The TI chips are usually the lowest cost for communication. For some reason people love the half duplex, but I prefer the full duplex.

  I would be curious to know how far you make i2c run if you go that route.

  John Vaughters



  On Tuesday, September 29, 2015 10:03 PM, Charles West via TriEmbed <triembed at triembed.org> wrote:



  Hello,

  Thanks again for all the good discussion on electrical connectors. 

  We're still debating some of the specifics for the CANInstall and/or I2CPotential protocols.  One of the big things up in the air is how reliable I2C is and how long the range can be.

  My impression is that having a I2C bus of more than a meter or two is considered pushing your luck.  However, there seem to be range extender/repeater chips available that promise rather drastically improved range (such as the P82B715).  

  If I may ask, what is the longest I2C bus you have built/seen?

  How has your experience been in terms of reliability?

  What sort of bus speeds do you tend to use?

  The bus speed is driven by the master, so theoretically you could have a sub-hertz baud rate?  Does this mean that you could get a really long range with a super slow baud rate or are the edges not sharp enough to be detected?

  Thanks,
  Charlie

  _______________________________________________
  Triangle, NC Embedded Computing mailing list
  TriEmbed at triembed.org
  http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
  TriEmbed web site: http://TriEmbed.org



  ------------------------------

  Subject: Digest Footer

  _______________________________________________
  TriEmbed mailing list
  TriEmbed at triembed.org
  http://mail.triembed.org/mailman/listinfo/triembed_triembed.org


  ------------------------------

  End of TriEmbed Digest, Vol 28, Issue 31
  ****************************************





  --------------------------------------------------------------------------------
  _______________________________________________
  Triangle, NC Embedded Computing mailing list
  TriEmbed at triembed.org
  http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
  TriEmbed web site: http://TriEmbed.org
  -------------- next part --------------
  An HTML attachment was scrubbed...
  URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20150930/3acca29c/attachment.html>

  ------------------------------

  Subject: Digest Footer

  _______________________________________________
  TriEmbed mailing list
  TriEmbed at triembed.org
  http://mail.triembed.org/mailman/listinfo/triembed_triembed.org


  ------------------------------

  End of TriEmbed Digest, Vol 28, Issue 33
  ****************************************




--------------------------------------------------------------------------------
_______________________________________________
Triangle, NC Embedded Computing mailing list
TriEmbed at triembed.org
http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.triembed.org/pipermail/triembed_triembed.org/attachments/20151001/473d759c/attachment.htm>


More information about the TriEmbed mailing list