I2C signal and power over long range (10meter cable)How to connect multiple i2c-interface devices into a single pin A4 (SDA) and A5 (SCL) on Arduino?I2C extender or repeater?I2C at 2.4 MHz with five microcontrollers over 2 metersRTC DS1307 3.3V I2C and Oscilloscope impedanceWhat makes cables suitable or unsuitable for a given purpose?I2C PCA9600 logic side offset + ringingDifference between i2c switch and i2c muxCan I use a Dupont cable with a resistor soldered in the middle as a pullup resistor for I2C comms?LCD leaking power through I2C cablesdoubt when Arduino connects to multiple i2c devices
Is it not possible to get a parent field in a datatable column specification, for a Lightning Web Component?
How will losing mobility of one hand affect my career as a programmer?
Is there an Impartial Brexit Deal comparison site?
Stereotypical names
Can I use my Chinese passport to enter China after I acquired another citizenship?
Tiptoe or tiphoof? Adjusting words to better fit fantasy races
What't the meaning of this extra silence?
Should my PhD thesis be submitted under my legal name?
Using parameter substitution on a Bash array
What is difference between behavior and behaviour
Why did Kant, Hegel, and Adorno leave some words and phrases in the Greek alphabet?
How can I use the arrow sign in my bash prompt?
Why "be dealt cards" rather than "be dealing cards"?
The baby cries all morning
Coordinate position not precise
Increase performance creating Mandelbrot set in python
If you attempt to grapple an opponent that you are hidden from, do they roll at disadvantage?
I'm in charge of equipment buying but no one's ever happy with what I choose. How to fix this?
Was Spock the First Vulcan in Starfleet?
Opposite of a diet
Is HostGator storing my password in plaintext?
Understanding "audieritis" in Psalm 94
Why is delta-v is the most useful quantity for planning space travel?
Bash method for viewing beginning and end of file
I2C signal and power over long range (10meter cable)
How to connect multiple i2c-interface devices into a single pin A4 (SDA) and A5 (SCL) on Arduino?I2C extender or repeater?I2C at 2.4 MHz with five microcontrollers over 2 metersRTC DS1307 3.3V I2C and Oscilloscope impedanceWhat makes cables suitable or unsuitable for a given purpose?I2C PCA9600 logic side offset + ringingDifference between i2c switch and i2c muxCan I use a Dupont cable with a resistor soldered in the middle as a pullup resistor for I2C comms?LCD leaking power through I2C cablesdoubt when Arduino connects to multiple i2c devices
$begingroup$
After some reading/testing I managed to make stable communication between 2 devices using I2C with FTP CAT5 copper twisted pair cable.
- Green wire - SCL
- White/green wire - GND
- Blue wire - SDA
- White/blue wire - GND
GND is connected only at one cable end, I2C bus clock is at 10Khz and I have used 10Kom pullup resistors to VCC
It works well and stable. When I decided to use other 2 pairs of the cable for power (+12V), it stopped working. I tested +12V on one pair GND on the other pair, also +12V/GND on same pair: same result, it stopped working. Whole I2C bus stopped working, other devices attached to it too.
Wonder if I can use same cable or go to safest choice - another cable for power.
power i2c
New contributor
$endgroup$
|
show 5 more comments
$begingroup$
After some reading/testing I managed to make stable communication between 2 devices using I2C with FTP CAT5 copper twisted pair cable.
- Green wire - SCL
- White/green wire - GND
- Blue wire - SDA
- White/blue wire - GND
GND is connected only at one cable end, I2C bus clock is at 10Khz and I have used 10Kom pullup resistors to VCC
It works well and stable. When I decided to use other 2 pairs of the cable for power (+12V), it stopped working. I tested +12V on one pair GND on the other pair, also +12V/GND on same pair: same result, it stopped working. Whole I2C bus stopped working, other devices attached to it too.
Wonder if I can use same cable or go to safest choice - another cable for power.
power i2c
New contributor
$endgroup$
3
$begingroup$
Did you check that the power on the receiving side is fine enough? No glitches, no droops... CAT5 cables are quite thin, that is why PoE uses >40 V for power.
$endgroup$
– Vladimir Cravero
yesterday
4
$begingroup$
This is where you need an oscilloscope. Everything else will be (educated) guesswork.
$endgroup$
– pipe
yesterday
1
$begingroup$
I wouldn't twist SDA or SCL with GND because you don't want any capacitance between them. I would twist +12V with GND as you do want capacitance between them. What (return) current does the +12V have? (you might have ground bounce)
$endgroup$
– Huisman
yesterday
4
$begingroup$
GND is connected only at one cable end? Unless I am misunderstanding, that does not sound right.
$endgroup$
– mkeith
yesterday
1
$begingroup$
Did you mean UTP cable? I'm sure it can be used for more protocols than just FTP ;)
$endgroup$
– Andrew Morton
yesterday
|
show 5 more comments
$begingroup$
After some reading/testing I managed to make stable communication between 2 devices using I2C with FTP CAT5 copper twisted pair cable.
- Green wire - SCL
- White/green wire - GND
- Blue wire - SDA
- White/blue wire - GND
GND is connected only at one cable end, I2C bus clock is at 10Khz and I have used 10Kom pullup resistors to VCC
It works well and stable. When I decided to use other 2 pairs of the cable for power (+12V), it stopped working. I tested +12V on one pair GND on the other pair, also +12V/GND on same pair: same result, it stopped working. Whole I2C bus stopped working, other devices attached to it too.
Wonder if I can use same cable or go to safest choice - another cable for power.
power i2c
New contributor
$endgroup$
After some reading/testing I managed to make stable communication between 2 devices using I2C with FTP CAT5 copper twisted pair cable.
- Green wire - SCL
- White/green wire - GND
- Blue wire - SDA
- White/blue wire - GND
GND is connected only at one cable end, I2C bus clock is at 10Khz and I have used 10Kom pullup resistors to VCC
It works well and stable. When I decided to use other 2 pairs of the cable for power (+12V), it stopped working. I tested +12V on one pair GND on the other pair, also +12V/GND on same pair: same result, it stopped working. Whole I2C bus stopped working, other devices attached to it too.
Wonder if I can use same cable or go to safest choice - another cable for power.
power i2c
power i2c
New contributor
New contributor
edited yesterday
Huisman
848111
848111
New contributor
asked yesterday
user3503519user3503519
412
412
New contributor
New contributor
3
$begingroup$
Did you check that the power on the receiving side is fine enough? No glitches, no droops... CAT5 cables are quite thin, that is why PoE uses >40 V for power.
$endgroup$
– Vladimir Cravero
yesterday
4
$begingroup$
This is where you need an oscilloscope. Everything else will be (educated) guesswork.
$endgroup$
– pipe
yesterday
1
$begingroup$
I wouldn't twist SDA or SCL with GND because you don't want any capacitance between them. I would twist +12V with GND as you do want capacitance between them. What (return) current does the +12V have? (you might have ground bounce)
$endgroup$
– Huisman
yesterday
4
$begingroup$
GND is connected only at one cable end? Unless I am misunderstanding, that does not sound right.
$endgroup$
– mkeith
yesterday
1
$begingroup$
Did you mean UTP cable? I'm sure it can be used for more protocols than just FTP ;)
$endgroup$
– Andrew Morton
yesterday
|
show 5 more comments
3
$begingroup$
Did you check that the power on the receiving side is fine enough? No glitches, no droops... CAT5 cables are quite thin, that is why PoE uses >40 V for power.
$endgroup$
– Vladimir Cravero
yesterday
4
$begingroup$
This is where you need an oscilloscope. Everything else will be (educated) guesswork.
$endgroup$
– pipe
yesterday
1
$begingroup$
I wouldn't twist SDA or SCL with GND because you don't want any capacitance between them. I would twist +12V with GND as you do want capacitance between them. What (return) current does the +12V have? (you might have ground bounce)
$endgroup$
– Huisman
yesterday
4
$begingroup$
GND is connected only at one cable end? Unless I am misunderstanding, that does not sound right.
$endgroup$
– mkeith
yesterday
1
$begingroup$
Did you mean UTP cable? I'm sure it can be used for more protocols than just FTP ;)
$endgroup$
– Andrew Morton
yesterday
3
3
$begingroup$
Did you check that the power on the receiving side is fine enough? No glitches, no droops... CAT5 cables are quite thin, that is why PoE uses >40 V for power.
$endgroup$
– Vladimir Cravero
yesterday
$begingroup$
Did you check that the power on the receiving side is fine enough? No glitches, no droops... CAT5 cables are quite thin, that is why PoE uses >40 V for power.
$endgroup$
– Vladimir Cravero
yesterday
4
4
$begingroup$
This is where you need an oscilloscope. Everything else will be (educated) guesswork.
$endgroup$
– pipe
yesterday
$begingroup$
This is where you need an oscilloscope. Everything else will be (educated) guesswork.
$endgroup$
– pipe
yesterday
1
1
$begingroup$
I wouldn't twist SDA or SCL with GND because you don't want any capacitance between them. I would twist +12V with GND as you do want capacitance between them. What (return) current does the +12V have? (you might have ground bounce)
$endgroup$
– Huisman
yesterday
$begingroup$
I wouldn't twist SDA or SCL with GND because you don't want any capacitance between them. I would twist +12V with GND as you do want capacitance between them. What (return) current does the +12V have? (you might have ground bounce)
$endgroup$
– Huisman
yesterday
4
4
$begingroup$
GND is connected only at one cable end? Unless I am misunderstanding, that does not sound right.
$endgroup$
– mkeith
yesterday
$begingroup$
GND is connected only at one cable end? Unless I am misunderstanding, that does not sound right.
$endgroup$
– mkeith
yesterday
1
1
$begingroup$
Did you mean UTP cable? I'm sure it can be used for more protocols than just FTP ;)
$endgroup$
– Andrew Morton
yesterday
$begingroup$
Did you mean UTP cable? I'm sure it can be used for more protocols than just FTP ;)
$endgroup$
– Andrew Morton
yesterday
|
show 5 more comments
3 Answers
3
active
oldest
votes
$begingroup$
Maybe overkill if it was working before, but an option is to use an I2C to Differential converter such as PCA9615, LTC4331, etc. If making the resistors smaller don't work or you need to extend the cable, consider not using I2C directly.
Not only the range will be extended but you will also have better noise immunity.
$endgroup$
1
$begingroup$
Great answer, this is exactly what should be done, but of course it may be a radical change for the OP.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
I mean, they are super easy to implement (if compared to moving to RS-485, CAN, etc), but yes compared to changing some resistors it is a radical change.
$endgroup$
– Wesley Lee
yesterday
1
$begingroup$
@JackCreasey OP's problem is not just cable capacitance, they seem to suffer from noise on 12V line they have added. Lowering pull-up resistors provides some extra noise immunity, but they can't keep lowering that resistance indefinitely.
$endgroup$
– Dmitry Grigoryev
23 hours ago
$begingroup$
@DmitryGrigoryev Since the OP gave no details I'm not sure how you could suggest that noise was being injected. I agree you can't just keep lowering the termination/pullup ….but the OP is too large by 10:1.
$endgroup$
– Jack Creasey
15 hours ago
add a comment |
$begingroup$
As I noted in a comment, it's hard to debug without an oscilloscope trace, but the first thing that stands out from your question is the 10 kOhm pull-up resistor. This is unusually high for I2C, although it could easily work in many cases.
I would try to lower them to 1 kOhm first, to see if it will affect anything. If it helps, you can gradually make them higher, although doing so will impact your rise-time.
$endgroup$
$begingroup$
10 k$Omega$ isn't that big for an I2C bus on 10 kHz, though? (Or should it be 100 kHz OP?)
$endgroup$
– Huisman
yesterday
$begingroup$
@Huisman Two good points. 10 kOhm wouldn't worry me at 10 kHz on a normal PCB but maybe it's not enough over the cable. And 10 kHz is unusual but not crazy unusual I guess.
$endgroup$
– pipe
yesterday
6
$begingroup$
10k Ohm is huge for I2C over any distance. That is the primary problem the OP has.
$endgroup$
– Jack Creasey
yesterday
1
$begingroup$
I guess it is better to split the resistors and use one on each end. 2 pullup-resistors @4.7kΩ, one on each end, should be a better choice than a single 2.2kΩ pullup-resistors.
$endgroup$
– 12431234123412341234123
yesterday
$begingroup$
I will try lower the resistors, that is all that make sence for me after all that comments.
$endgroup$
– user3503519
14 hours ago
add a comment |
$begingroup$
You absolutely need to drop your pullup resistors at long distances, and 10m is a long way and 10k Ohm is very high.
The value of the pullup resistor is related to three things:
- Cable capacitance
- Aiming voltage and Rx level sense.
- Speed
Try using any of the available calculators and start your reading here with the TI appnote on pullup values or here with the NXP I2C standard (7.1).
In terms of the problem you are having, it should be obvious that grounding additional pairs (12V,Gnd) in the cable will change the capacitance to the I2C signal wires.
$endgroup$
2
$begingroup$
I agree, CAT5 cable can be assumed to have about 50pF per meter so 10 meters exceed the 400pF capacitance limit of I2C specification. And reaching 400kHz I2C clock can't be achieved with 400pF capacitance by using the specified 3mA pull-up current from resistors. Fortunately, slowing speed down will help - unless the devices have a minimum clock speed limitation. We don't know what devices these are and what is the I2C bus voltages but indeed pullups should be adjusted to provide at least 3mA and if devices allow and agree on the bus low level voltage then even more.
$endgroup$
– Justme
yesterday
$begingroup$
Yes I gonna test with that, but my question is why it work if there is not power over that cable?
$endgroup$
– user3503519
14 hours ago
$begingroup$
A floating cable pair does not have the same capacitance to your signal pair that it has when the cable is grounded. For your configuration both the +12 and the Gnd are essentially the same ….they have capacitance to the signal cable that impacts your risetime. .
$endgroup$
– Jack Creasey
14 hours ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
);
);
, "mathjax-editing");
StackExchange.ifUsing("editor", function ()
return StackExchange.using("schematics", function ()
StackExchange.schematics.init();
);
, "cicuitlab");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "135"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
user3503519 is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f428948%2fi2c-signal-and-power-over-long-range-10meter-cable%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Maybe overkill if it was working before, but an option is to use an I2C to Differential converter such as PCA9615, LTC4331, etc. If making the resistors smaller don't work or you need to extend the cable, consider not using I2C directly.
Not only the range will be extended but you will also have better noise immunity.
$endgroup$
1
$begingroup$
Great answer, this is exactly what should be done, but of course it may be a radical change for the OP.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
I mean, they are super easy to implement (if compared to moving to RS-485, CAN, etc), but yes compared to changing some resistors it is a radical change.
$endgroup$
– Wesley Lee
yesterday
1
$begingroup$
@JackCreasey OP's problem is not just cable capacitance, they seem to suffer from noise on 12V line they have added. Lowering pull-up resistors provides some extra noise immunity, but they can't keep lowering that resistance indefinitely.
$endgroup$
– Dmitry Grigoryev
23 hours ago
$begingroup$
@DmitryGrigoryev Since the OP gave no details I'm not sure how you could suggest that noise was being injected. I agree you can't just keep lowering the termination/pullup ….but the OP is too large by 10:1.
$endgroup$
– Jack Creasey
15 hours ago
add a comment |
$begingroup$
Maybe overkill if it was working before, but an option is to use an I2C to Differential converter such as PCA9615, LTC4331, etc. If making the resistors smaller don't work or you need to extend the cable, consider not using I2C directly.
Not only the range will be extended but you will also have better noise immunity.
$endgroup$
1
$begingroup$
Great answer, this is exactly what should be done, but of course it may be a radical change for the OP.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
I mean, they are super easy to implement (if compared to moving to RS-485, CAN, etc), but yes compared to changing some resistors it is a radical change.
$endgroup$
– Wesley Lee
yesterday
1
$begingroup$
@JackCreasey OP's problem is not just cable capacitance, they seem to suffer from noise on 12V line they have added. Lowering pull-up resistors provides some extra noise immunity, but they can't keep lowering that resistance indefinitely.
$endgroup$
– Dmitry Grigoryev
23 hours ago
$begingroup$
@DmitryGrigoryev Since the OP gave no details I'm not sure how you could suggest that noise was being injected. I agree you can't just keep lowering the termination/pullup ….but the OP is too large by 10:1.
$endgroup$
– Jack Creasey
15 hours ago
add a comment |
$begingroup$
Maybe overkill if it was working before, but an option is to use an I2C to Differential converter such as PCA9615, LTC4331, etc. If making the resistors smaller don't work or you need to extend the cable, consider not using I2C directly.
Not only the range will be extended but you will also have better noise immunity.
$endgroup$
Maybe overkill if it was working before, but an option is to use an I2C to Differential converter such as PCA9615, LTC4331, etc. If making the resistors smaller don't work or you need to extend the cable, consider not using I2C directly.
Not only the range will be extended but you will also have better noise immunity.
answered yesterday
Wesley LeeWesley Lee
5,71652241
5,71652241
1
$begingroup$
Great answer, this is exactly what should be done, but of course it may be a radical change for the OP.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
I mean, they are super easy to implement (if compared to moving to RS-485, CAN, etc), but yes compared to changing some resistors it is a radical change.
$endgroup$
– Wesley Lee
yesterday
1
$begingroup$
@JackCreasey OP's problem is not just cable capacitance, they seem to suffer from noise on 12V line they have added. Lowering pull-up resistors provides some extra noise immunity, but they can't keep lowering that resistance indefinitely.
$endgroup$
– Dmitry Grigoryev
23 hours ago
$begingroup$
@DmitryGrigoryev Since the OP gave no details I'm not sure how you could suggest that noise was being injected. I agree you can't just keep lowering the termination/pullup ….but the OP is too large by 10:1.
$endgroup$
– Jack Creasey
15 hours ago
add a comment |
1
$begingroup$
Great answer, this is exactly what should be done, but of course it may be a radical change for the OP.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
I mean, they are super easy to implement (if compared to moving to RS-485, CAN, etc), but yes compared to changing some resistors it is a radical change.
$endgroup$
– Wesley Lee
yesterday
1
$begingroup$
@JackCreasey OP's problem is not just cable capacitance, they seem to suffer from noise on 12V line they have added. Lowering pull-up resistors provides some extra noise immunity, but they can't keep lowering that resistance indefinitely.
$endgroup$
– Dmitry Grigoryev
23 hours ago
$begingroup$
@DmitryGrigoryev Since the OP gave no details I'm not sure how you could suggest that noise was being injected. I agree you can't just keep lowering the termination/pullup ….but the OP is too large by 10:1.
$endgroup$
– Jack Creasey
15 hours ago
1
1
$begingroup$
Great answer, this is exactly what should be done, but of course it may be a radical change for the OP.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
Great answer, this is exactly what should be done, but of course it may be a radical change for the OP.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
I mean, they are super easy to implement (if compared to moving to RS-485, CAN, etc), but yes compared to changing some resistors it is a radical change.
$endgroup$
– Wesley Lee
yesterday
$begingroup$
I mean, they are super easy to implement (if compared to moving to RS-485, CAN, etc), but yes compared to changing some resistors it is a radical change.
$endgroup$
– Wesley Lee
yesterday
1
1
$begingroup$
@JackCreasey OP's problem is not just cable capacitance, they seem to suffer from noise on 12V line they have added. Lowering pull-up resistors provides some extra noise immunity, but they can't keep lowering that resistance indefinitely.
$endgroup$
– Dmitry Grigoryev
23 hours ago
$begingroup$
@JackCreasey OP's problem is not just cable capacitance, they seem to suffer from noise on 12V line they have added. Lowering pull-up resistors provides some extra noise immunity, but they can't keep lowering that resistance indefinitely.
$endgroup$
– Dmitry Grigoryev
23 hours ago
$begingroup$
@DmitryGrigoryev Since the OP gave no details I'm not sure how you could suggest that noise was being injected. I agree you can't just keep lowering the termination/pullup ….but the OP is too large by 10:1.
$endgroup$
– Jack Creasey
15 hours ago
$begingroup$
@DmitryGrigoryev Since the OP gave no details I'm not sure how you could suggest that noise was being injected. I agree you can't just keep lowering the termination/pullup ….but the OP is too large by 10:1.
$endgroup$
– Jack Creasey
15 hours ago
add a comment |
$begingroup$
As I noted in a comment, it's hard to debug without an oscilloscope trace, but the first thing that stands out from your question is the 10 kOhm pull-up resistor. This is unusually high for I2C, although it could easily work in many cases.
I would try to lower them to 1 kOhm first, to see if it will affect anything. If it helps, you can gradually make them higher, although doing so will impact your rise-time.
$endgroup$
$begingroup$
10 k$Omega$ isn't that big for an I2C bus on 10 kHz, though? (Or should it be 100 kHz OP?)
$endgroup$
– Huisman
yesterday
$begingroup$
@Huisman Two good points. 10 kOhm wouldn't worry me at 10 kHz on a normal PCB but maybe it's not enough over the cable. And 10 kHz is unusual but not crazy unusual I guess.
$endgroup$
– pipe
yesterday
6
$begingroup$
10k Ohm is huge for I2C over any distance. That is the primary problem the OP has.
$endgroup$
– Jack Creasey
yesterday
1
$begingroup$
I guess it is better to split the resistors and use one on each end. 2 pullup-resistors @4.7kΩ, one on each end, should be a better choice than a single 2.2kΩ pullup-resistors.
$endgroup$
– 12431234123412341234123
yesterday
$begingroup$
I will try lower the resistors, that is all that make sence for me after all that comments.
$endgroup$
– user3503519
14 hours ago
add a comment |
$begingroup$
As I noted in a comment, it's hard to debug without an oscilloscope trace, but the first thing that stands out from your question is the 10 kOhm pull-up resistor. This is unusually high for I2C, although it could easily work in many cases.
I would try to lower them to 1 kOhm first, to see if it will affect anything. If it helps, you can gradually make them higher, although doing so will impact your rise-time.
$endgroup$
$begingroup$
10 k$Omega$ isn't that big for an I2C bus on 10 kHz, though? (Or should it be 100 kHz OP?)
$endgroup$
– Huisman
yesterday
$begingroup$
@Huisman Two good points. 10 kOhm wouldn't worry me at 10 kHz on a normal PCB but maybe it's not enough over the cable. And 10 kHz is unusual but not crazy unusual I guess.
$endgroup$
– pipe
yesterday
6
$begingroup$
10k Ohm is huge for I2C over any distance. That is the primary problem the OP has.
$endgroup$
– Jack Creasey
yesterday
1
$begingroup$
I guess it is better to split the resistors and use one on each end. 2 pullup-resistors @4.7kΩ, one on each end, should be a better choice than a single 2.2kΩ pullup-resistors.
$endgroup$
– 12431234123412341234123
yesterday
$begingroup$
I will try lower the resistors, that is all that make sence for me after all that comments.
$endgroup$
– user3503519
14 hours ago
add a comment |
$begingroup$
As I noted in a comment, it's hard to debug without an oscilloscope trace, but the first thing that stands out from your question is the 10 kOhm pull-up resistor. This is unusually high for I2C, although it could easily work in many cases.
I would try to lower them to 1 kOhm first, to see if it will affect anything. If it helps, you can gradually make them higher, although doing so will impact your rise-time.
$endgroup$
As I noted in a comment, it's hard to debug without an oscilloscope trace, but the first thing that stands out from your question is the 10 kOhm pull-up resistor. This is unusually high for I2C, although it could easily work in many cases.
I would try to lower them to 1 kOhm first, to see if it will affect anything. If it helps, you can gradually make them higher, although doing so will impact your rise-time.
edited yesterday
answered yesterday
pipepipe
10.3k42658
10.3k42658
$begingroup$
10 k$Omega$ isn't that big for an I2C bus on 10 kHz, though? (Or should it be 100 kHz OP?)
$endgroup$
– Huisman
yesterday
$begingroup$
@Huisman Two good points. 10 kOhm wouldn't worry me at 10 kHz on a normal PCB but maybe it's not enough over the cable. And 10 kHz is unusual but not crazy unusual I guess.
$endgroup$
– pipe
yesterday
6
$begingroup$
10k Ohm is huge for I2C over any distance. That is the primary problem the OP has.
$endgroup$
– Jack Creasey
yesterday
1
$begingroup$
I guess it is better to split the resistors and use one on each end. 2 pullup-resistors @4.7kΩ, one on each end, should be a better choice than a single 2.2kΩ pullup-resistors.
$endgroup$
– 12431234123412341234123
yesterday
$begingroup$
I will try lower the resistors, that is all that make sence for me after all that comments.
$endgroup$
– user3503519
14 hours ago
add a comment |
$begingroup$
10 k$Omega$ isn't that big for an I2C bus on 10 kHz, though? (Or should it be 100 kHz OP?)
$endgroup$
– Huisman
yesterday
$begingroup$
@Huisman Two good points. 10 kOhm wouldn't worry me at 10 kHz on a normal PCB but maybe it's not enough over the cable. And 10 kHz is unusual but not crazy unusual I guess.
$endgroup$
– pipe
yesterday
6
$begingroup$
10k Ohm is huge for I2C over any distance. That is the primary problem the OP has.
$endgroup$
– Jack Creasey
yesterday
1
$begingroup$
I guess it is better to split the resistors and use one on each end. 2 pullup-resistors @4.7kΩ, one on each end, should be a better choice than a single 2.2kΩ pullup-resistors.
$endgroup$
– 12431234123412341234123
yesterday
$begingroup$
I will try lower the resistors, that is all that make sence for me after all that comments.
$endgroup$
– user3503519
14 hours ago
$begingroup$
10 k$Omega$ isn't that big for an I2C bus on 10 kHz, though? (Or should it be 100 kHz OP?)
$endgroup$
– Huisman
yesterday
$begingroup$
10 k$Omega$ isn't that big for an I2C bus on 10 kHz, though? (Or should it be 100 kHz OP?)
$endgroup$
– Huisman
yesterday
$begingroup$
@Huisman Two good points. 10 kOhm wouldn't worry me at 10 kHz on a normal PCB but maybe it's not enough over the cable. And 10 kHz is unusual but not crazy unusual I guess.
$endgroup$
– pipe
yesterday
$begingroup$
@Huisman Two good points. 10 kOhm wouldn't worry me at 10 kHz on a normal PCB but maybe it's not enough over the cable. And 10 kHz is unusual but not crazy unusual I guess.
$endgroup$
– pipe
yesterday
6
6
$begingroup$
10k Ohm is huge for I2C over any distance. That is the primary problem the OP has.
$endgroup$
– Jack Creasey
yesterday
$begingroup$
10k Ohm is huge for I2C over any distance. That is the primary problem the OP has.
$endgroup$
– Jack Creasey
yesterday
1
1
$begingroup$
I guess it is better to split the resistors and use one on each end. 2 pullup-resistors @4.7kΩ, one on each end, should be a better choice than a single 2.2kΩ pullup-resistors.
$endgroup$
– 12431234123412341234123
yesterday
$begingroup$
I guess it is better to split the resistors and use one on each end. 2 pullup-resistors @4.7kΩ, one on each end, should be a better choice than a single 2.2kΩ pullup-resistors.
$endgroup$
– 12431234123412341234123
yesterday
$begingroup$
I will try lower the resistors, that is all that make sence for me after all that comments.
$endgroup$
– user3503519
14 hours ago
$begingroup$
I will try lower the resistors, that is all that make sence for me after all that comments.
$endgroup$
– user3503519
14 hours ago
add a comment |
$begingroup$
You absolutely need to drop your pullup resistors at long distances, and 10m is a long way and 10k Ohm is very high.
The value of the pullup resistor is related to three things:
- Cable capacitance
- Aiming voltage and Rx level sense.
- Speed
Try using any of the available calculators and start your reading here with the TI appnote on pullup values or here with the NXP I2C standard (7.1).
In terms of the problem you are having, it should be obvious that grounding additional pairs (12V,Gnd) in the cable will change the capacitance to the I2C signal wires.
$endgroup$
2
$begingroup$
I agree, CAT5 cable can be assumed to have about 50pF per meter so 10 meters exceed the 400pF capacitance limit of I2C specification. And reaching 400kHz I2C clock can't be achieved with 400pF capacitance by using the specified 3mA pull-up current from resistors. Fortunately, slowing speed down will help - unless the devices have a minimum clock speed limitation. We don't know what devices these are and what is the I2C bus voltages but indeed pullups should be adjusted to provide at least 3mA and if devices allow and agree on the bus low level voltage then even more.
$endgroup$
– Justme
yesterday
$begingroup$
Yes I gonna test with that, but my question is why it work if there is not power over that cable?
$endgroup$
– user3503519
14 hours ago
$begingroup$
A floating cable pair does not have the same capacitance to your signal pair that it has when the cable is grounded. For your configuration both the +12 and the Gnd are essentially the same ….they have capacitance to the signal cable that impacts your risetime. .
$endgroup$
– Jack Creasey
14 hours ago
add a comment |
$begingroup$
You absolutely need to drop your pullup resistors at long distances, and 10m is a long way and 10k Ohm is very high.
The value of the pullup resistor is related to three things:
- Cable capacitance
- Aiming voltage and Rx level sense.
- Speed
Try using any of the available calculators and start your reading here with the TI appnote on pullup values or here with the NXP I2C standard (7.1).
In terms of the problem you are having, it should be obvious that grounding additional pairs (12V,Gnd) in the cable will change the capacitance to the I2C signal wires.
$endgroup$
2
$begingroup$
I agree, CAT5 cable can be assumed to have about 50pF per meter so 10 meters exceed the 400pF capacitance limit of I2C specification. And reaching 400kHz I2C clock can't be achieved with 400pF capacitance by using the specified 3mA pull-up current from resistors. Fortunately, slowing speed down will help - unless the devices have a minimum clock speed limitation. We don't know what devices these are and what is the I2C bus voltages but indeed pullups should be adjusted to provide at least 3mA and if devices allow and agree on the bus low level voltage then even more.
$endgroup$
– Justme
yesterday
$begingroup$
Yes I gonna test with that, but my question is why it work if there is not power over that cable?
$endgroup$
– user3503519
14 hours ago
$begingroup$
A floating cable pair does not have the same capacitance to your signal pair that it has when the cable is grounded. For your configuration both the +12 and the Gnd are essentially the same ….they have capacitance to the signal cable that impacts your risetime. .
$endgroup$
– Jack Creasey
14 hours ago
add a comment |
$begingroup$
You absolutely need to drop your pullup resistors at long distances, and 10m is a long way and 10k Ohm is very high.
The value of the pullup resistor is related to three things:
- Cable capacitance
- Aiming voltage and Rx level sense.
- Speed
Try using any of the available calculators and start your reading here with the TI appnote on pullup values or here with the NXP I2C standard (7.1).
In terms of the problem you are having, it should be obvious that grounding additional pairs (12V,Gnd) in the cable will change the capacitance to the I2C signal wires.
$endgroup$
You absolutely need to drop your pullup resistors at long distances, and 10m is a long way and 10k Ohm is very high.
The value of the pullup resistor is related to three things:
- Cable capacitance
- Aiming voltage and Rx level sense.
- Speed
Try using any of the available calculators and start your reading here with the TI appnote on pullup values or here with the NXP I2C standard (7.1).
In terms of the problem you are having, it should be obvious that grounding additional pairs (12V,Gnd) in the cable will change the capacitance to the I2C signal wires.
edited yesterday
answered yesterday
Jack CreaseyJack Creasey
14.9k2823
14.9k2823
2
$begingroup$
I agree, CAT5 cable can be assumed to have about 50pF per meter so 10 meters exceed the 400pF capacitance limit of I2C specification. And reaching 400kHz I2C clock can't be achieved with 400pF capacitance by using the specified 3mA pull-up current from resistors. Fortunately, slowing speed down will help - unless the devices have a minimum clock speed limitation. We don't know what devices these are and what is the I2C bus voltages but indeed pullups should be adjusted to provide at least 3mA and if devices allow and agree on the bus low level voltage then even more.
$endgroup$
– Justme
yesterday
$begingroup$
Yes I gonna test with that, but my question is why it work if there is not power over that cable?
$endgroup$
– user3503519
14 hours ago
$begingroup$
A floating cable pair does not have the same capacitance to your signal pair that it has when the cable is grounded. For your configuration both the +12 and the Gnd are essentially the same ….they have capacitance to the signal cable that impacts your risetime. .
$endgroup$
– Jack Creasey
14 hours ago
add a comment |
2
$begingroup$
I agree, CAT5 cable can be assumed to have about 50pF per meter so 10 meters exceed the 400pF capacitance limit of I2C specification. And reaching 400kHz I2C clock can't be achieved with 400pF capacitance by using the specified 3mA pull-up current from resistors. Fortunately, slowing speed down will help - unless the devices have a minimum clock speed limitation. We don't know what devices these are and what is the I2C bus voltages but indeed pullups should be adjusted to provide at least 3mA and if devices allow and agree on the bus low level voltage then even more.
$endgroup$
– Justme
yesterday
$begingroup$
Yes I gonna test with that, but my question is why it work if there is not power over that cable?
$endgroup$
– user3503519
14 hours ago
$begingroup$
A floating cable pair does not have the same capacitance to your signal pair that it has when the cable is grounded. For your configuration both the +12 and the Gnd are essentially the same ….they have capacitance to the signal cable that impacts your risetime. .
$endgroup$
– Jack Creasey
14 hours ago
2
2
$begingroup$
I agree, CAT5 cable can be assumed to have about 50pF per meter so 10 meters exceed the 400pF capacitance limit of I2C specification. And reaching 400kHz I2C clock can't be achieved with 400pF capacitance by using the specified 3mA pull-up current from resistors. Fortunately, slowing speed down will help - unless the devices have a minimum clock speed limitation. We don't know what devices these are and what is the I2C bus voltages but indeed pullups should be adjusted to provide at least 3mA and if devices allow and agree on the bus low level voltage then even more.
$endgroup$
– Justme
yesterday
$begingroup$
I agree, CAT5 cable can be assumed to have about 50pF per meter so 10 meters exceed the 400pF capacitance limit of I2C specification. And reaching 400kHz I2C clock can't be achieved with 400pF capacitance by using the specified 3mA pull-up current from resistors. Fortunately, slowing speed down will help - unless the devices have a minimum clock speed limitation. We don't know what devices these are and what is the I2C bus voltages but indeed pullups should be adjusted to provide at least 3mA and if devices allow and agree on the bus low level voltage then even more.
$endgroup$
– Justme
yesterday
$begingroup$
Yes I gonna test with that, but my question is why it work if there is not power over that cable?
$endgroup$
– user3503519
14 hours ago
$begingroup$
Yes I gonna test with that, but my question is why it work if there is not power over that cable?
$endgroup$
– user3503519
14 hours ago
$begingroup$
A floating cable pair does not have the same capacitance to your signal pair that it has when the cable is grounded. For your configuration both the +12 and the Gnd are essentially the same ….they have capacitance to the signal cable that impacts your risetime. .
$endgroup$
– Jack Creasey
14 hours ago
$begingroup$
A floating cable pair does not have the same capacitance to your signal pair that it has when the cable is grounded. For your configuration both the +12 and the Gnd are essentially the same ….they have capacitance to the signal cable that impacts your risetime. .
$endgroup$
– Jack Creasey
14 hours ago
add a comment |
user3503519 is a new contributor. Be nice, and check out our Code of Conduct.
user3503519 is a new contributor. Be nice, and check out our Code of Conduct.
user3503519 is a new contributor. Be nice, and check out our Code of Conduct.
user3503519 is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Electrical Engineering Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f428948%2fi2c-signal-and-power-over-long-range-10meter-cable%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
-i2c, power
3
$begingroup$
Did you check that the power on the receiving side is fine enough? No glitches, no droops... CAT5 cables are quite thin, that is why PoE uses >40 V for power.
$endgroup$
– Vladimir Cravero
yesterday
4
$begingroup$
This is where you need an oscilloscope. Everything else will be (educated) guesswork.
$endgroup$
– pipe
yesterday
1
$begingroup$
I wouldn't twist SDA or SCL with GND because you don't want any capacitance between them. I would twist +12V with GND as you do want capacitance between them. What (return) current does the +12V have? (you might have ground bounce)
$endgroup$
– Huisman
yesterday
4
$begingroup$
GND is connected only at one cable end? Unless I am misunderstanding, that does not sound right.
$endgroup$
– mkeith
yesterday
1
$begingroup$
Did you mean UTP cable? I'm sure it can be used for more protocols than just FTP ;)
$endgroup$
– Andrew Morton
yesterday