Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Thread

I/O line protection

I/O line protection

2008-01-03 by Steven Hodge

My apologies ahead of time for the length of this post, but I realize it
would be hard to answer without adequately describing the operating
environment.

 

I'd like to get feedback on ideas I have to provide protection for I/O lines
for uC-based PCB's.  These will be scattered throughout a boat, so 12 V DC
(up to 14.6 V when the main "house" batteries are on charge) is the nominal
supply voltage -- call it VB -- for all boards.  There is lots of this
running around everywhere, not just to PCB's but to motors, pumps, diesel
engine, solenoid coils, radios, radar, instruments, stereo, computer, etc.
All grounds come back to a single common ground bus near the house battery
bank.

 

Protection concerns are (1) overvoltage on an I/O pin by accidentally
connecting it to VB, (2) the usual ESD, (3) protection of the uC and digital
stuff from RF-induced voltages from the radar and VHF & HF radios (and who
knows what else, eg, computer), and (4) protection in the opposite
direction, of the radar/radios from RF noise from digital switching.
Usually an inverter is also in use, to supply "household" 120 VAC from the
12 V house bank, so that probably adds to the noise.

 

All the uC-based boards will be linked with an RS485 bus, using shielded
CAT-5 Ethernet cable and LTC1480 transceivers at each end.  These
transceivers include ESD protection.

 

The uC will be an ATmega644P running at 3.0 - 3.3 V (still undecided) and
1.8432 MHz (for ideal RS485 and lower power consumption).  The power supply
will be an LP2951.  The Atmel App Note AVR042 gives a pretty good
description of how to protect the uC power pins, so I'm following the
recommendations there (although I did have to clarify the units in Fig 6-1
with Atmel tech support).  I'll also put the usual bypass capacitor at the
pins of all other IC's.  At this point, I don't have any questions about
power protection, and this post is just directed at I/O pins.

 

There is no high-frequency I/O requirement.  Almost all digital signals
change state once in a blue moon on uC time scales.  At most I might have
one at 50 Hz max, and 1 or 2 at a few Hz.  All analog signals are very
slowly varying, time scales of tens of seconds at the fastest.

 

PCB real-estate is a bit of an issue but not a serious one.  At any rate,
I'd like to start with what is functionally the best and only then adjust if
the result makes the boards unacceptably too big.

 

All I/O signal wires will be shielded, with the shield grounded only at one
end.

 

I always attempt to have input signals active-low, floating when not
asserted (and pulled high at the PCB end), but there are still many cases
where active-high is unavoidable.  Signal levels are either CMOS or VB level
in most cases.  There are a few at 5 V level. 

 

As much as possible I'll try to use a ground plane on the uC-based PCB's,
but probably not a power (Vcc) plane.

 

For digital input lines, I'm proposing:

 

(a) front end protection using a MAX681x for mechanical switch input (which
the majority of input signals are) or a Littelfuse SP72x for non-switch
inputs.  Both have ESD & overvoltage protection. The MAX681x has the
additional advantage of providing automatic high-to-low level shifting to
get VB-level signals down to CMOS levels, and thus, since the 50 ms time
delay of this IC is not an issue in most cases, I could just use it
everywhere except for those cases where it would be an issue (eg, the 50 Hz
signal).  The trade-off is that if I used the SP72x there would be a
significant number of situations where I would have to add a high-to-low
buffer/shifter IC.

 

(b) an additional RC low-pass filter between the above and the uC pin, where
the value of R is chosen so it also acts to limit the current into the uC
pin to its max of 40 mA.  C would then be selected so the -3dB breakpoint of
the filter is well above 50 Hz, say 1-2 KHz.  Values I've computed, for
CMOS-level voltages, are about 100 ohms for R and about 1 uF for C for such
a breakpoint.

 

For analog input lines, level-shifting cannot be done so I'd just use the
SP72x and RC filter.  The filter values would be adjusted to accommodate
their typically higher voltages (such as VB or 5 V).

 

When it comes to output lines, things are murkier in my brain.  For signal
and non-inductive load outputs, I'm thinking of using the same SP72x's, or
nothing at all.  Inductive loads will definitely require a flyback
suppression diode, but it's not clear to me if I should also add the SP72x,
or a DO-15 package TVS, to them as well.  I often also install a diode
across the actual load (ie, actual motor or solenoid coil terminals).

 

Any comments on any of the above will be very appreciated.   One specific
question I have is should I add anything else to the RS485 lines, beyond
what the LTC1480 transceivers provide?

 

Thanks, Steve

 

 

 

 



[Non-text portions of this message have been removed]

Re: [AVR-Chat] I/O line protection

2008-01-03 by James Wagner

On Jan 3, 2008, at 11:39 AM, Steven Hodge wrote:

> My apologies ahead of time for the length of this post, but I  
> realize it
> would be hard to answer without adequately describing the operating
> environment.
>
> I'd like to get feedback on ideas I have to provide protection for I/ 
> O lines
> for uC-based PCB's. These will be scattered throughout a boat, so 12  
> V DC
> (up to 14.6 V when the main "house" batteries are on charge) is the  
> nominal
> supply voltage -- call it VB -- for all boards. There is lots of this
> running around everywhere, not just to PCB's but to motors, pumps,  
> diesel
> engine, solenoid coils, radios, radar, instruments, stereo,  
> computer, etc.
> All grounds come back to a single common ground bus near the house  
> battery
> bank.
>
> Protection concerns are (1) overvoltage on an I/O pin by accidentally
> connecting it to VB, (2) the usual ESD, (3) protection of the uC and  
> digital
> stuff from RF-induced voltages from the radar and VHF & HF radios  
> (and who
> knows what else, eg, computer), and (4) protection in the opposite
> direction, of the radar/radios from RF noise from digital switching.
> Usually an inverter is also in use, to supply "household" 120 VAC  
> from the
> 12 V house bank, so that probably adds to the noise.
>
> All the uC-based boards will be linked with an RS485 bus, using  
> shielded
> CAT-5 Ethernet cable and LTC1480 transceivers at each end. These
> transceivers include ESD protection.
>
> The uC will be an ATmega644P running at 3.0 - 3.3 V (still  
> undecided) and
> 1.8432 MHz (for ideal RS485 and lower power consumption). The power  
> supply
> will be an LP2951. The Atmel App Note AVR042 gives a pretty good
> description of how to protect the uC power pins, so I'm following the
> recommendations there (although I did have to clarify the units in  
> Fig 6-1
> with Atmel tech support). I'll also put the usual bypass capacitor  
> at the
> pins of all other IC's. At this point, I don't have any questions  
> about
> power protection, and this post is just directed at I/O pins.
>
> There is no high-frequency I/O requirement. Almost all digital signals
> change state once in a blue moon on uC time scales. At most I might  
> have
> one at 50 Hz max, and 1 or 2 at a few Hz. All analog signals are very
> slowly varying, time scales of tens of seconds at the fastest.
>
> PCB real-estate is a bit of an issue but not a serious one. At any  
> rate,
> I'd like to start with what is functionally the best and only then  
> adjust if
> the result makes the boards unacceptably too big.
>
> All I/O signal wires will be shielded, with the shield grounded only  
> at one
> end.
>
> I always attempt to have input signals active-low, floating when not
> asserted (and pulled high at the PCB end), but there are still many  
> cases
> where active-high is unavoidable. Signal levels are either CMOS or  
> VB level
> in most cases. There are a few at 5 V level.
>
> As much as possible I'll try to use a ground plane on the uC-based  
> PCB's,
> but probably not a power (Vcc) plane.
>
> For digital input lines, I'm proposing:
>
> (a) front end protection using a MAX681x for mechanical switch input  
> (which
> the majority of input signals are) or a Littelfuse SP72x for non- 
> switch
> inputs. Both have ESD & overvoltage protection. The MAX681x has the
> additional advantage of providing automatic high-to-low level  
> shifting to
> get VB-level signals down to CMOS levels, and thus, since the 50 ms  
> time
> delay of this IC is not an issue in most cases, I could just use it
> everywhere except for those cases where it would be an issue (eg,  
> the 50 Hz
> signal). The trade-off is that if I used the SP72x there would be a
> significant number of situations where I would have to add a high-to- 
> low
> buffer/shifter IC.
>
> (b) an additional RC low-pass filter between the above and the uC  
> pin, where
> the value of R is chosen so it also acts to limit the current into  
> the uC
> pin to its max of 40 mA. C would then be selected so the -3dB  
> breakpoint of
> the filter is well above 50 Hz, say 1-2 KHz. Values I've computed, for
> CMOS-level voltages, are about 100 ohms for R and about 1 uF for C  
> for such
> a breakpoint.
>
> For analog input lines, level-shifting cannot be done so I'd just  
> use the
> SP72x and RC filter. The filter values would be adjusted to  
> accommodate
> their typically higher voltages (such as VB or 5 V).
>
> When it comes to output lines, things are murkier in my brain. For  
> signal
> and non-inductive load outputs, I'm thinking of using the same  
> SP72x's, or
> nothing at all. Inductive loads will definitely require a flyback
> suppression diode, but it's not clear to me if I should also add the  
> SP72x,
> or a DO-15 package TVS, to them as well. I often also install a diode
> across the actual load (ie, actual motor or solenoid coil terminals).
>
> Any comments on any of the above will be very appreciated. One  
> specific
> question I have is should I add anything else to the RS485 lines,  
> beyond
> what the LTC1480 transceivers provide?
>
> Thanks, Steve
> ----------------------------------------------------------
> Steve -
>

> What you do depends on the "mission-critical" nature of the  
> application. If this  is what it seems, then too much might not be  
> too much. Generally, the ESD-protected RS485 transceivers are pretty  
> good. I've put those through rigorous transient tests needed for  
> European CE compliance, and they are fine.  Depending on what your  
> outputs do and what they might be exposed to, opto-couplers might be  
> in order. But, those only break ground loops and provide isolation,  
> they don't provide any over-voltage protection. I am a fan of diodes  
> and self-resetting fuses for low speed applications. Raychem and  
> others make the fuses; look at DiodesInc for the diodes. In that  
> kind of app with good series self-reset fuses, 600W diodes (sma  
> series, for example)  should be good and they don't cost an arm and  
> a leg.  For what its worth,
>
>

> Jim Wagner
>

> Oregon Research Electronics
>
>

>
>

> Tangent, OR, USA
>
>


[Non-text portions of this message have been removed]

Re: I/O line protection

2008-01-04 by Bruno

Hi Steven.

About the I/O lines, i've never heard about the littlefuse. Didn't 
you think to use optocouplers? Like the TIL111.

About the RS-485, you could put some passives components plus the 
LTC1480 transceivers. On the magazine, Circuit Cellar, the october 
issue an article cames talking about the subject of protection RS-
485. If you want i could provide more information for you.

Bruno

--- In AVR-Chat@yahoogroups.com, "Steven Hodge" <stevehodge@...> 
wrote:
>
> My apologies ahead of time for the length of this post, but I 
realize it
> would be hard to answer without adequately describing the operating
> environment.
> 
>  
> 
> I'd like to get feedback on ideas I have to provide protection for 
I/O lines
> for uC-based PCB's.  These will be scattered throughout a boat, so 
12 V DC
> (up to 14.6 V when the main "house" batteries are on charge) is 
the nominal
> supply voltage -- call it VB -- for all boards.  There is lots of 
this
> running around everywhere, not just to PCB's but to motors, pumps, 
diesel
> engine, solenoid coils, radios, radar, instruments, stereo, 
computer, etc.
> All grounds come back to a single common ground bus near the house 
battery
> bank.
> 
>  
> 
> Protection concerns are (1) overvoltage on an I/O pin by 
accidentally
> connecting it to VB, (2) the usual ESD, (3) protection of the uC 
and digital
> stuff from RF-induced voltages from the radar and VHF & HF radios 
(and who
> knows what else, eg, computer), and (4) protection in the opposite
> direction, of the radar/radios from RF noise from digital 
switching.
> Usually an inverter is also in use, to supply "household" 120 VAC 
from the
> 12 V house bank, so that probably adds to the noise.
> 
>  
> 
> All the uC-based boards will be linked with an RS485 bus, using 
shielded
> CAT-5 Ethernet cable and LTC1480 transceivers at each end.  These
> transceivers include ESD protection.
> 
>  
> 
> The uC will be an ATmega644P running at 3.0 - 3.3 V (still 
undecided) and
> 1.8432 MHz (for ideal RS485 and lower power consumption).  The 
power supply
> will be an LP2951.  The Atmel App Note AVR042 gives a pretty good
> description of how to protect the uC power pins, so I'm following 
the
> recommendations there (although I did have to clarify the units in 
Fig 6-1
> with Atmel tech support).  I'll also put the usual bypass 
capacitor at the
> pins of all other IC's.  At this point, I don't have any questions 
about
> power protection, and this post is just directed at I/O pins.
> 
>  
> 
> There is no high-frequency I/O requirement.  Almost all digital 
signals
> change state once in a blue moon on uC time scales.  At most I 
might have
> one at 50 Hz max, and 1 or 2 at a few Hz.  All analog signals are 
very
> slowly varying, time scales of tens of seconds at the fastest.
> 
>  
> 
> PCB real-estate is a bit of an issue but not a serious one.  At 
any rate,
> I'd like to start with what is functionally the best and only then 
adjust if
> the result makes the boards unacceptably too big.
> 
>  
> 
> All I/O signal wires will be shielded, with the shield grounded 
only at one
> end.
> 
>  
> 
> I always attempt to have input signals active-low, floating when 
not
> asserted (and pulled high at the PCB end), but there are still 
many cases
> where active-high is unavoidable.  Signal levels are either CMOS 
or VB level
> in most cases.  There are a few at 5 V level. 
> 
>  
> 
> As much as possible I'll try to use a ground plane on the uC-based 
PCB's,
> but probably not a power (Vcc) plane.
> 
>  
> 
> For digital input lines, I'm proposing:
> 
>  
> 
> (a) front end protection using a MAX681x for mechanical switch 
input (which
> the majority of input signals are) or a Littelfuse SP72x for non-
switch
> inputs.  Both have ESD & overvoltage protection. The MAX681x has 
the
> additional advantage of providing automatic high-to-low level 
shifting to
> get VB-level signals down to CMOS levels, and thus, since the 50 
ms time
> delay of this IC is not an issue in most cases, I could just use it
> everywhere except for those cases where it would be an issue (eg, 
the 50 Hz
> signal).  The trade-off is that if I used the SP72x there would be 
a
> significant number of situations where I would have to add a high-
to-low
> buffer/shifter IC.
> 
>  
> 
> (b) an additional RC low-pass filter between the above and the uC 
pin, where
> the value of R is chosen so it also acts to limit the current into 
the uC
> pin to its max of 40 mA.  C would then be selected so the -3dB 
breakpoint of
> the filter is well above 50 Hz, say 1-2 KHz.  Values I've 
computed, for
> CMOS-level voltages, are about 100 ohms for R and about 1 uF for C 
for such
> a breakpoint.
> 
>  
> 
> For analog input lines, level-shifting cannot be done so I'd just 
use the
> SP72x and RC filter.  The filter values would be adjusted to 
accommodate
> their typically higher voltages (such as VB or 5 V).
> 
>  
> 
> When it comes to output lines, things are murkier in my brain.  
For signal
> and non-inductive load outputs, I'm thinking of using the same 
SP72x's, or
> nothing at all.  Inductive loads will definitely require a flyback
> suppression diode, but it's not clear to me if I should also add 
the SP72x,
> or a DO-15 package TVS, to them as well.  I often also install a 
diode
> across the actual load (ie, actual motor or solenoid coil 
terminals).
> 
>  
> 
> Any comments on any of the above will be very appreciated.   One 
specific
> question I have is should I add anything else to the RS485 lines, 
beyond
Show quoted textHide quoted text
> what the LTC1480 transceivers provide?
> 
>  
> 
> Thanks, Steve
> 
>  
> 
>  
> 
>  
> 
>  
> 
> 
> 
> [Non-text portions of this message have been removed]
>

Re: [AVR-Chat] Re: I/O line protection

2008-01-04 by Philippe Habib

You want to think in layers of protection.  Diodes or surge  
protectors, then gas discharge tubes for the really big zaps.  One  
issue I've run into is that as the isolation provided by optocouplers  
increases, they get way slower.  I've had to bit bang some SPI  
interfaces down at the kilohertz because the optocouplers were so slow.

Do you have standard that you have to meet in terms of voltage and  
duration?  That makes it a lot easier to figure out just how much you  
need to do.
Show quoted textHide quoted text
On Jan 4, 2008, at 2:41 AM, Bruno wrote:

> Hi Steven.
>
> About the I/O lines, i've never heard about the littlefuse. Didn't
> you think to use optocouplers? Like the TIL111.
>
> About the RS-485, you could put some passives components plus the
> LTC1480 transceivers. On the magazine, Circuit Cellar, the october
> issue an article cames talking about the subject of protection RS-
> 485. If you want i could provide more information for you.
>
> Bruno
>
> --- In AVR-Chat@yahoogroups.com, "Steven Hodge" <stevehodge@...>
> wrote:
>>
>> My apologies ahead of time for the length of this post, but I
> realize it
>> would be hard to answer without adequately describing the operating
>> environment.
>>
>>
>>
>> I'd like to get feedback on ideas I have to provide protection for
> I/O lines
>> for uC-based PCB's.  These will be scattered throughout a boat, so
> 12 V DC
>> (up to 14.6 V when the main "house" batteries are on charge) is
> the nominal
>> supply voltage -- call it VB -- for all boards.  There is lots of
> this
>> running around everywhere, not just to PCB's but to motors, pumps,
> diesel
>> engine, solenoid coils, radios, radar, instruments, stereo,
> computer, etc.
>> All grounds come back to a single common ground bus near the house
> battery
>> bank.
>>
>>
>>
>> Protection concerns are (1) overvoltage on an I/O pin by
> accidentally
>> connecting it to VB, (2) the usual ESD, (3) protection of the uC
> and digital
>> stuff from RF-induced voltages from the radar and VHF & HF radios
> (and who
>> knows what else, eg, computer), and (4) protection in the opposite
>> direction, of the radar/radios from RF noise from digital
> switching.
>> Usually an inverter is also in use, to supply "household" 120 VAC
> from the
>> 12 V house bank, so that probably adds to the noise.
>>
>>
>>
>> All the uC-based boards will be linked with an RS485 bus, using
> shielded
>> CAT-5 Ethernet cable and LTC1480 transceivers at each end.  These
>> transceivers include ESD protection.
>>
>>
>>
>> The uC will be an ATmega644P running at 3.0 - 3.3 V (still
> undecided) and
>> 1.8432 MHz (for ideal RS485 and lower power consumption).  The
> power supply
>> will be an LP2951.  The Atmel App Note AVR042 gives a pretty good
>> description of how to protect the uC power pins, so I'm following
> the
>> recommendations there (although I did have to clarify the units in
> Fig 6-1
>> with Atmel tech support).  I'll also put the usual bypass
> capacitor at the
>> pins of all other IC's.  At this point, I don't have any questions
> about
>> power protection, and this post is just directed at I/O pins.
>>
>>
>>
>> There is no high-frequency I/O requirement.  Almost all digital
> signals
>> change state once in a blue moon on uC time scales.  At most I
> might have
>> one at 50 Hz max, and 1 or 2 at a few Hz.  All analog signals are
> very
>> slowly varying, time scales of tens of seconds at the fastest.
>>
>>
>>
>> PCB real-estate is a bit of an issue but not a serious one.  At
> any rate,
>> I'd like to start with what is functionally the best and only then
> adjust if
>> the result makes the boards unacceptably too big.
>>
>>
>>
>> All I/O signal wires will be shielded, with the shield grounded
> only at one
>> end.
>>
>>
>>
>> I always attempt to have input signals active-low, floating when
> not
>> asserted (and pulled high at the PCB end), but there are still
> many cases
>> where active-high is unavoidable.  Signal levels are either CMOS
> or VB level
>> in most cases.  There are a few at 5 V level.
>>
>>
>>
>> As much as possible I'll try to use a ground plane on the uC-based
> PCB's,
>> but probably not a power (Vcc) plane.
>>
>>
>>
>> For digital input lines, I'm proposing:
>>
>>
>>
>> (a) front end protection using a MAX681x for mechanical switch
> input (which
>> the majority of input signals are) or a Littelfuse SP72x for non-
> switch
>> inputs.  Both have ESD & overvoltage protection. The MAX681x has
> the
>> additional advantage of providing automatic high-to-low level
> shifting to
>> get VB-level signals down to CMOS levels, and thus, since the 50
> ms time
>> delay of this IC is not an issue in most cases, I could just use it
>> everywhere except for those cases where it would be an issue (eg,
> the 50 Hz
>> signal).  The trade-off is that if I used the SP72x there would be
> a
>> significant number of situations where I would have to add a high-
> to-low
>> buffer/shifter IC.
>>
>>
>>
>> (b) an additional RC low-pass filter between the above and the uC
> pin, where
>> the value of R is chosen so it also acts to limit the current into
> the uC
>> pin to its max of 40 mA.  C would then be selected so the -3dB
> breakpoint of
>> the filter is well above 50 Hz, say 1-2 KHz.  Values I've
> computed, for
>> CMOS-level voltages, are about 100 ohms for R and about 1 uF for C
> for such
>> a breakpoint.
>>
>>
>>
>> For analog input lines, level-shifting cannot be done so I'd just
> use the
>> SP72x and RC filter.  The filter values would be adjusted to
> accommodate
>> their typically higher voltages (such as VB or 5 V).
>>
>>
>>
>> When it comes to output lines, things are murkier in my brain.
> For signal
>> and non-inductive load outputs, I'm thinking of using the same
> SP72x's, or
>> nothing at all.  Inductive loads will definitely require a flyback
>> suppression diode, but it's not clear to me if I should also add
> the SP72x,
>> or a DO-15 package TVS, to them as well.  I often also install a
> diode
>> across the actual load (ie, actual motor or solenoid coil
> terminals).
>>
>>
>>
>> Any comments on any of the above will be very appreciated.   One
> specific
>> question I have is should I add anything else to the RS485 lines,
> beyond
>> what the LTC1480 transceivers provide?
>>
>>
>>
>> Thanks, Steve
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> [Non-text portions of this message have been removed]
>>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>

RE: [AVR-Chat] Re: I/O line protection

2008-01-06 by Steven Hodge

Thanks for the various thoughts.  I'm pursuing various leads people have
given me.  One lead I'm not pursuing, however, is optocouplers simply
because of the power needed to run them (one optocoupler can easily be the
same or more than the uC).    

 

I have the Circuit Cellar article on order (unfortunately I subscribed a
month too late to get it free).

 

I don't have any "standards" I'm trying to meet.  I just want things to work
as reliably as I can reasonably make them.

 

Steve
Show quoted textHide quoted text
From: AVR-Chat@yahoogroups.com [mailto:AVR-Chat@yahoogroups.com] On Behalf
Of Philippe Habib
Sent: Friday, January 04, 2008 9:24 AM
To: AVR-Chat@yahoogroups.com
Subject: Re: [AVR-Chat] Re: I/O line protection

 

You want to think in layers of protection. Diodes or surge 
protectors, then gas discharge tubes for the really big zaps. One 
issue I've run into is that as the isolation provided by optocouplers 
increases, they get way slower. I've had to bit bang some SPI 
interfaces down at the kilohertz because the optocouplers were so slow.

Do you have standard that you have to meet in terms of voltage and 
duration? That makes it a lot easier to figure out just how much you 
need to do.

On Jan 4, 2008, at 2:41 AM, Bruno wrote:

> Hi Steven.
>
> About the I/O lines, i've never heard about the littlefuse. Didn't
> you think to use optocouplers? Like the TIL111.
>
> About the RS-485, you could put some passives components plus the
> LTC1480 transceivers. On the magazine, Circuit Cellar, the october
> issue an article cames talking about the subject of protection RS-
> 485. If you want i could provide more information for you.
>
> Bruno
>
> --- In AVR-Chat@yahoogroups.com <mailto:AVR-Chat%40yahoogroups.com> ,
"Steven Hodge" <stevehodge@...>
> wrote:
>>
>> My apologies ahead of time for the length of this post, but I
> realize it
>> would be hard to answer without adequately describing the operating
>> environment.
>>
>>
>>
>> I'd like to get feedback on ideas I have to provide protection for
> I/O lines
>> for uC-based PCB's. These will be scattered throughout a boat, so
> 12 V DC
>> (up to 14.6 V when the main "house" batteries are on charge) is
> the nominal
>> supply voltage -- call it VB -- for all boards. There is lots of
> this
>> running around everywhere, not just to PCB's but to motors, pumps,
> diesel
>> engine, solenoid coils, radios, radar, instruments, stereo,
> computer, etc.
>> All grounds come back to a single common ground bus near the house
> battery
>> bank.
>>
>>
>>
>> Protection concerns are (1) overvoltage on an I/O pin by
> accidentally
>> connecting it to VB, (2) the usual ESD, (3) protection of the uC
> and digital
>> stuff from RF-induced voltages from the radar and VHF & HF radios
> (and who
>> knows what else, eg, computer), and (4) protection in the opposite
>> direction, of the radar/radios from RF noise from digital
> switching.
>> Usually an inverter is also in use, to supply "household" 120 VAC
> from the
>> 12 V house bank, so that probably adds to the noise.
>>
>>
>>
>> All the uC-based boards will be linked with an RS485 bus, using
> shielded
>> CAT-5 Ethernet cable and LTC1480 transceivers at each end. These
>> transceivers include ESD protection.
>>
>>
>>
>> The uC will be an ATmega644P running at 3.0 - 3.3 V (still
> undecided) and
>> 1.8432 MHz (for ideal RS485 and lower power consumption). The
> power supply
>> will be an LP2951. The Atmel App Note AVR042 gives a pretty good
>> description of how to protect the uC power pins, so I'm following
> the
>> recommendations there (although I did have to clarify the units in
> Fig 6-1
>> with Atmel tech support). I'll also put the usual bypass
> capacitor at the
>> pins of all other IC's. At this point, I don't have any questions
> about
>> power protection, and this post is just directed at I/O pins.
>>
>>
>>
>> There is no high-frequency I/O requirement. Almost all digital
> signals
>> change state once in a blue moon on uC time scales. At most I
> might have
>> one at 50 Hz max, and 1 or 2 at a few Hz. All analog signals are
> very
>> slowly varying, time scales of tens of seconds at the fastest.
>>
>>
>>
>> PCB real-estate is a bit of an issue but not a serious one. At
> any rate,
>> I'd like to start with what is functionally the best and only then
> adjust if
>> the result makes the boards unacceptably too big.
>>
>>
>>
>> All I/O signal wires will be shielded, with the shield grounded
> only at one
>> end.
>>
>>
>>
>> I always attempt to have input signals active-low, floating when
> not
>> asserted (and pulled high at the PCB end), but there are still
> many cases
>> where active-high is unavoidable. Signal levels are either CMOS
> or VB level
>> in most cases. There are a few at 5 V level.
>>
>>
>>
>> As much as possible I'll try to use a ground plane on the uC-based
> PCB's,
>> but probably not a power (Vcc) plane.
>>
>>
>>
>> For digital input lines, I'm proposing:
>>
>>
>>
>> (a) front end protection using a MAX681x for mechanical switch
> input (which
>> the majority of input signals are) or a Littelfuse SP72x for non-
> switch
>> inputs. Both have ESD & overvoltage protection. The MAX681x has
> the
>> additional advantage of providing automatic high-to-low level
> shifting to
>> get VB-level signals down to CMOS levels, and thus, since the 50
> ms time
>> delay of this IC is not an issue in most cases, I could just use it
>> everywhere except for those cases where it would be an issue (eg,
> the 50 Hz
>> signal). The trade-off is that if I used the SP72x there would be
> a
>> significant number of situations where I would have to add a high-
> to-low
>> buffer/shifter IC.
>>
>>
>>
>> (b) an additional RC low-pass filter between the above and the uC
> pin, where
>> the value of R is chosen so it also acts to limit the current into
> the uC
>> pin to its max of 40 mA. C would then be selected so the -3dB
> breakpoint of
>> the filter is well above 50 Hz, say 1-2 KHz. Values I've
> computed, for
>> CMOS-level voltages, are about 100 ohms for R and about 1 uF for C
> for such
>> a breakpoint.
>>
>>
>>
>> For analog input lines, level-shifting cannot be done so I'd just
> use the
>> SP72x and RC filter. The filter values would be adjusted to
> accommodate
>> their typically higher voltages (such as VB or 5 V).
>>
>>
>>
>> When it comes to output lines, things are murkier in my brain.
> For signal
>> and non-inductive load outputs, I'm thinking of using the same
> SP72x's, or
>> nothing at all. Inductive loads will definitely require a flyback
>> suppression diode, but it's not clear to me if I should also add
> the SP72x,
>> or a DO-15 package TVS, to them as well. I often also install a
> diode
>> across the actual load (ie, actual motor or solenoid coil
> terminals).
>>
>>
>>
>> Any comments on any of the above will be very appreciated. One
> specific
>> question I have is should I add anything else to the RS485 lines,
> beyond
>> what the LTC1480 transceivers provide?
>>
>>
>>
>> Thanks, Steve
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> [Non-text portions of this message have been removed]
>>
>
>
>
>
>
> Yahoo! Groups Links
>
>
>
>

 

__________ NOD32 2765 (20080104) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com



[Non-text portions of this message have been removed]

Re: I/O line protection

2008-01-07 by John

Are you referring to using the optos as input buffers or output
drivers?  Not all optos are created equally.

I use MCT9001 type optos - a simple diode input and an open collector
output.  The power consumption is a function of input and output
impedences, with the MCT9001 (or similar footprint devices) ranging in
transfer ration from 50% to 200%.  Thus, if I have a 100K input
resistor with a 12V input, I will consume 0.12 mA on the 12V side,
this will transfer over to (at least) 0.06 mA on the uC side. I can
use the uC input's pull-ups (around 100K,) thus on the uC side, the
opto uses 0.05 mA.

I don't consider this to be excessive current draw.

Unless you need high speed outputs, use a relay to isolate the output.
 Higher speed outputs can utilize the opto to drive an open collector
transistor/fet.  The opto part of the circuit in this instance will
still consume little current (enough to turn on the transistor/fet.)

John


--- In AVR-Chat@yahoogroups.com, "Steven Hodge" <stevehodge@...> wrote:
>
> Thanks for the various thoughts.  I'm pursuing various leads people have
> given me.  One lead I'm not pursuing, however, is optocouplers simply
> because of the power needed to run them (one optocoupler can easily
be the
> same or more than the uC).    
> 
>  
> 
> I have the Circuit Cellar article on order (unfortunately I subscribed a
> month too late to get it free).
> 
>  
> 
> I don't have any "standards" I'm trying to meet.  I just want things
to work
> as reliably as I can reasonably make them.
> 
>  
> 
> Steve
> 
>  
> 
> From: AVR-Chat@yahoogroups.com [mailto:AVR-Chat@yahoogroups.com] On
Behalf
Show quoted textHide quoted text
> Of Philippe Habib
> Sent: Friday, January 04, 2008 9:24 AM
> To: AVR-Chat@yahoogroups.com
> Subject: Re: [AVR-Chat] Re: I/O line protection
> 
>  
> 
> You want to think in layers of protection. Diodes or surge 
> protectors, then gas discharge tubes for the really big zaps. One 
> issue I've run into is that as the isolation provided by optocouplers 
> increases, they get way slower. I've had to bit bang some SPI 
> interfaces down at the kilohertz because the optocouplers were so slow.
> 
> Do you have standard that you have to meet in terms of voltage and 
> duration? That makes it a lot easier to figure out just how much you 
> need to do.
> 
> On Jan 4, 2008, at 2:41 AM, Bruno wrote:
> 
> > Hi Steven.
> >
> > About the I/O lines, i've never heard about the littlefuse. Didn't
> > you think to use optocouplers? Like the TIL111.
> >
> > About the RS-485, you could put some passives components plus the
> > LTC1480 transceivers. On the magazine, Circuit Cellar, the october
> > issue an article cames talking about the subject of protection RS-
> > 485. If you want i could provide more information for you.
> >
> > Bruno
> >
> > --- In AVR-Chat@yahoogroups.com <mailto:AVR-Chat%40yahoogroups.com> ,
> "Steven Hodge" <stevehodge@>
> > wrote:
> >>
> >> My apologies ahead of time for the length of this post, but I
> > realize it
> >> would be hard to answer without adequately describing the operating
> >> environment.
> >>
> >>
> >>
> >> I'd like to get feedback on ideas I have to provide protection for
> > I/O lines
> >> for uC-based PCB's. These will be scattered throughout a boat, so
> > 12 V DC
> >> (up to 14.6 V when the main "house" batteries are on charge) is
> > the nominal
> >> supply voltage -- call it VB -- for all boards. There is lots of
> > this
> >> running around everywhere, not just to PCB's but to motors, pumps,
> > diesel
> >> engine, solenoid coils, radios, radar, instruments, stereo,
> > computer, etc.
> >> All grounds come back to a single common ground bus near the house
> > battery
> >> bank.
> >>
> >>
> >>
> >> Protection concerns are (1) overvoltage on an I/O pin by
> > accidentally
> >> connecting it to VB, (2) the usual ESD, (3) protection of the uC
> > and digital
> >> stuff from RF-induced voltages from the radar and VHF & HF radios
> > (and who
> >> knows what else, eg, computer), and (4) protection in the opposite
> >> direction, of the radar/radios from RF noise from digital
> > switching.
> >> Usually an inverter is also in use, to supply "household" 120 VAC
> > from the
> >> 12 V house bank, so that probably adds to the noise.
> >>
> >>
> >>
> >> All the uC-based boards will be linked with an RS485 bus, using
> > shielded
> >> CAT-5 Ethernet cable and LTC1480 transceivers at each end. These
> >> transceivers include ESD protection.
> >>
> >>
> >>
> >> The uC will be an ATmega644P running at 3.0 - 3.3 V (still
> > undecided) and
> >> 1.8432 MHz (for ideal RS485 and lower power consumption). The
> > power supply
> >> will be an LP2951. The Atmel App Note AVR042 gives a pretty good
> >> description of how to protect the uC power pins, so I'm following
> > the
> >> recommendations there (although I did have to clarify the units in
> > Fig 6-1
> >> with Atmel tech support). I'll also put the usual bypass
> > capacitor at the
> >> pins of all other IC's. At this point, I don't have any questions
> > about
> >> power protection, and this post is just directed at I/O pins.
> >>
> >>
> >>
> >> There is no high-frequency I/O requirement. Almost all digital
> > signals
> >> change state once in a blue moon on uC time scales. At most I
> > might have
> >> one at 50 Hz max, and 1 or 2 at a few Hz. All analog signals are
> > very
> >> slowly varying, time scales of tens of seconds at the fastest.
> >>
> >>
> >>
> >> PCB real-estate is a bit of an issue but not a serious one. At
> > any rate,
> >> I'd like to start with what is functionally the best and only then
> > adjust if
> >> the result makes the boards unacceptably too big.
> >>
> >>
> >>
> >> All I/O signal wires will be shielded, with the shield grounded
> > only at one
> >> end.
> >>
> >>
> >>
> >> I always attempt to have input signals active-low, floating when
> > not
> >> asserted (and pulled high at the PCB end), but there are still
> > many cases
> >> where active-high is unavoidable. Signal levels are either CMOS
> > or VB level
> >> in most cases. There are a few at 5 V level.
> >>
> >>
> >>
> >> As much as possible I'll try to use a ground plane on the uC-based
> > PCB's,
> >> but probably not a power (Vcc) plane.
> >>
> >>
> >>
> >> For digital input lines, I'm proposing:
> >>
> >>
> >>
> >> (a) front end protection using a MAX681x for mechanical switch
> > input (which
> >> the majority of input signals are) or a Littelfuse SP72x for non-
> > switch
> >> inputs. Both have ESD & overvoltage protection. The MAX681x has
> > the
> >> additional advantage of providing automatic high-to-low level
> > shifting to
> >> get VB-level signals down to CMOS levels, and thus, since the 50
> > ms time
> >> delay of this IC is not an issue in most cases, I could just use it
> >> everywhere except for those cases where it would be an issue (eg,
> > the 50 Hz
> >> signal). The trade-off is that if I used the SP72x there would be
> > a
> >> significant number of situations where I would have to add a high-
> > to-low
> >> buffer/shifter IC.
> >>
> >>
> >>
> >> (b) an additional RC low-pass filter between the above and the uC
> > pin, where
> >> the value of R is chosen so it also acts to limit the current into
> > the uC
> >> pin to its max of 40 mA. C would then be selected so the -3dB
> > breakpoint of
> >> the filter is well above 50 Hz, say 1-2 KHz. Values I've
> > computed, for
> >> CMOS-level voltages, are about 100 ohms for R and about 1 uF for C
> > for such
> >> a breakpoint.
> >>
> >>
> >>
> >> For analog input lines, level-shifting cannot be done so I'd just
> > use the
> >> SP72x and RC filter. The filter values would be adjusted to
> > accommodate
> >> their typically higher voltages (such as VB or 5 V).
> >>
> >>
> >>
> >> When it comes to output lines, things are murkier in my brain.
> > For signal
> >> and non-inductive load outputs, I'm thinking of using the same
> > SP72x's, or
> >> nothing at all. Inductive loads will definitely require a flyback
> >> suppression diode, but it's not clear to me if I should also add
> > the SP72x,
> >> or a DO-15 package TVS, to them as well. I often also install a
> > diode
> >> across the actual load (ie, actual motor or solenoid coil
> > terminals).
> >>
> >>
> >>
> >> Any comments on any of the above will be very appreciated. One
> > specific
> >> question I have is should I add anything else to the RS485 lines,
> > beyond
> >> what the LTC1480 transceivers provide?
> >>
> >>
> >>
> >> Thanks, Steve
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> [Non-text portions of this message have been removed]
> >>
> >
> >
> >
> >
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> 
>  
> 
> __________ NOD32 2765 (20080104) Information __________
> 
> This message was checked by NOD32 antivirus system.
> http://www.eset.com
> 
> 
> 
> [Non-text portions of this message have been removed]
>

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.