[TriEmbed] I2C range extension

Jim Ray jim at neuse.net
Fri Oct 2 06:02:21 CDT 2015


Has anyone modified Raspberry Pi to use PoE for power? Using standard Ethernet to drive a communications sub system based on another Raspberry Pi that has the requisite i/o and processor makes a lot of sense to me.

From: TriEmbed [mailto:triembed-bounces at triembed.org] On Behalf Of Charles West via TriEmbed
Sent: Thursday, October 01, 2015 7:26 PM
To: John Vaughters
Cc: Charles McClelland; triembed at triembed.org
Subject: Re: [TriEmbed] I2C range extension

I would love it if we could just use off the shelf ethernet.  It doesn't really have really have a real time capability though and the cheapest combination I could find was about $5 (STM32F107 with a KSZ8081 for PHY).
Cost is the really attractive thing about I2C.  I can get a STM32 chip with I2C for $.65 and there are even cheaper chips (as John mentioned).  It wouldn't be hard to imagine a world where the bulk of robotics components had an MCU with I2C capability.

On Thu, Oct 1, 2015 at 3:33 PM, John Vaughters via TriEmbed <triembed at triembed.org<mailto:triembed at triembed.org>> wrote:
Other contraints include cost and space. Obviously if we could just build an ip network, none of this discussion would be interesting. It would be rather dull. Just buy the parts and be done with it. The suggestion for the communication sub-system is really just a recycled idea of a switch/router. Multiple serial comms and a processor. The interesting part is doing it with low cost and making it fit the needs of your project. I am looking into the ATTINY 841 (~$0.089) as a low cost UART to i2c interface for a comm sub system. It is not nearly as fancy as Chip's chip, but I am also not looking to go long distances. The program space is kind of small too.

John Vaughters



On Thursday, October 1, 2015 3:14 PM, Charles McClelland via TriEmbed <triembed at triembed.org<mailto:triembed at triembed.org>> wrote:

Fred,

Yes, but even more interesting is the constraint - it has to run for days or weeks on a battery.

Chip

On Oct 1, 2015, at 2:49 PM, Fred Ebeling <FEbeling at ECPDesigns.com<mailto:FEbeling at ECPDesigns.com>> wrote:

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<mailto:triembed at triembed.org>
Sent: Thursday, October 01, 2015 2:07 PM
To: triembed at triembed.org<mailto: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<http://www.ti.com/lit/ds/symlink/p82b715.pdf>
- Can go up to 5m at 5V but 3.3V operation works - just at reduced range
- Costs $2 a chip SOIC 8<https://www.digikey.com/product-detail/en/P82B715DR/296-24729-1-ND/2092551>
- 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<http://www.nxp.com/documents/data_sheet/SC16IS752_SC16IS762.pdf>
- Can take 100kHz to 1000’ (rule of thumb - range = 100kHz / 10^8)
- Costs $4 a chip - 28-TSSOP<http://www.digikey.com/product-detail/en/SC16IS752IPW,128/568-11944-1-ND/5221977>
- 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<mailto:triembed-request at triembed.org> wrote:

Send TriEmbed mailing list submissions to
triembed at triembed.org<mailto: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<mailto:triembed-request at triembed.org>

You can reach the person managing the list at
triembed-owner at triembed.org<mailto: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<mailto:email at adamhaile.net>>
To: Rodney Radford <ncgadgetry at gmail.com<mailto:ncgadgetry at gmail.com>>
Cc: TriEmbed Discussion <triembed at triembed.org<mailto:triembed at triembed.org>>, trianglerobotics
<trianglerobotics at yahoogroups.com<mailto:trianglerobotics at yahoogroups.com>>, Triangle Linux Users Group
General Discussion <trilug at trilug.org<mailto: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<mailto:3AV4Y_KBKdDPXV%2Bv2oAtCg 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<mailto: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<mailto: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<mailto:ncgadgetry at gmail.com>>
To: TriEmbed Discussion <triembed at triembed.org<mailto:triembed at triembed.org>>
Subject: Re: [TriEmbed] I2C range extension
Message-ID:
<CA+kfaxGN56iAhKCSsRDi7VzLZuH71vwxxxZVzZKEoGquUDAgBw at mail.gmail.com<mailto:CA%2BkfaxGN56iAhKCSsRDi7VzLZuH71vwxxxZVzZKEoGquUDAgBw 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<mailto: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<mailto: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<mailto:pete at soper.us>>
To: triembed at triembed.org<mailto:triembed at triembed.org>
Subject: Re: [TriEmbed] Fred Brooks presenting tonight on Centennial
Campus
Message-ID: <560C38E7.7090105 at soper.us<mailto: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<mailto:FEbeling at ECPDesigns.com>>
To: "Charles McClelland" <chip at mcclellands.org<mailto:chip at mcclellands.org>>,
<triembed at triembed.org<mailto: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<mailto: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<mailto:triembed-request at triembed.org> wrote:

Send TriEmbed mailing list submissions to
triembed at triembed.org<mailto: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<mailto:triembed-request at triembed.org>

You can reach the person managing the list at
triembed-owner at triembed.org<mailto: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<mailto:email at adamhaile.net>>
To: "triembed at triembed.org<mailto:triembed at triembed.org>" <triembed at triembed.org<mailto:triembed at triembed.org>>
Subject: Re: [TriEmbed] Bulk LED Order
Message-ID:
<CAG8g-TaEQgjJRs4GGKhWiMPj-NTKE_iUxbLXbdqY-6z6Nn0fTQ at mail.gmail.com<mailto: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<mailto: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<mailto:crwest at ncsu.edu>>
To: TriEmbed <triembed at triembed.org<mailto:triembed at triembed.org>>
Subject: [TriEmbed] I2C range extension
Message-ID:
<CAGojqSk0_4x63vjm0EhqRag56fW9y38j9qfJzOF8sRwzW_tfLQ at mail.gmail.com<mailto: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<mailto:jvaughters04 at yahoo.com>>
To: Charles West <crwest at ncsu.edu<mailto:crwest at ncsu.edu>>, TriEmbed <triembed at triembed.org<mailto:triembed at triembed.org>>
Subject: Re: [TriEmbed] I2C range extension
Message-ID:
<1421720024.2476926.1443617643320.JavaMail.yahoo at mail.yahoo.com<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto:TriEmbed at triembed.org>
http://mail.triembed.org/mailman/listinfo/triembed_triembed.org
TriEmbed web site: http://TriEmbed.org


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


_______________________________________________
Triangle, NC Embedded Computing mailing list
TriEmbed at triembed.org<mailto: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/20151002/06ca1969/attachment.htm>


More information about the TriEmbed mailing list