+ Post New Thread
Results 1 to 7 of 7
  1. #1
    Newbie level 3
    Points: 25, Level: 1

    Join Date
    Apr 2020
    Posts
    3
    Helped
    0 / 0
    Points
    25
    Level
    1

    ESD protection for Aruduino Input Pins.

    Dear all,
    I am designing an project for automobile application , In which I require to protect my circuit from all possible type of practical failure.

    For this project I have decided to build my own arduino board .

    I will be taking 4 field digital input into my board , Fields input voltage will be in 20-28VDC(For logic 1) and 0 for logic 0.

    To protect the circuit from high input voltage I have used optocoupler PC847 , and to protect the Inputs from ESD i have used TVS diode array SP0505BAJT. ( 5 diode array ,4+1 spare i have kept for future)

    As I am designing this type of circuit for the first time , I require your view whether the selected circuit is okay or not, The value of resistance that I have used is okay or not and the most important TVS diode that I have selected is okay or not .

    Kindly also provide if any additional type of protection will be needed for input

    •   AltAdvertisement

        
       

  2. #2
    Super Moderator
    Points: 83,926, Level: 70
    Achievements:
    7 years registered
    Awards:
    Most Frequent Poster 3rd Helpful Member

    Join Date
    Apr 2014
    Posts
    17,067
    Helped
    3857 / 3857
    Points
    83,926
    Level
    70

    Re: ESD protection for Aruduino Input Pins.

    Hi,

    First define the valid voltage levels: V_IH, and V_IL, not the arduino levels, but the 20/24V levels.
    And define the valid timings.
    Then the maximum erroneous signals. In volts, time, energy, or capacitance.
    If you don't know how, then read through ESD, EMI/EMC documents..
    Many members may say: "I don't know" ... but you can't design a circuit without electrical specifications.
    (There is a good chance that you design either the protection level too high, too low, or may have unwanted influence on the usual signals)

    BTW: This is not related to arduino, indeed you need the same for every 3.3V/5V digital system.
    ****

    An optocoupler connected both sides to the same potential is a waste of money.
    Optocouplers are for galvanic isolation .... which you don't use.

    Use: R, D and C only.

    But the part selection is only one part. Additionally you need a useful schematic ... and you need a suitable PCB layout.
    Without a suitable PCB layout ... all the parts may be useless.

    Klaus
    Please don´t contact me via PM, because there is no time to respond to them. No friend requests. Thank you.



  3. #3
    Super Moderator
    Points: 85,289, Level: 71
    Achievements:
    7 years registered
    Awards:
    2nd Helpful Member
    betwixt's Avatar
    Join Date
    Jul 2009
    Location
    Aberdyfi, West Wales, UK
    Posts
    14,036
    Helped
    4671 / 4671
    Points
    85,289
    Level
    71

    Re: ESD protection for Aruduino Input Pins.

    I agree with Klaus, especially over sharing a common ground and in an automobile application where there can be significant voltage drops between different 'ground' points in the vehicle.

    A better approach would be to rely on the input impedance of the Arduino being quite high and use a combination of series resistor then two small signal (BAT85 etc.) diodes between Arduino ground and Arduino supply. Restraining the input to the Arduino voltage range should protect it regardless of outside voltages.

    You might see another problem, you assume logic low voltage will be 0V but in reality the drops around an automotive wiring might result in it being somewhat higher and possibly misinterpreted as a logic high. If that is the case, use the resistor and two diode approach I mentioned but also add a resistor across the input to ground, it can be quite a large value, 10K or more, then add a Zener diode to drop some of the incoming voltage. For example if you drop the incoming voltage by say 10V, you buy yourself 10V of logic low margin but still have at least 10 overhead for a logic high.

    Brian.
    PLEASE - no friends requests or private emails, I simply don't have time to reply to them all.
    It's better to share your questions and answers on Edaboard so we can all benefit from each others experiences.



  4. #4
    Newbie level 3
    Points: 25, Level: 1

    Join Date
    Apr 2020
    Posts
    3
    Helped
    0 / 0
    Points
    25
    Level
    1

    Re: ESD protection for Aruduino Input Pins.

    klausST

    Input is coming through electromechanical relay when the relay is open I am taking that as 0 V(Logic 0) condition , and when the Relay is close I am taking it as logic 1 condition.

    Definitely to solve the problem of floating pin I will be making arduino pin pull up high.

    As mentioned above the input is coming through electromechanical relay hence the input won't be high frequency input , actually it would be like hardly once in a minute.

    PCB layout I have already done many time in the past , and also did the PCB layout for this project and I thing I won't be facing any problem in it.

    Regarding Optocoupler , can you kinldy elaborate furhter on R D C circuit.



  5. #5
    Super Moderator
    Points: 83,926, Level: 70
    Achievements:
    7 years registered
    Awards:
    Most Frequent Poster 3rd Helpful Member

    Join Date
    Apr 2014
    Posts
    17,067
    Helped
    3857 / 3857
    Points
    83,926
    Level
    70

    Re: ESD protection for Aruduino Input Pins.

    Hi,

    sadly you missed to give values. Values with units we can calculate with.

    Input is coming through electromechanical relay when the relay is open I am taking that as 0 V(Logic 0) condition , and when the Relay is close I am taking it as logic 1 condition.
    Definitely to solve the problem of floating pin I will be making arduino pin pull up high.
    Makes no sense for me. -->schow your schematic.

    As mentioned above the input is coming through electromechanical relay hence the input won't be high frequency input , actually it would be like hardly once in a minute.
    No timing information .. besides the "once a minute". This makes it hard to help.
    Without values I can only give answers without values, too:
    * You need to suppress unwanted frequencies to a uncritical low level, while you need to pass your wanted signal with your desried timing to a valid high level.

    PCB layout I have already done many time in the past , and also did the PCB layout for this project and I thing I won't be facing any problem in it.
    Many users wrote the same.... I have to believe.... but good to see that you don´t need help with this.
    Many users before did not have enough experience with the very high frequency ESD / EMI / EMC signals. So even when they used suitable protection devices the protection was not given, resulting in unexpected resets and/or defective I/O pins.

    Regarding Optocoupler , can you kinldy elaborate furhter on R D C circuit.
    An optocoupler is an isolating device but you don´t use the isolation feature. An optocoupler is no protection device against ESD / EMC signals.

    R = resistor mainly for current limiting (depending on the expected overvoltage signal a useful range is from simple 0603 chip resistor up to high voltage high power resistor)
    D = Diode for voltage clamping (depending on the expected overvoltage signal a useful range is from smal signal diodes up to several kW transzorb)
    C = capacitor, mainly used as low pass filter (depending on the expected overvoltage signal a useful range may be from "no capacitor at all" up to several microfarads, voltage rating depends additionally on circuit)

    Klaus
    Please don´t contact me via PM, because there is no time to respond to them. No friend requests. Thank you.


    1 members found this post helpful.

  6. #6
    Newbie level 3
    Points: 25, Level: 1

    Join Date
    Apr 2020
    Posts
    3
    Helped
    0 / 0
    Points
    25
    Level
    1

    Re: ESD protection for Aruduino Input Pins.

    Click image for larger version. 

Name:	esd protection.PNG 
Views:	10 
Size:	64.7 KB 
ID:	158688

    Thanks Klaus for your detailed reply. Based on your and other forum member suggestion I have decided not to go for optocoupler.

    and decided two new schematic
    1) As suggested by you using RC filter + diode
    2) using npn transistor

    schematic for the same I have attached.

    please, kindly see and confirm which option is better for me. and is any further changes will be required on it.

    regarding the frequency , my signal is simple on off signal and is coming from 24V electromechanical relay. relay common is connected to battery +ve(24V dc) terminal through MCB, Fuse and other assembly. (this part is not in my scope) and whenever driver engages engine PTO(Power Take off point) and similar few other things I will be getting this signal. As those operation is not be happening with any fixed frequency I mentioned 1 time per minute . actual frequency will be way lower then that.



  7. #7
    Super Moderator
    Points: 83,926, Level: 70
    Achievements:
    7 years registered
    Awards:
    Most Frequent Poster 3rd Helpful Member

    Join Date
    Apr 2014
    Posts
    17,067
    Helped
    3857 / 3857
    Points
    83,926
    Level
    70

    Re: ESD protection for Aruduino Input Pins.

    Hi,

    Not that bad.
    I never used a BJT as protection device. But maybe it's base is stronger than an arduino's input.
    But it's specification usually is not sufficient as ESD protection.

    A zener as protection for a microcontroller input may work ... or may not work.
    A 5.1V zener may start becoming conductive way before you want it, but on the other hand with an ESD pulse the voltage may be too high. But worst of all: it is an absolute voltage limit, but the microcontroller has a relative voltage limit. This means in ideal case it limits the voltage to 5.1V...but the microcontroller darasheet nay say "VCC +0.3V". So what if VCC is 3.3V .... or what is when the microcontroller is switched OFF at all?
    --> VCC = 0V ... the microcontroller limit thus is 0.3V ... but the zener passes 5.1V...
    --> no protection...
    I vote for a ready to buy ESD protection diode. Dual diode.

    But you still don't understand. ESD is high voltage (with unknown polarity).
    Now you give informations for a resistor with just "10k" for example. This by far not sufficient.
    A 10k 0603 SMD simply can't widthstand kilovolts...0414 THM will do..

    You still don't understand that's not possible to give good advice without values.
    It's the designer's job to decide the conditions.
    Like timing. It's of no use to tell that a relay switches once a minute.
    You have to decide what delay time is allowed from relay switching to stable arduino input.
    Or do you say 30 seconds of delay is OK? 30 second surely is sufficient for the arduino to catch every switch cycle...
    But if you say 30 seconds delay is not OK, then .... you know what you have to do....

    You are free to "try and hope" ... but I assume I can't help this way.

    Klaus
    Please don´t contact me via PM, because there is no time to respond to them. No friend requests. Thank you.



--[[ ]]--