Go Down

Topic: Stranded vs. Solid wire for digital communications (Read 3110 times) previous topic - next topic

Verdris

Hi all,

I'm interfacing an Arduino to an AD7714 via SPI and an AD5175 via I2C.  I have a custom PCB that I designed and had printed to hold all the extra electronics.  The strange thing is, when I connect the microcontroller and board with solid wire like from a jumper kit, everything works wonderfully.  When I sub in a ribbon cable (smaller gauge wire, stranded), nothing works.  I get error codes from the AD7714 and the Ardi won't even see the AD5175.  I should note that the ribbon cable is able to power everything sufficiently.

The particular ribbon cable is this: http://www.sparkfun.com/products/10647

However, I've also had this problem with stranded ribbon cable salvaged from an old computer.  So what's going on?

majenko

How long a piece of ribbon cable are you using?

In general, ribbon cable used for digital communication should be alternately signal and ground (i.e., something like SCK,GND,MISO,GND,MOSI,GND,SS) so that the ground lines reduce crosstalk between the wires.

I think the problem is probably that it's ribbon cable, not that it's stranded wire.

Waruma

I am in no way an expert with these two modes of communication, but from what I do understand about them I'm going to blame crosstalk as the reason the ribbon cable isn't working.  What are the data rates you're using?  I know that ribbon cable has minimal insulation and minimal distance between wires - which would only make crosstalk more of an issue for you.  Crosstalk issues would get much worse with higher data rates.

Graynomad

Easy to test, split some wires from the ribbon and see if the problem persists.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

floresta

Maybe he should just go out and buy some of that $5 per foot Monster cable.

Don

war_spigot


Maybe he should just go out and buy some of that $5 per foot Monster cable.

Don


http://www.youtube.com/watch?v=lG5cEik2ABY
But buy 2 and Wrap one around the other to get double the speed

floresta

Imagine how fast it would be if he used cat5 cables from Monster.

Don

Docedison

Naaah I think he needs Magic Bullets... By Pass Caps... IMO

Doc
--> WA7EMS <--
"The solution of every problem is another problem." -Johann Wolfgang von Goethe
I do answer technical questions PM'd to me with whatever is in my clipboard

Verdris


How long a piece of ribbon cable are you using?

In general, ribbon cable used for digital communication should be alternately signal and ground (i.e., something like SCK,GND,MISO,GND,MOSI,GND,SS) so that the ground lines reduce crosstalk between the wires.

I think the problem is probably that it's ribbon cable, not that it's stranded wire.


It's about 4 inches long.  I have two cables, set up as (GND,+5V,AnalogRead,GND,SDA,SCL) and (SCK,MISO,MOSI,DRDY,RESET,CS).  So it's probably the alternating ground absence that's leading to problems.


I am in no way an expert with these two modes of communication, but from what I do understand about them I'm going to blame crosstalk as the reason the ribbon cable isn't working.  What are the data rates you're using?  I know that ribbon cable has minimal insulation and minimal distance between wires - which would only make crosstalk more of an issue for you.  Crosstalk issues would get much worse with higher data rates.


It's probably crosstalk.  I'm using standard SPI and I2C data rates, not scaling anything.


Easy to test, split some wires from the ribbon and see if the problem persists.

______
Rob


The crazy thing is after I did that, the problem persisted.  Only when I switched to short jumper wire did the problem vanish.


Maybe he should just go out and buy some of that $5 per foot Monster cable.

Don


What about this?  http://www.amazon.com/Diamond-Digital-Audio-Ethernet-Connection/dp/B003CT2A6I

majenko

One question nobody has thought to ask before now...

How are you connecting the ribbon cable?  Are you using connectors of some form?  If so, what are they?

The Clever Monkey



How long a piece of ribbon cable are you using?

In general, ribbon cable used for digital communication should be alternately signal and ground (i.e., something like SCK,GND,MISO,GND,MOSI,GND,SS) so that the ground lines reduce crosstalk between the wires.

I think the problem is probably that it's ribbon cable, not that it's stranded wire.


It's about 4 inches long.  I have two cables, set up as (GND,+5V,AnalogRead,GND,SDA,SCL) and (SCK,MISO,MOSI,DRDY,RESET,CS).  So it's probably the alternating ground absence that's leading to problems.


I am in no way an expert with these two modes of communication, but from what I do understand about them I'm going to blame crosstalk as the reason the ribbon cable isn't working.  What are the data rates you're using?  I know that ribbon cable has minimal insulation and minimal distance between wires - which would only make crosstalk more of an issue for you.  Crosstalk issues would get much worse with higher data rates.


It's probably crosstalk.  I'm using standard SPI and I2C data rates, not scaling anything.


Ribbon cable is electrically much longer because of the parasitics from the other conductors, and impedance of the wires carrying the signal becomes significant.  Normally, it is enough to split out and twist the conductors carrying the signal once or twice in the middle before binding them to the plug. This used to be common in PCs back in the day. But it depends on the frequency.

Also, cross-talk is a very complex thing in practice. You also have to look how and where you headers are, and how the traces react overall. Basically, you have created an array of little antennas. The trick is to make these antennas more inefficient. Are you terminating any unused conductors properly?

There are ribbon cables that are rate for this sort of work, but the problem could be in your other circuitry, and the ribbon will always interact poorly with that. You could look for multi-conductor twisted bundles (or, as suggested earlier, use ethernet cable if that has enough conductors.
I yield() for co-routines.

floresta

#11
Jun 07, 2012, 07:07 pm Last Edit: Jun 07, 2012, 07:10 pm by floresta Reason: 1
Quote
What about this?  http://www.amazon.com/Diamond-Digital-Audio-Ethernet-Connection/dp/B003CT2A6I


Anybody who has not yet followed this link should do so as soon as possible.  Be sure to scroll down and read the customer reviews, it will be worth your time.

Don

majenko


Quote
What about this?  http://www.amazon.com/Diamond-Digital-Audio-Ethernet-Connection/dp/B003CT2A6I


Anybody who has not yet followed this link should do so as soon as possible.  Be sure to scroll down and read the customer reviews, it will be worth your time.

Don



Oh, they are PRICELESS ... Especially the bacon!

Graynomad

That's funny.

Surely the price can't be for real.

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

majenko

Quote
Surely the price can't be for real.


It can, and it is.

Die-hard videophiles (the ones that can see artifacts where they don't exist) and audiophiles (the ones that think they can hear things that aren't there) are suckers for gimmicks like this.

Go Up