Forum: Mikrocontroller und Digitale Elektronik ESD Schutz für RESET Pin der ATmega?


von AVRli (Gast)


Lesenswert?

Hallo,

ich möchte das Reset PIN richtig beschalten.
Dazu habe ich die APP Note von ATMEL gelesen.

"If not using High Voltage Programming it is recommended to add an ESD 
protecting diode from RESET to Vcc, since this is not internally 
provided due to High Voltage Programming. Alternatively, or in addition, 
a zener diode can be used to limit the RESET voltage relative to GND. 
The zener diode is highly recommended in noisy environments. The 
components should be located physically close to the RESET pin of the 
AVR."

Was zu machen ist, habe ich ja nun verstanden aber welche Dioden ich da 
verwenden kann weiß ich nicht. Das ist mein altes Problem, wie wählt und 
findet man die richtigen Bauteile?

Eine Zenerdiode 5,1 ist mir mittlerweile bekannt, was ist eine ESD 
Diode? Was für Werte sollte die haben?

Schöne Grüße AVRli...

von Winfried M. (win)


Lesenswert?

Da kannst du eine Wald-und-Wiesen-Diode verwenden, die dann als 
ESD-Schutzdiode fungiert. Also z.B. eine 1N4148.

Bei AVR aber nur selten wirklicht nötig.

von Bernd (Gast)


Lesenswert?

Oder nach dem Programmieren dauerhaft niederohmig mit VCC verbinden.

von Clemens L. (c_l)


Lesenswert?

AVRli schrieb:
> Eine Zenerdiode 5,1 ist mir mittlerweile bekannt, was ist eine ESD
> Diode?

Im Prinzip auch eine Zener-Diode, aber so konstruiert, dass sie nicht 
notwendigerweise eine genaue Spannung hat, sondern die ESD-Ladung 
möglichst schnell ableitet.

> Was für Werte sollte die haben?

Bei welcher Spannung sie noch sperren soll, weißt du selber. Wieviel 
Leistung sie vertragen muss, hängt davon ab, was für ESD-Störungen du 
erwartest. Beim Reset-Pin ist die parasitäre Kapazität egal. Der 
Leckstrom sollte nicht so groß sein, dass der AVR eine geschlossene 
Verbindung sieht.

Winfried M. schrieb:
> Da kannst du eine Wald-und-Wiesen-Diode verwenden, die dann als
> ESD-Schutzdiode fungiert. Also z.B. eine 1N4148.

Eine normale Diode von GND zum Signal schützt nur gegen negative 
ESD-Spannungen. Zum Ableiten einer positiven ESD-Spannung braucht man 
noch eine zweite Diode vom Signal zu VCC, oder eine Zener/ESD-Diode.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Clemens L. (c_l)

>> Da kannst du eine Wald-und-Wiesen-Diode verwenden, die dann als
>> ESD-Schutzdiode fungiert. Also z.B. eine 1N4148.

>Eine normale Diode von GND zum Signal schützt nur gegen negative
>ESD-Spannungen.

Die ist im AVR schon drin.

> Zum Ableiten einer positiven ESD-Spannung braucht man
>noch eine zweite Diode vom Signal zu VCC, oder eine Zener/ESD-Diode.

Diese muss extern ergänzt werden, wenn man denn überängstlich ist. In 
Normalfall braucht man die nicht, denn am Reset hängt meist sowieso ein 
100nF Kondensator dran. Der schluckt viel ESD-Ladung.

von AVRli (Gast)


Lesenswert?

Danke für Eure Antworten!
Ja ich bin überängstlich weil sich mein Flash verändert oder löscht. Ich 
habe im ATmega eine Routine die mir über den Programmmemory eine CRC16 
rechnet. Das geht auch 1000x gut, nur eben Vorgestern hatte ich wieder 
das Problem das irgendwas an meinem Flash rumschreibt. :-(

Ich vermute das ich hier mit dem RESET Pin im High Voltage Mode lande 
und dann jedes H/L mir Stück für Stück den Flash zerhackt.

Gut also noch eine ESD Diode nach VCC und dann würde ich ja sehen ob das 
rennt.

Ist die "BAT 42WS" dafür geeignet?

Ich danke euch!
Gruß AVRli...

von Winfried M. (win)


Lesenswert?

Die Bat42 kannst du nehmen. Genauso eine 1N4148.

von Wolfgang (Gast)


Lesenswert?

Winfried M. schrieb:
> Bei AVR aber nur selten wirklicht nötig.

Wie bringst du deine Aussage mit der im Datenblatt in Einklang?

Die Aussage: "Bei mir gibt es keine ESD-Gefahr" lasse ich jetzt mal 
nicht gelten ;-)

AVRli schrieb:
> "... it is recommended to add an ESD protecting diode from RESET to Vcc,
> since this is not internally provided due to High Voltage Programming.

von Sascha W. (sascha-w)


Lesenswert?

AVRli schrieb:
> Danke für Eure Antworten!
> Ja ich bin überängstlich weil sich mein Flash verändert oder löscht. Ich
> habe im ATmega eine Routine die mir über den Programmmemory eine CRC16
> rechnet. Das geht auch 1000x gut, nur eben Vorgestern hatte ich wieder
> das Problem das irgendwas an meinem Flash rumschreibt. :-(
>
> Ich vermute das ich hier mit dem RESET Pin im High Voltage Mode lande
> und dann jedes H/L mir Stück für Stück den Flash zerhackt.
Auch im HV-Programming Mode schreibt man nicht einfach so im Flash rum! 
Da gibts genauso entsprechende Kommandos und das die zufällig von außen 
reinkommen ist nahezu unmöglich. Aber wenn du meinst es liegt daran dann 
verbinde doch einfach Reset direkt mit Vcc nachdem du den μC 
programmiert hast.

Sascha

von Winfried M. (win)


Lesenswert?

Wolfgang schrieb:
> Wie bringst du deine Aussage mit der im Datenblatt in Einklang?

Gib mir mal den Link und die Seite deines Datenblattes, worauf du dich 
beziehst. Dann schau ich mal.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Winfried M. schrieb:
> Gib mir mal den Link und die Seite deines Datenblattes, worauf du dich
> beziehst. Dann schau ich mal.

Das es keine ESD-Schutzdiode geben kann, die vom Reset-Pin nach VCC 
ableitet, ist klar und ergibt sich auch indirekt aus den Maximum Ratings 
(bspw. ATmega328, Absolute Maximum Ratings
"Voltage on RESET with respect to Ground -0.5V to +13.0V")

Das Zitat stammt aus der Application Note AVR042: AVR Hardware Design 
Considerations auf S.6 (Absatz vor Fig.3.1)
http://www.atmel.com/Images/Atmel-2521-AVR-Hardware-Design-Considerations_ApplicationNote_AVR042.pdf

von Winfried M. (win)


Lesenswert?

Wolfgang schrieb:
> Das es keine ESD-Schutzdiode geben kann, die vom Reset-Pin nach VCC
> ableitet, ist klar

Verstehe nicht, wie du das meinst. Eine Diode kann doch mit Kathode zu 
VCC Spannungen über VCC + UF (0,6V) ableiten.

Was die Beschaltung des Reset-Pins angeht, kommt es auf einige Details 
an. Wenn du am Reset nur eine ganz kurze Leitung zum externen Pullup 
hast und keine extremen Störer auf deiner Platine, dürfte schon das 
reichen. Die Schaltung selber sollte ja in einem Gehäuse sein, dass 
hinreichend vor Immissionen schützt. Es gibt dann nichts, was überhaupt 
ausreichend auf den Pin einwirken kann, damit es gefährlich wird.

Hast du hingegen ein 30cm Kabel am Reset-Pin, was sich alles Mögliche 
von der Umgebung einfangen kann, wäre man mit einem Kondensator direkt 
am Reset-Pin sicher gut beraten. Wenn du aber einen Kondensator dort 
hast, gibt es keine Möglichkeit mehr, durch Einstrahlungen einen Reset 
auszulösen.

Führst du einen Reset an Steckkontakte raus, wo direkt elektrostatische 
Einflüsse wirksam werden können, könnte eine zusätzliche Schutzdiode 
Sinn machen.

Die Application Note sehe ich eher als Möglichkeiten, was man maximal 
tun kann. Und nicht als Standard-Empfehlung.

Ein Thema gibts dann auch noch: Wenn du die Spannung abschaltest, muss 
sich der Kondensator am Resetpin entladen. Dafür kann so eine Diode auch 
hilfreich sein.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Winfried M. schrieb:
> Wolfgang schrieb:
>> Das es keine ESD-Schutzdiode geben kann, die vom Reset-Pin nach VCC
>> ableitet, ist klar
>
> Verstehe nicht, wie du das meinst. Eine Diode kann doch mit Kathode zu
> VCC Spannungen über VCC + UF (0,6V) ableiten.

Die ganze Diskussion dreht sich um den Reset-Pin, an den bei 
HV-Programmierung schon mal eine Spannung von 12V angelegt wird. Da hat 
es eine Diode schwer, wenn die mit der Kathode an VCC (=5V) hängt.

von batman (Gast)


Lesenswert?

Nichtsdestotrotz trotzdem empfiehlt das Datenblatt den Einsatz einer 
ebensolchen Diode in der Schaltung.


AVRli schrieb:
> Ja ich bin überängstlich weil sich mein Flash verändert oder löscht. Ich
> habe im ATmega eine Routine die mir über den Programmmemory eine CRC16
> rechnet. Das geht auch 1000x gut, nur eben Vorgestern hatte ich wieder
> das Problem das irgendwas an meinem Flash rumschreibt. :-(

Welche Bits haben sich geändert?

von Rudolph R. (rudolph)


Lesenswert?

Wolfgang schrieb:
>> Verstehe nicht, wie du das meinst. Eine Diode kann doch mit Kathode zu
>> VCC Spannungen über VCC + UF (0,6V) ableiten.

Die wird noch viel früher leitfähig, UF ist vom Strom abhängig.

> Die ganze Diskussion dreht sich um den Reset-Pin, an den bei
> HV-Programmierung schon mal eine Spannung von 12V angelegt wird. Da hat
> es eine Diode schwer, wenn die mit der Kathode an VCC (=5V) hängt.

Und wer macht HV-Programmierung und gar in der Schaltung?
Ich habe das in >10 Jahren AVR noch nie benötigt.
Aber selbst wenn, die Diode kann man für so einen Notfall auch auslöten.

Ich stelle mich mit dem Reset-Pin aber auch generell nicht so an, bei 
kleinen Controllern die nur ISP haben packe ich da bestenfalls einen 10k 
Pullup mit dran, sonst nichts. Bei Controllern mit JTAG verwende ich 
zwar ebenfalls einen 10k Pullup Widerstand, Reset führe ich aber nicht 
auf den JTAG Stecker.
Und der Pullup ist im wesentlichen auch noch überflüssig, weil 
30k...200k bereits eingebaut sind.

Viel wichtiger ist doch, dass man sich der Gefahr durch ESD bewusst ist 
und noch mal vorsichtiger ist wenn man an internen Schnittstellen 
rumfingert die normalerweise gar keinen zusätzlichen Schutz haben.
Die ISP oder JTAG Pins bekommt man vielleicht ein klein wenig 
schwieriger kaputt, die sterben aber auch wenn man mit Gummistiefeln 
über den Teppich rutscht und dann da anfässt.
Schlechte Kombination aus Stoff-Bezug und Klamotten -> >20kV beim 
Aufstehen

Ach ja, BOD habe ich auch immer an.

Edit: ich habe mir im Datenblatt vom ATMega16M1 gerade mal angesehen, 
was "HV-Programmierung" überhaupt bedeuten würde.
Das wird "Parallel Programming" genannt und benötigt dermassen viele 
Pins das ich das ganz sicher niemals in der Schaltung probieren werden.

Edit2: in den Datenblättern findet sich übrigens kaum was dazu, 
interessanter ist da die Application-Note AVR042.
Die in Figure 3.1 dargestellte "Recommended Reset Pin Connection" gilt 
wie man dem Text entnehmen kann nur für besonders verseuchte Umgebung 
und bei Verwendung des Reset-Pins für ein "External Reset" Signal.
Und die Werte sind natürlich keine allgemein gültigen: " The values of 
resistor R and capacitor C are typical values used for the RESET pin. 
For specific design requirements of an application, these values must be 
changed accordingly."

Auf der anderen Seite bekleckert sich Atmel nicht gerade mit Ruhm im 
Kapitel 6 vom AVR042, das Quarz-Layout zeigt mehr wie man es nicht 
machen sollte. In früheren Revisionen des Dokumentes war das noch 
deutlich besser.

: Bearbeitet durch User
von Winfried M. (win)


Lesenswert?

Wolfgang schrieb:
> Die ganze Diskussion dreht sich um den Reset-Pin, an den bei
> HV-Programmierung schon mal eine Spannung von 12V angelegt wird. Da hat
> es eine Diode schwer, wenn die mit der Kathode an VCC (=5V) hängt.

Ich dachte, die Diskussion dreht sich darum, wie man eine Schaltung im 
laufenden Betrieb gegen ESD schützt und ob man da eine Diode braucht.

Wie schon geschrieben wurde, auch ich hab noch nie HV-Programmierung 
genutzt, insofern klappt das dann auch mit der Diode.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.