Interfacing a button to a microcontroller (and PC) with a 50 m long cable
$begingroup$
I am designing a board that will be plugged into a computer and will read the status of a button ~50 m away in an office environment (it's actually a lot closer, but the cable is long).
I think it's a good idea to galvanically isolate the button wiring from the computer, since the PC will be grounded. I don't want any faults on the wiring to be able to damage the computer.
I'm assuming less than 100 ohm resistance for the cable, and while a simple series resistor would work, I think having a constant current sink for the opto LED is safer (i.e. if the cable has to be a lot longer, or shorter, etc.).
Is this a sensible approach to it? Cost/space is not much an issue, so I could add some protection/filtering circuitry, but I'm not entirely sure where/how to do it, so I'd be happy to hear some suggestions.
simulate this circuit – Schematic created using CircuitLab
opto-isolator isolation circuit-protection
$endgroup$
add a comment |
$begingroup$
I am designing a board that will be plugged into a computer and will read the status of a button ~50 m away in an office environment (it's actually a lot closer, but the cable is long).
I think it's a good idea to galvanically isolate the button wiring from the computer, since the PC will be grounded. I don't want any faults on the wiring to be able to damage the computer.
I'm assuming less than 100 ohm resistance for the cable, and while a simple series resistor would work, I think having a constant current sink for the opto LED is safer (i.e. if the cable has to be a lot longer, or shorter, etc.).
Is this a sensible approach to it? Cost/space is not much an issue, so I could add some protection/filtering circuitry, but I'm not entirely sure where/how to do it, so I'd be happy to hear some suggestions.
simulate this circuit – Schematic created using CircuitLab
opto-isolator isolation circuit-protection
$endgroup$
add a comment |
$begingroup$
I am designing a board that will be plugged into a computer and will read the status of a button ~50 m away in an office environment (it's actually a lot closer, but the cable is long).
I think it's a good idea to galvanically isolate the button wiring from the computer, since the PC will be grounded. I don't want any faults on the wiring to be able to damage the computer.
I'm assuming less than 100 ohm resistance for the cable, and while a simple series resistor would work, I think having a constant current sink for the opto LED is safer (i.e. if the cable has to be a lot longer, or shorter, etc.).
Is this a sensible approach to it? Cost/space is not much an issue, so I could add some protection/filtering circuitry, but I'm not entirely sure where/how to do it, so I'd be happy to hear some suggestions.
simulate this circuit – Schematic created using CircuitLab
opto-isolator isolation circuit-protection
$endgroup$
I am designing a board that will be plugged into a computer and will read the status of a button ~50 m away in an office environment (it's actually a lot closer, but the cable is long).
I think it's a good idea to galvanically isolate the button wiring from the computer, since the PC will be grounded. I don't want any faults on the wiring to be able to damage the computer.
I'm assuming less than 100 ohm resistance for the cable, and while a simple series resistor would work, I think having a constant current sink for the opto LED is safer (i.e. if the cable has to be a lot longer, or shorter, etc.).
Is this a sensible approach to it? Cost/space is not much an issue, so I could add some protection/filtering circuitry, but I'm not entirely sure where/how to do it, so I'd be happy to hear some suggestions.
simulate this circuit – Schematic created using CircuitLab
opto-isolator isolation circuit-protection
opto-isolator isolation circuit-protection
edited 2 days ago
Peter Mortensen
1,60031422
1,60031422
asked Mar 29 at 17:28
Wesley LeeWesley Lee
5,81152242
5,81152242
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
$begingroup$
Looks like too much circuitry, which leads to more cost, complexity, failures. There is nothing in the question that indicates anything more than series resistors are required. Adding components, like isolated switching power supplies, adds components with much higher failure rates than a few resistors and diodes. The circuit below is well protected, simple, reliable, and goes high/low when switch is closed/open. There would need to be a specific, compelling reason to add all that circuitry in the question.
simulate this circuit – Schematic created using CircuitLab
$endgroup$
2
$begingroup$
Fair points, but I am less worried about the board itself failing than it causing some damage to the computer due to the long cable being connected to say, AC mains, by accident etc. I guess high voltage resistors and some fuses would solve that. This is a one off project so cost isn't an issue. I do feel quite relieved that this approach would be enough in most cases though.
$endgroup$
– Wesley Lee
Mar 29 at 18:02
1
$begingroup$
You may forgo the fuses, as D1+D2 clamp circuit voltages to acceptable levels.
$endgroup$
– scorpdaddy
Mar 29 at 18:24
add a comment |
$begingroup$
That looks fine to me, but you may wish to put a diode across the optoisolator LED in case you get some ringing in the choke or wiring.
The two transistor current sink might be slightly better and maybe 100K is a bit on the high side for the resistor. Eg,
simulate this circuit – Schematic created using CircuitLab
You could also flip the current limiter and put it on the other rail. Right now the opto sees a lot of common mode voltage change when the switch is pressed. Grounding the photodiode would reduce that because of the coupling capacitance of the DC-DC.
$endgroup$
1
$begingroup$
And less different parts to place with 2 transistors instead of diodes. (Oh nvm now there is a diode back again :P )
$endgroup$
– Wesley Lee
Mar 29 at 17:50
add a comment |
$begingroup$
A simpler way would be to use a shielded cable (to shunt noise and ESD away), and then protect the microcontroller inputs with diodes to VCC and ground.
The resistance of the cable is most likely to be between 1 or 10 ohms (as long as the AWG is more than 30 gauge).
$endgroup$
add a comment |
$begingroup$
I would make a current loop. Simple, cheap and reliable. You can connect the transistor in a common collector configuration if you want a non-inverted output. The optocoupler LED must be rated for at least 20 mA.
$endgroup$
add a comment |
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
});
}
});
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%2f429700%2finterfacing-a-button-to-a-microcontroller-and-pc-with-a-50-m-long-cable%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Looks like too much circuitry, which leads to more cost, complexity, failures. There is nothing in the question that indicates anything more than series resistors are required. Adding components, like isolated switching power supplies, adds components with much higher failure rates than a few resistors and diodes. The circuit below is well protected, simple, reliable, and goes high/low when switch is closed/open. There would need to be a specific, compelling reason to add all that circuitry in the question.
simulate this circuit – Schematic created using CircuitLab
$endgroup$
2
$begingroup$
Fair points, but I am less worried about the board itself failing than it causing some damage to the computer due to the long cable being connected to say, AC mains, by accident etc. I guess high voltage resistors and some fuses would solve that. This is a one off project so cost isn't an issue. I do feel quite relieved that this approach would be enough in most cases though.
$endgroup$
– Wesley Lee
Mar 29 at 18:02
1
$begingroup$
You may forgo the fuses, as D1+D2 clamp circuit voltages to acceptable levels.
$endgroup$
– scorpdaddy
Mar 29 at 18:24
add a comment |
$begingroup$
Looks like too much circuitry, which leads to more cost, complexity, failures. There is nothing in the question that indicates anything more than series resistors are required. Adding components, like isolated switching power supplies, adds components with much higher failure rates than a few resistors and diodes. The circuit below is well protected, simple, reliable, and goes high/low when switch is closed/open. There would need to be a specific, compelling reason to add all that circuitry in the question.
simulate this circuit – Schematic created using CircuitLab
$endgroup$
2
$begingroup$
Fair points, but I am less worried about the board itself failing than it causing some damage to the computer due to the long cable being connected to say, AC mains, by accident etc. I guess high voltage resistors and some fuses would solve that. This is a one off project so cost isn't an issue. I do feel quite relieved that this approach would be enough in most cases though.
$endgroup$
– Wesley Lee
Mar 29 at 18:02
1
$begingroup$
You may forgo the fuses, as D1+D2 clamp circuit voltages to acceptable levels.
$endgroup$
– scorpdaddy
Mar 29 at 18:24
add a comment |
$begingroup$
Looks like too much circuitry, which leads to more cost, complexity, failures. There is nothing in the question that indicates anything more than series resistors are required. Adding components, like isolated switching power supplies, adds components with much higher failure rates than a few resistors and diodes. The circuit below is well protected, simple, reliable, and goes high/low when switch is closed/open. There would need to be a specific, compelling reason to add all that circuitry in the question.
simulate this circuit – Schematic created using CircuitLab
$endgroup$
Looks like too much circuitry, which leads to more cost, complexity, failures. There is nothing in the question that indicates anything more than series resistors are required. Adding components, like isolated switching power supplies, adds components with much higher failure rates than a few resistors and diodes. The circuit below is well protected, simple, reliable, and goes high/low when switch is closed/open. There would need to be a specific, compelling reason to add all that circuitry in the question.
simulate this circuit – Schematic created using CircuitLab
answered Mar 29 at 17:55
scorpdaddyscorpdaddy
56127
56127
2
$begingroup$
Fair points, but I am less worried about the board itself failing than it causing some damage to the computer due to the long cable being connected to say, AC mains, by accident etc. I guess high voltage resistors and some fuses would solve that. This is a one off project so cost isn't an issue. I do feel quite relieved that this approach would be enough in most cases though.
$endgroup$
– Wesley Lee
Mar 29 at 18:02
1
$begingroup$
You may forgo the fuses, as D1+D2 clamp circuit voltages to acceptable levels.
$endgroup$
– scorpdaddy
Mar 29 at 18:24
add a comment |
2
$begingroup$
Fair points, but I am less worried about the board itself failing than it causing some damage to the computer due to the long cable being connected to say, AC mains, by accident etc. I guess high voltage resistors and some fuses would solve that. This is a one off project so cost isn't an issue. I do feel quite relieved that this approach would be enough in most cases though.
$endgroup$
– Wesley Lee
Mar 29 at 18:02
1
$begingroup$
You may forgo the fuses, as D1+D2 clamp circuit voltages to acceptable levels.
$endgroup$
– scorpdaddy
Mar 29 at 18:24
2
2
$begingroup$
Fair points, but I am less worried about the board itself failing than it causing some damage to the computer due to the long cable being connected to say, AC mains, by accident etc. I guess high voltage resistors and some fuses would solve that. This is a one off project so cost isn't an issue. I do feel quite relieved that this approach would be enough in most cases though.
$endgroup$
– Wesley Lee
Mar 29 at 18:02
$begingroup$
Fair points, but I am less worried about the board itself failing than it causing some damage to the computer due to the long cable being connected to say, AC mains, by accident etc. I guess high voltage resistors and some fuses would solve that. This is a one off project so cost isn't an issue. I do feel quite relieved that this approach would be enough in most cases though.
$endgroup$
– Wesley Lee
Mar 29 at 18:02
1
1
$begingroup$
You may forgo the fuses, as D1+D2 clamp circuit voltages to acceptable levels.
$endgroup$
– scorpdaddy
Mar 29 at 18:24
$begingroup$
You may forgo the fuses, as D1+D2 clamp circuit voltages to acceptable levels.
$endgroup$
– scorpdaddy
Mar 29 at 18:24
add a comment |
$begingroup$
That looks fine to me, but you may wish to put a diode across the optoisolator LED in case you get some ringing in the choke or wiring.
The two transistor current sink might be slightly better and maybe 100K is a bit on the high side for the resistor. Eg,
simulate this circuit – Schematic created using CircuitLab
You could also flip the current limiter and put it on the other rail. Right now the opto sees a lot of common mode voltage change when the switch is pressed. Grounding the photodiode would reduce that because of the coupling capacitance of the DC-DC.
$endgroup$
1
$begingroup$
And less different parts to place with 2 transistors instead of diodes. (Oh nvm now there is a diode back again :P )
$endgroup$
– Wesley Lee
Mar 29 at 17:50
add a comment |
$begingroup$
That looks fine to me, but you may wish to put a diode across the optoisolator LED in case you get some ringing in the choke or wiring.
The two transistor current sink might be slightly better and maybe 100K is a bit on the high side for the resistor. Eg,
simulate this circuit – Schematic created using CircuitLab
You could also flip the current limiter and put it on the other rail. Right now the opto sees a lot of common mode voltage change when the switch is pressed. Grounding the photodiode would reduce that because of the coupling capacitance of the DC-DC.
$endgroup$
1
$begingroup$
And less different parts to place with 2 transistors instead of diodes. (Oh nvm now there is a diode back again :P )
$endgroup$
– Wesley Lee
Mar 29 at 17:50
add a comment |
$begingroup$
That looks fine to me, but you may wish to put a diode across the optoisolator LED in case you get some ringing in the choke or wiring.
The two transistor current sink might be slightly better and maybe 100K is a bit on the high side for the resistor. Eg,
simulate this circuit – Schematic created using CircuitLab
You could also flip the current limiter and put it on the other rail. Right now the opto sees a lot of common mode voltage change when the switch is pressed. Grounding the photodiode would reduce that because of the coupling capacitance of the DC-DC.
$endgroup$
That looks fine to me, but you may wish to put a diode across the optoisolator LED in case you get some ringing in the choke or wiring.
The two transistor current sink might be slightly better and maybe 100K is a bit on the high side for the resistor. Eg,
simulate this circuit – Schematic created using CircuitLab
You could also flip the current limiter and put it on the other rail. Right now the opto sees a lot of common mode voltage change when the switch is pressed. Grounding the photodiode would reduce that because of the coupling capacitance of the DC-DC.
edited Mar 29 at 17:51
answered Mar 29 at 17:43
Spehro PefhanySpehro Pefhany
212k5162428
212k5162428
1
$begingroup$
And less different parts to place with 2 transistors instead of diodes. (Oh nvm now there is a diode back again :P )
$endgroup$
– Wesley Lee
Mar 29 at 17:50
add a comment |
1
$begingroup$
And less different parts to place with 2 transistors instead of diodes. (Oh nvm now there is a diode back again :P )
$endgroup$
– Wesley Lee
Mar 29 at 17:50
1
1
$begingroup$
And less different parts to place with 2 transistors instead of diodes. (Oh nvm now there is a diode back again :P )
$endgroup$
– Wesley Lee
Mar 29 at 17:50
$begingroup$
And less different parts to place with 2 transistors instead of diodes. (Oh nvm now there is a diode back again :P )
$endgroup$
– Wesley Lee
Mar 29 at 17:50
add a comment |
$begingroup$
A simpler way would be to use a shielded cable (to shunt noise and ESD away), and then protect the microcontroller inputs with diodes to VCC and ground.
The resistance of the cable is most likely to be between 1 or 10 ohms (as long as the AWG is more than 30 gauge).
$endgroup$
add a comment |
$begingroup$
A simpler way would be to use a shielded cable (to shunt noise and ESD away), and then protect the microcontroller inputs with diodes to VCC and ground.
The resistance of the cable is most likely to be between 1 or 10 ohms (as long as the AWG is more than 30 gauge).
$endgroup$
add a comment |
$begingroup$
A simpler way would be to use a shielded cable (to shunt noise and ESD away), and then protect the microcontroller inputs with diodes to VCC and ground.
The resistance of the cable is most likely to be between 1 or 10 ohms (as long as the AWG is more than 30 gauge).
$endgroup$
A simpler way would be to use a shielded cable (to shunt noise and ESD away), and then protect the microcontroller inputs with diodes to VCC and ground.
The resistance of the cable is most likely to be between 1 or 10 ohms (as long as the AWG is more than 30 gauge).
edited 2 days ago
Peter Mortensen
1,60031422
1,60031422
answered Mar 29 at 19:11
laptop2dlaptop2d
27.1k123584
27.1k123584
add a comment |
add a comment |
$begingroup$
I would make a current loop. Simple, cheap and reliable. You can connect the transistor in a common collector configuration if you want a non-inverted output. The optocoupler LED must be rated for at least 20 mA.
$endgroup$
add a comment |
$begingroup$
I would make a current loop. Simple, cheap and reliable. You can connect the transistor in a common collector configuration if you want a non-inverted output. The optocoupler LED must be rated for at least 20 mA.
$endgroup$
add a comment |
$begingroup$
I would make a current loop. Simple, cheap and reliable. You can connect the transistor in a common collector configuration if you want a non-inverted output. The optocoupler LED must be rated for at least 20 mA.
$endgroup$
I would make a current loop. Simple, cheap and reliable. You can connect the transistor in a common collector configuration if you want a non-inverted output. The optocoupler LED must be rated for at least 20 mA.
edited yesterday
answered yesterday
ArchimedesArchimedes
30528
30528
add a comment |
add a comment |
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%2f429700%2finterfacing-a-button-to-a-microcontroller-and-pc-with-a-50-m-long-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