Hur skyddar jag bäst microkontrollerns ingångar?
Hur skyddar jag bäst microkontrollerns ingångar?
Hej, jag skulle vilja ha lite tips på hur man bäst skyddar en microkontrollers ingångspinnar mot ESD. Jag använder mig av avr där hög nivå brukar motsvaras av ca 5V. Är det lämpligt att använda sig av en resistor i serie med ingången? Vilken storlek bör denna ha?
Jag testade nyligen detta och använde mig av 500 Ohm resistor för att begränsa strömmen till 10mA på ingången. Jag lyckades dock inte att få detta att fungera. Jag hade aktiverat AVR:ens pull-upp resistor och det var inte möjligt att dra linan låg till 0V med denna resistor. Vad gör jag fel? Har jag räknat helt galet?
Skyddar det något om man använder sig av en diod i serie med ingången? här får man välja en diod med väldigt lågt spänningsfall typ 0.3 V men detta kanske inte är att rekommendera?
Jag har försökt googla fram lite vettiga sidor som belyser detta ämne men jag har ännu inte hittat något. Tips uppskattas!
Tack
Jag testade nyligen detta och använde mig av 500 Ohm resistor för att begränsa strömmen till 10mA på ingången. Jag lyckades dock inte att få detta att fungera. Jag hade aktiverat AVR:ens pull-upp resistor och det var inte möjligt att dra linan låg till 0V med denna resistor. Vad gör jag fel? Har jag räknat helt galet?
Skyddar det något om man använder sig av en diod i serie med ingången? här får man välja en diod med väldigt lågt spänningsfall typ 0.3 V men detta kanske inte är att rekommendera?
Jag har försökt googla fram lite vettiga sidor som belyser detta ämne men jag har ännu inte hittat något. Tips uppskattas!
Tack
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Serieresistanser är inte det man brukar använda, för när det gäller ESD så är det höga spänningar och låga strömmar -> resistor verkningslös.
Titta på ESD-skyddsdioder och kondingar.
Titta på ESD-skyddsdioder och kondingar.
Re: Hur skyddar jag bäst microkontrollerns ingångar?
> Jag hade aktiverat AVR:ens pull-upp resistor och det var inte möjligt att dra linan låg till 0V med denna resistor [500 ohm].
Det ska inte vara något problem. De inbyggda pull-upperna brukar ligga på 20-40 kohm ungefär.
Säkert att du inte gör någon annan "tavla" ?
Du bör generellt skydda på ett sådant sätt att du aldrig får spänningar på
pinnarna som ligger utanför databladets specifikationer. Då räcker det inte
med enbart ett motstånd.
Ett vanligt sätt är att sätta någon annan buffert/krets före pinnen som
har inbyggt ESD skydd och som eventuellt är enklare att byta om det behövs.
Det ska inte vara något problem. De inbyggda pull-upperna brukar ligga på 20-40 kohm ungefär.
Säkert att du inte gör någon annan "tavla" ?
Du bör generellt skydda på ett sådant sätt att du aldrig får spänningar på
pinnarna som ligger utanför databladets specifikationer. Då räcker det inte
med enbart ett motstånd.
Ett vanligt sätt är att sätta någon annan buffert/krets före pinnen som
har inbyggt ESD skydd och som eventuellt är enklare att byta om det behövs.
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Att skydda elektronik är svårt!
Jag har som regel att ingen långa (200mm+) ledningar får gå in direkt till en µC!
Utgångar som kan utsättas för ESD för att de kopplas till av slutanvändare ska alltid ha ett drivsteg efter, är det i produktionen är det ju i ESD-säker zon.
Ingångar skyddar jag beroende på vad som kan kopplas men är det till externa ledningar har jag alltid en 5V zenerdiod samt en keramisk kondensator mellan pinnen och GND. Sedan sitter det ett motstånd på 10k i serie med pinnen innan det blir "ingång" och ska det pull-up/down till väljer jag alltid pull-up som placeras på "utsidan" av 10k motståndet.
Och orsaken till pull-up? Det är oftast brytare som sitter på "långa" ledningar (sensorer, ändstopp osv) och en del som inte har tänkt till drar ut VDD till dessa så att de ger '1' när brytarfunktionen sluts. Bra som sådan, har dock ingen speciell programmeringsanledning och samtidig ger det störningar direkt tillgång till spänningsmatningen!
Har man däremot brytaren mellan GND och ingången samt en pull-up på ingången varefter det går igenom 10k motståndet osv kommer VDD att vara skyddat ganska väl.
Detta sätt har fungerat kanonbra i industriellt miljö och komponentkostnaden är rimlig.
Jag har som regel att ingen långa (200mm+) ledningar får gå in direkt till en µC!
Utgångar som kan utsättas för ESD för att de kopplas till av slutanvändare ska alltid ha ett drivsteg efter, är det i produktionen är det ju i ESD-säker zon.
Ingångar skyddar jag beroende på vad som kan kopplas men är det till externa ledningar har jag alltid en 5V zenerdiod samt en keramisk kondensator mellan pinnen och GND. Sedan sitter det ett motstånd på 10k i serie med pinnen innan det blir "ingång" och ska det pull-up/down till väljer jag alltid pull-up som placeras på "utsidan" av 10k motståndet.
Och orsaken till pull-up? Det är oftast brytare som sitter på "långa" ledningar (sensorer, ändstopp osv) och en del som inte har tänkt till drar ut VDD till dessa så att de ger '1' när brytarfunktionen sluts. Bra som sådan, har dock ingen speciell programmeringsanledning och samtidig ger det störningar direkt tillgång till spänningsmatningen!
Har man däremot brytaren mellan GND och ingången samt en pull-up på ingången varefter det går igenom 10k motståndet osv kommer VDD att vara skyddat ganska väl.
Detta sätt har fungerat kanonbra i industriellt miljö och komponentkostnaden är rimlig.
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Tack för snabba svar. Här är en liten bild över hur jag har gjort i dagsläget.

pull up är aktiverat på ingången som sagt. när jag försöker dra signalen till 0V så fungerar det inte. Någon som har en idé om vad jag har gjort fel? Precis som sodjan sa så skall den interna pull-up resistorn vara i storleksordningen 50kOhm så detta borde väl funka? direkt jag plockar bort resistorn så funkar allt som det ska igen...

pull up är aktiverat på ingången som sagt. när jag försöker dra signalen till 0V så fungerar det inte. Någon som har en idé om vad jag har gjort fel? Precis som sodjan sa så skall den interna pull-up resistorn vara i storleksordningen 50kOhm så detta borde väl funka? direkt jag plockar bort resistorn så funkar allt som det ska igen...
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Antingen är ditt motstånd på 500 ohm större (500 ohm är ju f.ö. rätt ovanligt, 470 eller 630 är vanligare).
Eller så har du konfigurerat ingången fel, t.ex. konfigurerat den som utgång?
Eller så har du konfigurerat ingången fel, t.ex. konfigurerat den som utgång?
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Det är inte så att du har läst av motståndet från fel håll?
Grön, svart, brun = 500 ohm.
Brun, svart, grön = 1 megaohm.
Grön, svart, brun = 500 ohm.
Brun, svart, grön = 1 megaohm.
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Det låter VÄLDIGT troligt. Jag satt själv och funderade lite på vad man skulle kunna läst fel och få till 500 men tänkte aldrig på baklänges.
500 ohm finns ju som sagt var knappt, det ingår ju inte i nån av de vanliga standardserierna.
500 ohm finns ju som sagt var knappt, det ingår ju inte i nån av de vanliga standardserierna.
Re: Hur skyddar jag bäst microkontrollerns ingångar?
> (500 ohm är ju f.ö. rätt ovanligt, 470 eller 630 är vanligare).
470 eller *560*...
Nej, jag tror inte heller att det är 500 ohm...
470 eller *560*...

Nej, jag tror inte heller att det är 500 ohm...
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Hej Igen,
resistorn storlek är 500 Ohm hur otroligt det än låter
det är en ytmonterad komponent så det går att få tag på. Jag mätte precis upp den för att verifiera.
Avr-pinnen är konfigurerad som en ingång.
Blir inte klock på detta...
resistorn storlek är 500 Ohm hur otroligt det än låter

Avr-pinnen är konfigurerad som en ingång.
Blir inte klock på detta...
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Vilka spänningar får du på AVR:ns ingång när du ändrar styrsignalen?
Och exakt hur har du konfigurerat AVR:ns IO?
Och exakt hur har du konfigurerat AVR:ns IO?
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Det är enkelt igentligen...
500 ohm så som du har ritat (*vi* vet ju inte om det faktiskt är kopplat just
så eller om det faktiskt *är* 500 ohm) ska inte ha den effekt som du beskriver.
Hur ser spänningarna ut före resp efter 500 motståndet ?
Går den verkligen till 0V före motståndet (d.v.s mellan motståndet och 10 nF kondingen) ?
Sker det någon påverkan på AVR pinnen alls ?
Vilken ström genom 500 ohm motståndet får du med ledning av spänningsfallet ?
Fungerar det med pull-uppen avslagen ?
> Avr-pinnen är konfigurerad som en ingång.
Säger du ja, *vi* har ju igentligen inte en aning...
Det är mycket bättre att du visar (med kod) vad du gör än att försöka
med egna tolkningar av vad du *tror* att du gör. Det är mycket sannolikt
att du inte alls gör det du tror...
500 ohm så som du har ritat (*vi* vet ju inte om det faktiskt är kopplat just
så eller om det faktiskt *är* 500 ohm) ska inte ha den effekt som du beskriver.
Hur ser spänningarna ut före resp efter 500 motståndet ?
Går den verkligen till 0V före motståndet (d.v.s mellan motståndet och 10 nF kondingen) ?
Sker det någon påverkan på AVR pinnen alls ?
Vilken ström genom 500 ohm motståndet får du med ledning av spänningsfallet ?
Fungerar det med pull-uppen avslagen ?
> Avr-pinnen är konfigurerad som en ingång.
Säger du ja, *vi* har ju igentligen inte en aning...

Det är mycket bättre att du visar (med kod) vad du gör än att försöka
med egna tolkningar av vad du *tror* att du gör. Det är mycket sannolikt
att du inte alls gör det du tror...
Re: Hur skyddar jag bäst microkontrollerns ingångar?
jag har sett en annan lösning på ESD problematiken. På kretskortet har man där etsat ledningar ung som när du trycker fingrarna mot varandra (kugghjulseffekt) på ett område kanske 5x5mm mellan ingång och t.ex jord och väldigt litet mellanrum. Förklaringen jag fick var att ESD är oftast väldigt höga spänningar och då blir det lätt överslag. eftersom ledningarna går väldigt nära varandra så kommer det förhoppningsvis ske en urladdning just där. Oftast har en MCU skyddsdioder på ingångarna som gör att om man för en lite större ström så kommer strömmen gå genom skyddsdioden ner till jord vilket de oftast klarar. Men kopplar man 5v in på en 3.3V ingång är man direkt rökt ifall man inte har en resistor mellan.
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Gnistgap ja, http://www.airborn.com.au/method/sparkgap.html
Det skyddar såklart till viss del, men det är svårt att veta exakt hur bra då det finns många faktorer. Avstånd mellan kopparen, beläggningar såsom lack, oxid, smuts osv som gör att förutsättning för överslag ändras.
Det skyddar såklart till viss del, men det är svårt att veta exakt hur bra då det finns många faktorer. Avstånd mellan kopparen, beläggningar såsom lack, oxid, smuts osv som gör att förutsättning för överslag ändras.
Re: Hur skyddar jag bäst microkontrollerns ingångar?
Jag fattar inte alls det du beskriver.dangraf skrev:På kretskortet har man där etsat ledningar ung som när du trycker fingrarna mot varandra (kugghjulseffekt) på ett område kanske 5x5mm mellan ingång och t.ex jord och väldigt litet mellanrum.
URL?