Hallo Forum, ich habe hier keine klare Antwort zu folgender Frage gefunden. Wie sollten unbenutzte AVR-pins EMV-gerecht beschaltet werden? Als Eingang auf GND oder Vcc ziehen ist für den AVR gefährlich, falls man bei der Programmierung ein Fehler macht und aus Versehen die Pins als Ausgang schaltet. Erst recht in der Entwicklung. Ich DENKE die unbenutzen Pins "in der Luft" stehen lassen und als Ausgang schalten und Pin mit cbi auf low setzen, ist die Antwort. Gefühlsmäßig würde ich sagen, das sbi keinen EMV-Vorteil gegen cbi bringt. Aber denken ist nicht wissen, was meint ihr? FR
Wir (also ich) meinen: oft genug diskutiert worden. Pins in der Luft hängen lassen und auf Eingang mit aktiviertem Pull Up konfigurieren.
Hmm, und was ist daran sinnvoller als Ausgang und cbi? FR
Also, eine begründete aussage habe ich hier nicht gefunden. in der Luft hängen lassen ist klar, aber warum Eingang mit Pullup und nicht Ausgang. FR
@Chris H. (wuselwutz): Ist das Ironie? Ein Eingang kann sich trotz pull-up eher was einfangen als ein Ausgang. Gefühlt würde ich sagen als Ausgang schalten ist sinnvoller. Ein definierter Pegel ist auf jeden Fall sinnvoll. Hab mal bei einem Controller nach dem Grund für den relativ hohen Stromverbrauch gesucht und da hat das Pegeldefinieren bei ungenutzen Pins fast 20% eingespart. Muss aber dazusagen, dass er vorher auch nur ca. 50mA gebraucht hat. Aber immerhin!
Im Ernst, war doch grad vor kurzem Thema hier. Was sagt denn das Design Guide von Atmel bzw. das Datasheet? Ist Stromverbrauch ein Thema, wie braucht der Port weniger Strom, etc pp
>Abzwicken :-)
"Antenne" abzwicken beteutet nicht Antenne weg!
Hätte gern einen Beitrag der über kaputtmachen hinaus geht :-)
@Doh
Ja, mit dem definierten Pegel erscheint mir auch sinnvoll.
Und ich denke besser auf GND statt Vcc, oder?
FR
Das Datenblatt sagt:
1 | Unconnected Pins |
2 | If some pins are unused, it is recommended to ensure that these pins have a defined level. Even |
3 | though most of the digital inputs are disabled in the deep sleep modes as described above, floating |
4 | inputs should be avoided to reduce current consumption in all other modes where the digital |
5 | inputs are enabled (Reset, Active mode and Idle mode). The simplest method to ensure a |
6 | defined level of an unused pin, is to enable the internal pull-up. In this case, the pull-up will be |
7 | disabled during reset. If low power consumption during reset is important, it is recommended to |
8 | use an external pull-up or pull-down. Connecting unused pins directly to VCC or GND is not recommended, |
9 | since this may cause excessive currents if the pin is accidentally configured as an |
10 | output. |
Ok, Pull-up aktivieren bedeutet dann wohl, man soll den PIN auf Eingang schalten, sonst gibt es ja keinen definierten Pegel. Wird der Pull-up nach nem Reset automatisch wieder aktiviert? Als Ausgang ist dann vermutlich der Stromverbrauch höher. Ich hatte halt gedacht, ein Eingang kann sich eher irgendwelche Störungen eifangen als ein Ausgang...
Ok. Danke, habs jetzt auch (erst) im Datasheet gefunden. Aaaaber, warum ist laut Atmel er einfachste Weg einen definierten Level zu erreichen den internen Pullup (also Eingang) zu schalten statt einen Pegel an Ausgang festzulegen der ja auch noch viel niederohmiger ist. Wie gesagt: Der Pin ist nicht angeschlossen. Mit: "Atmel wirds schon wissen" ist mir nicht weitergeholfen. FR
Hi Ein als Ausgang geschalteter Pin verbraucht mehr Strom. Ein offener Eingang schadet zwar nicht, verbraucht aber noch mehr Strom. MfG Spess
Ein Eingang mit PullUp ist sicherer, da bei einem versehentlichen Anschluß von einer Spannung oder Gnd kein Kurzschluß passiert. Mit 20-50 kOhm ist der PullUp stark genug für einen stabilen Pegel. Bei "starker Einstrahlung" gibt es noch die internen Dioden als Schutz. Und wenn die Software bei einem "freien Pin" auf ein Low, High oder eine Flanke reagiert ist es ein Softwarefehler und kein EMV-Problem! avr
>Ein als Ausgang geschalteter Pin verbraucht mehr Strom. Räzel, auch wenn der Pin nicht angeschlossen ist? Warum ist das so? >Ein offener Eingang schadet zwar nicht, verbraucht aber noch mehr Strom. Was genau meinst Du mit "offen"? Ohne internen Pullup und nicht angaschlossen? FR
HI >Was genau meinst Du mit "offen"? Ohne internen Pullup und nicht >angaschlossen? Ja. MfG Spess
>Ein als Ausgang geschalteter Pin verbraucht mehr Strom.
Also wenn ich das richtig verstehe, dann verbraucht ein Eingang mit
Pullup weniger Strom als ein "offener" Ausgang.
Aber warum ist das so? Der Ausgang ist doch offen.
FR
>Bei "starker Einstrahlung" gibt es noch die internen Dioden >als Schutz. Aber die schützen doch nicht vor ungewollter Pegeländerung. Ich hatte mal einen unerklärliche und nicht reproduzierbaren halben Reset. Ich vermute es lag an einem EMV-Problem. Ich weiss es leider nicht. >Und wenn die Software bei einem "freien Pin" auf ein Low, High >oder eine Flanke reagiert ist es ein Softwarefehler und >kein EMV-Problem! Das sehe ich 100%ig ein. Aber der Prozessor kann doch, unabhängig von der Software, wegen einem EMV-Problem ausser Tritt gebracht werden?!? FR
Hi
>Aber warum ist das so? Der Ausgang ist doch offen.
Ich zitiere aus einem anderen Thread:
Autor: A. K. (prx)
CMOS Gates sind nur dann stromlos, wenn entweder high oder low,
mittendrin sind beide Transistoren mehr oder weniger eingeschaltet,
folglich fliesst Strom durch beide. In diesem Fall betrifft es das erste
CMOS-Gate von der Eingangsbeschaltung.
Wenn du diesen Pfad in der Abbildung der Innenschaltung eines I/O-Ports
im Datasheet vom 644 studierst, dann wirst du ein Transmission-Gate
finden und dahinter einen Transistor, der das Signal auf Masse zieht. Im
Deep Sleep ist das Transmission Gate ab- und der Transistor
eingeschaltet, um das folgende CMOS-Gate (den Schmitt-Trigger) auf Masse
zu bringen ohne den Pin zu beeinflussen.
MfG Spess
Das mit dem Transmission-Gate und so muss ich erst noch raffen.(kann ne Weile dauern) Also mit zB. cbi Ausgang auf low zieht mehr Strom, obwohl der Pegel nicht mittendrin ist? Er ist doch definiert. FR
Hi >Also mit zB. cbi Ausgang auf low zieht mehr Strom, obwohl der Pegel >nicht mittendrin ist? Er ist doch definiert. Aber Ausgang. Da sind andere Teile des Ports aktiviert. MfG Spess
Hi Vergiss meinen letzten Beitrag. Man sollte nicht gleichzeitig fernsehen. MfG Spess
Also verstehe ich das richtig, dass der nicht angeschlossene, definierte Ausgang doch NICHT mehr Strom zieht? FR
Hi >Also mit zB. cbi Ausgang auf low zieht mehr Strom, obwohl der Pegel >nicht mittendrin ist? Er ist doch definiert. Neuer Anlauf: Das kann dir wahrscheinlich nur ein Entwickler von Atmel erklären. Deckt sich aber mit meinen Messergebnissen. MfG Spess
Fun Rice schrieb: > Das mit dem Transmission-Gate und so muss ich erst noch raffen.(kann ne > Weile dauern) Ein Transmission-Gate ist sowas ähnliches wie ein elektronisches Relais, findet sich ansonsten auch in den CMOS Analogschaltern, die gerne als ADC-Multiplexer verwendet werden.
OK, Danke erst mal an Euch für die Antworten! Dann neme ich es an Tatsache an, dass der Ausgang mehr strom zieht. Aaaaber, unabhängig vom Strom ist ein Ausgang viel niederohmiger und würde doch eine durch EM induzierte Spannug viel stätker belasen und bestenfalls eliminieren?!? FR
Wenn deine EMV-Störungen so massiv sind, dass sie die mit internen Pullups versehenen Eingänge soweit ziehen, dass es schon signifikant auf den Stromverbrauch geht, dann würde ich mir eher Gedanken über die Stabilität des Gesamtsystem machen als um diesen Effekt.
OK, ich habe nur ein mal diesen Effekt festgestellt. Und EMV-Störungen sind für mich unsichtbar, nur die Folgen nicht. Ist es EMV-resistenter wenn ich Ausgänge benutze? Ja oder nein? FR
Warum hälst du dich nicht ganz einfach mit guten Gewissen an die Herstellerangabe und schaltest den internen Pullup ein?
>Ein Eingang kann sich trotz pull-up eher was einfangen als ein Ausgang. >Gefühlt würde ich sagen als Ausgang schalten ist sinnvoller. Selbst wenn, was soll er sich einfangen wenn du den Port nicht verwendest? Also kennt wer einen Fall indem selbst ein Port ohne Pullup jemals irgendwie den Programmablauf oder so beeinflusst hat. Würde mich mal wirklich interessieren. Ich benutze die Pullups fast nie und hatte niemals Probleme.
Hi >Ist es EMV-resistenter wenn ich Ausgänge benutze? >Ja oder nein? Egal. Auch ein offener Eingang ohne Pull-Up verursacht weder Funktionsstörungen noch Beschädigung. MfG Spess
>Warum hälst du dich nicht ganz einfach mit guten Gewissen an die >Herstellerangabe und schaltest den internen Pullup ein? Weil ich den Grund für diese Empfehlung nicht verstehe. Wenn der Grung nur die Stromerparnis ist würde ich das gegen erhöhte EMV-resistenz opfern. Aber die ernste Aussage " Ja, definierte Ausgänge sind EMV-Resistenter" steht scheinbat nirgens. Erscheint mit aber elektro-physikalich logisch! FR
Na ist doch klar, wenn man den Pin auf Ausgang schaltet und am Ausgang aus versehen was angeschlossen war, was ebenfalls ein Ausgang war, dann raucht es aus der Kiste. Deswegen ist ein Pull Up viel ungefährlicher.
>Hi >>Ist es EMV-resistenter wenn ich Ausgänge benutze? >>Ja oder nein? >Egal. Auch ein offener Eingang ohne Pull-Up verursacht weder >Funktionsstörungen noch Beschädigung. Ne ne nicht egal, ich meine die ganze Zeit EMV-Störungen von aussen!!! FR
>Na ist doch klar, wenn man den Pin auf Ausgang schaltet und am Ausgang >aus versehen was angeschlossen war, was ebenfalls ein Ausgang war, dann >raucht es aus der Kiste. Deswegen ist ein Pull Up viel ungefährlicher. Ne ne, wie oben beschrieben ist der unbenutzte Pin nicht angeschlossen. FR
Es geht um die Frage: Ist es EMV-resistenter wenn ich Ausgänge benutze? Ja oder nein? (Von aussen in Richtung AVR betrachtet.) FR
Hi >Ne ne nicht egal, ich meine die ganze Zeit EMV-Störungen von aussen!!! Warum rutscht eigentlich manchen schon beim Wort 'EMV' das Herz in die Hose? Also wir haben Geräte, da werkelt ein ATMega128 ca. 15cm (unabgeschirmt) entfernt von einer 5kW PWM-Verstärker-Endstufe. Da fliessen Ströme bis 150A bei 80KHz und Oberwellen bis in den MHz-Bereich . Ein Radio würde an dieser Stelle nichts mehr empfangen. Die ATMegas, mit offenen IOs, also Pins im jungfräulichen Zustand nach dem Reset, versehen klaglos ihren Dienst. Ich habe in mehr als 12 Jahren mit AVRs noch nie unbenutzte Pins irgendwie beachtet oder behandelt. Und bin damit gut gefahren. Und wenn du den Auszug aus dem Datenblatt liest, wirst du feststellen, das Atmel auch nur etwas 'empfiehlt'. MfG Spess
Bei uns (Automotive) war das Thema unbenutzte Pins grade auch ein Thema. Wir haben alle freien Pins jetzt als Output LOW konfiguriert. Seit dem ist der Ruhestromverbrauch um 30% gesunken.
Hi >Ist es EMV-resistenter wenn ich Ausgänge benutze? >Ja oder nein? >(Von aussen in Richtung AVR betrachtet.) Sch...egal. MfG Spess
spess53 schrieb: > Und wenn du den Auszug aus dem Datenblatt liest, wirst du feststellen, > das Atmel auch nur etwas 'empfiehlt'. Ja und das auch nur wenn man minimalsten Stromverbrauch haben möchte.
Fun Rice schrieb: > Ok. Danke, > > habs jetzt auch (erst) im Datasheet gefunden. > > Aaaaber, warum ist laut Atmel er einfachste Weg einen definierten Level > zu erreichen den internen Pullup (also Eingang) zu schalten statt einen > Pegel an Ausgang festzulegen der ja auch noch viel niederohmiger ist. > Wie gesagt: Der Pin ist nicht angeschlossen. > > Mit: "Atmel wirds schon wissen" ist mir nicht weitergeholfen. Die Sache ist doch relativ klar: Atmel sagt, dass ein definierter Pegel nötig ist und empfiehlt, das über einen Eingang mit aktiviertem Pull-Up zu regeln. Weiterhin empfehlen sie den unbenutzten Pin nicht hart auf einen definierten Pegel zu ziehen, da das im Falle eines SW-Fehlers (auf Ausgang definiert) zu hohen Strömen führt. Was Atmel damit implizit sagen will: "Auch ein Ausgang stellt einen definierten Pegel sicher, aber wir empfehlen das nicht, da wir keinen Stress mit ausgefallenen Endstufen haben wollen, nur weil einige Deppen da draußen die unbenutzten Pins auf VCC oder GND legen und ihre grottenschlechte Software den Pin dann doch ab und zu als Ausgang konfiguriert." Fazit: Wenn Du tatsächlich massive EMV-Probleme hast und wenn Du Dir sicher bist, dass Du Deine SW im Griff hast und die Pins nicht doch mal als Ausgang definierst, dann spricht nichts dagegen, die Pins auf GND oder VCC zu legen. Bezüglich EMV wirst Du damit sicherlich besser fahren als mit einem offenen Pin und internen Pull-Ups. Wenn eine absolut niedrige Stromaufnahme nötig ist, dann ist es ja kein großer Auftrag, einfach die paar theoretisch möglichen Varianten: - offener Eingang ohne Pull-Up (sicherlich schlecht - aber interessant das mal zu messen) - offener Eingang mit Pull-Up - Eingang mit Pull-Up hart an VCC - Eingang ohne Pull-Up hart an VCC - Eingang ohne Pull-Up hart an GND - Ausgang Low offen - Ausgang High offen - Ausgang Low an Gnd - Ausgang High an VCC durchzumessen. Dazu brauchst Du nur einen Widerstand, den Du zwischen Versorgungsspannung und VCC-Pin schaltest. Parallel zum Widerstand kommt eine kleine Si-Diode, die sicherstellt, dass am Widerstand nicht mehr als 0,7 V abfallen. Wenn der AVR in dem Zustand ist, in dem Du den Strom messen willst, kannst Du einfach den Spannungsabfall am Widerstand messen und daraus den Strom errechnen. Dazu reicht ein preiswertes Multimeter im 200mV-Bereich, da Du den Widerstand quasi beliebig groß machen kannst - gegenüber mehreren MOhm Eingangswiderstand des Multimeters sollte er immer noch klein sein - für eine vergleichende Messung wäre selbst das egal. Gruß, Bernd
Hi >Bei uns (Automotive) war das Thema unbenutzte Pins grade auch ein Thema. >Wir haben alle freien Pins jetzt als Output LOW konfiguriert. Seit dem >ist der Ruhestromverbrauch um 30% gesunken. Evtl. könntet ihr mit 'Pull-Up noch mehr sparen. Nach meinen Messungen ist da der Stromverbrauch noch geringer. >IJa und das auch nur wenn man minimalsten Stromverbrauch haben möchte. Richtig. MfG Spess
Hi >Atmel sagt, dass ein definierter Pegel nötig ist und empfiehlt, das über >einen Eingang mit aktiviertem Pull-Up zu regeln. Nein. Atmel empfiehlt für bestimmte Bedingungen eine definierten Pegel >Wenn Du tatsächlich massive EMV-Probleme Ich glaube nicht, das er damit Probleme hat. Es ist möglicherweise nur die Angst vor etwas, was man gehört, aber nicht verstanden hat. Man könnte 'verstanden' auch mit 'einschätzen' ersetzen. MfG Spess
Oh Gott, das ist ja wieder ein Thread wie mit einem Kind das bei jedem Versuch einer Begründung einfach wieder "Warum" fragt. Erinnert an LEDs ohne Vorwiderstand. Entweder du machst was Atmel empfiehlt, oder Du weisst es besser und konfigurierst die Pins auf Ausgang. und wenn Du wirklich so große Bedenken wegen EMV und Störungen hast, dann knips wirklich die unbenutzten Pins ab, dann ist nämlich ein großer Teil der 'Antenne' weg! Manchmal hilft (in abgewandelter Form aus Last Samurai) "Weniger Bedenken, mehr basteln" :-)
Udo. R. S. schrieb: > Entweder du machst was Atmel empfiehlt, oder Du weisst es besser und > konfigurierst die Pins auf Ausgang. Hallo Udo, sein Problem ist ja, dass Atmel eben nicht sagt, ob Eingang mit Pull-Up besser ist oder Ausgang oder Eingang hart auf GND bzw. VCC legen. Sie empfehlen Eingang mit Pull-Up, weil hart auf GND bzw. VCC bei SW-Fehlern Probleme macht. Was besser ist, wenn man die SW-Fehler ausklammern kann sagen sie nicht. Da das Thema jetzt aber wirklich von allen Seiten beleuchtet wurde, wäre jetzt tatsächlich wie Du schreibst Basteln angesagt. Noch etwas zum Thema EMV: "Antennen" abknipsen ist sicherlich besser als Antennen dranlassen, aber wie sieht es bei abknipsen vs. auf GND legen aus - was ist hier besser? Gruß, Bernd
Danke erst mal für die Antworten. Aber leider gehen viele in die falsche Richtung. Wenn ich es besser wissen würde, dann würde ich nicht fragen! Ich versuch mich jetzt unmissverständlich auszudrücken. Ich will kein Strom sparen! Ich will die unbenutzen Pins NICHT an GND oder VCC anschließen. Ich will nix am AVR abknippsen. (Wer macht denn AVRs kaputt?) Bern O. hat u.a. den Kern der Frage verstanden. >Was Atmel damit implizit sagen will: >"Auch ein Ausgang stellt einen definierten Pegel sicher, aber wir >empfehlen das nicht, da wir keinen Stress mit ausgefallenen Endstufen >haben wollen, nur weil einige Deppen da draußen die unbenutzten Pins auf >VCC oder GND legen und ihre grottenschlechte Software den Pin dann doch >ab und zu als Ausgang konfiguriert." Jetzt vorbereitend zu meiner Frage: Angenommen eine "EM-Welle" schafft es über einen Eingangspin mit internen Pull-Up eine Spannung zu induzieren, die zB. ein Bit im Programmcounter gerade eben kippen lässt.( und sagt mir jetzt nicht, Mikrokontroller halten jede EMV-Situation stand). Bitte antwortet doch nur mal auf die Frage, ohne irgedwelche Unterstellungen. ************************************************************************ Würde die gleiche EM-Welle das bei einem Ausgang, der nicht angeschlossen ist und zwangsläufig niederohmig ist, schaffen? ************************************************************************ FR
Fun Rice schrieb: > Angenommen eine "EM-Welle" schafft es über einen Eingangspin mit > internen Pull-Up eine Spannung zu induzieren, die zB. ein Bit im > Programmcounter gerade eben kippen lässt.( und sagt mir jetzt nicht, > Mikrokontroller halten jede EMV-Situation stand). Mit einem EMP kriegst du fast alles erlegt. Dagegen hilft rein optische Datenverarbeitung, der klassische Weg über Papier und Bleistift - oder die Röhrentechnik die bei manchen Militärs deshalb vielleicht noch verwendet wird. Herkömmliche Elektronik hat gegen dein Schreckensszenario keine Chance. Denn dann ist nicht der Pin das Problem, sondern die Störinduktion direkt auf dem Chip und auf den Bonddrähten der übrigen Leitungen. Ob Pullup oder Ausgang=0 ist in dem Zusammenhang dann völlig egal, denn eine Störung deiner Grössenordnung kommt auch über Reset, VCC/GND, die Schutzdioden, die benutzten Ein/Ausgänge rein. Abhilfe: Auf sämtliche Ein- und Ausgänge verzichten und Reset per Fuse wegdefinieren.
OK, dann ist es So wie spess53 schreib:
>Sch...egal.
FR
Hab gerade noch mal verglichen, mit den ungenutzten Pins als Ausgang und off (nirgendwo angeschlossen) habe ich ca. 36,4mA. Mit den Pins als Eingang mit aktivierten pull ups habe ich ca. 36,6mA.
Wenn Du so eine EMP-Flutwelle hast, dann meine Gegenfrage: Was machen denn dann deine anderen gewollt auf Eingang programmierten Eingänge, deren Registerwerte auch noch softwareseitig abgefragt werden? Meinst Du die sind dann richtiger als ein impuls auf einen unbenutzten Eingang der eh nicht abgefragt wird sofern Dein Programm stimmt. Du grübelst hier über ein Sandkorn, während Du am Strand sitzt. Kopfschüttel!
Doh schrieb: > Hab gerade noch mal verglichen, mit den ungenutzten Pins als Ausgang und > off (nirgendwo angeschlossen) habe ich ca. 36,4mA. > Mit den Pins als Eingang mit aktivierten pull ups habe ich ca. 36,6mA. Du "hast" 36,4mA? Wat?
>Wenn Du so eine EMP-Flutwelle hast, dann meine Gegenfrage: >Was machen denn dann deine anderen gewollt auf Eingang programmierten >Eingänge, deren Registerwerte auch noch softwareseitig abgefragt werden? >Meinst Du die sind dann richtiger als ein impuls auf einen unbenutzten >Eingang der eh nicht abgefragt wird sofern Dein Programm stimmt. >Du grübelst hier über ein Sandkorn, während Du am Strand sitzt. 1. Ich habe diese EMP-Flutwelle nicht. 2. Meine Eingänge sind logischer Weise an anderen Ausgängen angeschlossen. Somit ist der ganze Strang niederohmig. 3. Geht es hierum: Angenommen eine "EM-Welle" schafft es über einen Eingangspin mit internen Pull-Up eine Spannung zu induzieren, die zB. nur ein Bit im Programmcounter GERADE eben kippen lässt. ************************************************************************ Würde die gleiche EM-Welle das bei einem Ausgang, der nicht angeschlossen ist und zwangsläufig niederohmig ist, schaffen? ************************************************************************ FR
Fun Rice schrieb: > Angenommen eine "EM-Welle" schafft es über einen Eingangspin mit > internen Pull-Up eine Spannung zu induzieren, die zB. nur ein Bit im > Programmcounter GERADE eben kippen lässt. Genau das ist der springende Punkt. Damit die das GERADE eben schafft, muss sie schon sehr stark sein.
OK, aber wenn der EMP es über den hochohmigen Eingang schafft, dann würde für mein Verständniss die gleiche induzierte Spannung durch den niederohmigen Ausgang viel stärker belastet, so dass sich kaum eine Induktionsspannung aufbauen kann. Hmm, andererseits hätten wir beim Ausgang durch die niederohmige Last einen höheren "Induktionsstrom" zur Folge, oder? FR
Fun Rice schrieb: > 1. Ich habe diese EMP-Flutwelle nicht. > 2. Meine Eingänge sind logischer Weise an anderen Ausgängen > angeschlossen. Somit ist der ganze Strang niederohmig. > 3. Geht es hierum: > > Angenommen eine "EM-Welle" schafft es über einen Eingangspin mit > internen Pull-Up eine Spannung zu induzieren, die zB. nur ein Bit im > Programmcounter GERADE eben kippen lässt. zu 2. Das schützt nur vor kapazitiv gekoppelten Störungen. Für induktiv eingekoppelten Störungen ist das die beste Antenne. Da musst du schohn Ein-/und Ausgang mit deinem Wellenwiderstand abschliessen. Bevor die EMV-Welle dein Programmcounter ändert, ändert sie erstmal deine Eingangsregister. Ist die EMV-Welle so gross das sie den Programm counter ändert, ist es völlig egal ob deine ungenutzten pins ein -/oder Ausgang sind. Du suchst Probleme wo gar keine sind!!!
So, und da sind wir bei der Theorie von EMV angelangt, die du dir vielleicht mal zulegen könntest, damit nicht immer im Dunkeln gestochert wird: Es gibt Einkopplungen über das Magnetfeld (induzierte Spannungen) und über das E-Feld (eingekoppelte Ströme)... meistens treten beide auf, E-Feld kann man abschirmen, Magnetfeld nicht (können aber durch Gegenfelder aufgehoben werden)
Hat zwar nichts mit dem AVR zu tun, aber mit Datenblättern & Co. Ich habe diesen POL Wandler eingesetzt: ATA006A0X Und da steht im DB:
1 | When not using positive logic On/off pin, leave the pin unconnected or tie to VIN. |
Also habe ich das einfach mal getan und den Pin offengelassen, hat ja einen Pullup dran... Und dann das böse Erwachen in der Koppelzange: der Schaltregler schaltet ab und zu OFF. Erst mit einem niederohmigen Pullup oder direkt an VIN war Ruhe. Allerdings war das wie gesagt mit einem Pin, der eine Funktion hat. Ein nicht verwendeter Eingangspin sollte mit dem Pullup zufrieden sein...
>Du suchst Probleme wo gar keine sind!!! Hmm. >So, und da sind wir bei der Theorie von EMV angelangt, die du dir >vielleicht mal zulegen könntest, damit nicht immer im Dunkeln gestochert >wird: Weil ich nicht Fit in EMV bin Frage ich ja. Die Antwort kann doch nicht sein: "Mach dich selber schlau" im übertragenen Sinn. Wozu brauchen wir dann ein Forum? Wiso kann man ein Magnetfeld nicht abschirmen? FR
Hallo, gegen EMV würde ich den Pin als Ausgang schalten und zwar auf den Pegel der am weitesten entfernt ist von der Schaltschwelle. Bei AVR ist die Schaltschwelle meist näher am Masse-Pegel (20-60% von VDD). Also würde ich hier VDD (also High-Pegel) einstellen.
Anja schrieb: > Hallo, > > gegen EMV würde ich den Pin als Ausgang schalten und zwar auf den Pegel > der am weitesten entfernt ist von der Schaltschwelle. > Bei AVR ist die Schaltschwelle meist näher am Masse-Pegel (20-60% von > VDD). Also würde ich hier VDD (also High-Pegel) einstellen. Super, jetzt war er so gerade halbwegs überzeugt davon wie man's richtig macht.
Wie hat man es denn in der guten alten Zeit bei CMOS gemacht ? :-) offener Eingang pfui bah also auf einen definierten Pegel legen. Das war üblicherweise GND hätte aber auch VCC sein dürfen, Ausgänge dann in die Luft. Was anderes sagt Atmel auch nicht... unbenutzte Pins auf ein definiertes Potential und das ist auch ein Eingang mit Pull up... so what ? Datenblatt von Atmel paßt schon. Wenn dir der Pullup nicht genehm ist dann löt halt einen zusätzlichen von außen dran.
Hallo, >Datenblatt von Atmel paßt schon. Wenn dir der Pullup nicht genehm ist >dann löt halt einen zusätzlichen von außen dran. Falls ich Dich noch nicht überzeugt habe: man kann das ganze auch mathematisch berechnen/abschätzen: Die meisten (kritischen) EMV-Störungen (Burst/ESD) spielen sich im Bereich 1-5ns Flankensteilheit ab. Als korrespondierende Frequenz ergibt sich 1/(PI * Flankensteilheit) also ca 60-300 MHz. Ein IC-Pin hat je nach Bauform ca 0.5 - 2pF (mit Durchkontaktierung) Streukapazität gegen Umgebung. Mal grob überschlägig mit 1pF und 100 MHz gerechnet ergibt sich als Impedanz für die Streukapazität des Pins: Xc = 1 / (j 2 PI 100MHz 1pF) = 1,6 KOhm. Also damit Dein Pull-up gegenüber der Streukapazität wirksam ist muß er wesentlich (Faktor 10) kleiner sein als 1,6 K. (Vorausgesetzt die Leiterbahn zum Pull-up und der Pull-up selbst fügen keine weitere Streukapazität hinzu). Die Internen Pull-ups haben so ca 20-50KOhm. (Reicht leider nicht) Siehe Seite 287: http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf Der PIN als Ausgang geschaltet hat ca 25 Ohm (<1600 Ohm) als Pull-Up (siehe Seite 310 Figure 175) Wenn ich den Pin extern an Masse/VCC anschließe baue ich mir eine Rahmenantenne. (Aber da soll jetzt mal ein anderer anfangen zu rechnen).
Können wir uns daruaf einigen das der externe Pull up auch 0 Ohm haben darf :-) ansonsten kann ich deiner Berechnung nicht widersprechen... deshalb sage ich ja zusätzlicher Pullup. Bei verwendung des internen kannst du ja mal berechnen wie groß die Störung sein muß damit es Auswirkungen hat.
Also ich muss sagen, dass mich das Posting von Anja überzeugt hat. Vielen Dank für die ausführliche Erklärung :-)) Dann war meine erste Annahme, bis auf den Low-Pegel,(zufällig) richtig. Denn ich schrieb: >Ich DENKE die unbenutzen Pins "in der Luft" stehen lassen und als >Ausgang schalten und Pin mit cbi auf low setzen, ist die Antwort. Einen externen Widerstand einlöten kommt für mich nicht in Frage. Welcher Hersteller würde auch nur einen Widerstand mehr einbauen, wenn er ihm keinen Vorteil bringt und das Problem in der Hardware-Initialisierung lösen kann. Auf Vcc oder GND brücken fällt wegen dem "Tippfehler-im-Programm-Problem" weg. FR
Hi >Also ich muss sagen, dass mich das Posting von Anja überzeugt hat. >Vielen Dank für die ausführliche Erklärung :-)) Warum fragst du eigentlich hier, wenn du sowieso nur deine Meinung bestätigt haben wolltest? >Einen externen Widerstand einlöten kommt für mich nicht in Frage. >Welcher Hersteller würde auch nur einen Widerstand mehr einbauen, wenn >er ihm keinen Vorteil bringt und das Problem in der >Hardware-Initialisierung lösen kann. Damit hast du aber das gleich Problem wie bei: >Auf Vcc oder GND brücken fällt wegen dem >"Tippfehler-im-Programm-Problem" weg. Lässt sich auch per Tippfehler ausschalten. Da solltest du wenigstens konsequent sein. Von mir aus, mach was du willst. Ich lasse meine Pins auch in Zukunft offen. MfG Spess
@spess53 Hä, Deine Antworten sind für mich unplausibel. Oder bist Du wieder am fernsehen? Bist Du beleidigt? Ich meine es echt nicht böse. Ich schätze Deine Meinung. FR
Hallo zusammen, dieser Thread ist mal wieder ein Bespiel für dieses Forum: tausend Leute meinen, Ihre eigene Meinung unverrückbar darstellen zu müssen, obwohl jemand eine konkrete (theoretische) Frage stellt. Warum dauert es so lange, bis jemand wie Anja sich findet, der das kurz und eindeutig beantwortet? Sorry, ich konnte mich selbst wegen mangelnder Ahnung zu dem Thema nicht (auch noch) einmischen. Gruss, Ingo.
So fundiert Anjas Erklärung auch sein mag: Darin wird nur beschrieben, dass eine EMV-Störung einen Pegelwechsel an einem mit einem internen Pullup versehenen Eingang sehr viel wahrscheinlicher bewirken kann als an einem als Ausgang definierten Pin. Nur hat ein ab und zu bis selten auftrender Pegelwechel an einem unbenutzen Eingang absolut keine Auswirkung auf das laufende Programm, auch der Stromverbrauch ist aufgrund der beschriebenen Zeitverhältnisse nicht messbar betroffen. Die zuletzt gestellte Frage, inwieweit EMV-Störungen eine Auswirkung auf das laufenden Programm haben können und inwieweit das mit unbenutzten Pins zu tun haben kann, wird davon überhaupt nicht tangiert.
Hallo, > Nur hat ein ab und zu bis selten auftrender Pegelwechel an einem > unbenutzen Eingang absolut keine Auswirkung auf das laufende Programm, > auch der Stromverbrauch ist Aaufgrund der beschriebenen Zeitverhältnisse > nicht messbar betroffen. meine Erfahrungen sprechen dagegen: Ein Beispiel: An einem PIC12F675 habe ich eine RS232-Schnittstelle als Billig-Version realisiert. (100kOhm Serienwiderstand am Empfänger-Eingang des PIC). Normalerweise hätte ich vermutet daß die Eingangsschutzdioden das +/-12V Signal zusammen mit dem Serienwiderstand so begrenzen daß es keine Auswirkung hat. (12V / 100 kOhm = 120uA was weit unter den üblicherweise in den Datenblättern angegebenen 500 - 1000uA ist was die Schutzdioden dauerhaft vertragen). An einem Analog-Eingang des PIC hatte ich einen 33K NTC und einen Pull-up 27k angeschlossen. Ich erhielt jedoch unplausible (springende) Temperaturwerte. Ein schnell mal parallelgeschalteter 100nF-Kondensator brachte keine Verbesserung. Erst mit einem 10uF-Kondensator war das Temperatursignal stabil. Mit dem Oszi habe ich Spannungseinbrüche auf dem NTC-Eingang gemessen die zum RS232 Signal (-12V) korreliert waren. Da ich den NTC-Eingang zusätzlich zum Flashen gebraucht habe, habe ich eine Schottky-Diode an die RS232-Schnittstelle gehängt die die negativen Spannungen auf -0.3V begrenzt. Seither ist das Temperatursignal auch ohne Kondensator stabil. So ein negativer Puls könnte auch durch EMV an einem unbenutzten Eingang denselben Effekt bewirken. Was jetzt die Ursache ist konnte ich leider nicht nachvollziehen. Von früheren dynamischen RAMs bzw. den ersten "Single-Supply" Prozessoren ist bekannt daß diese über Ladungspumpen negative Spannungen im Substrat erzeugt haben damit die Schaltung schneller arbeitet (höher getaktet werden kann). Möglicherweise haben wir auch bei modernen Prozessoren ähnliche Tricks, die sich jedoch durch entsprechende negative Pulse aus dem Tritt bringen lassen. Das schlimme ist: Wenn Du erst mal Störungen im System hast ist der Weg der Störung (Übersprechen über Bonddrähte, Substrat usw.) für den Anwender meist nicht mehr nachvollziehbar. -> es lohnt sich vorher etwas Zeit zu investieren als später bei den EMV-Tests festzustellen daß irgendwas nicht funktioniert.
Das erinnert mich an was, das wäre möglich. Für NXPs 74HC Chips ist in der Family Doc offiziell dokumentiert, dass aufgrund parasitärer Strukturen der durch eine Schutzdiode fliessende Pin an einem Nachbarpin zu einem geringen Teil wieder rauskommen kann. Wenn dieser Pin ziemlich hochohmig angeschlossen ist, dann kann das Folgen haben. Das ist auch der Grund, weshalb ich von der recht populären Methode, die Schutzdioden in den Normalbetrieb einer Schaltung mit einzubeziehen, meist abrate. Solche parasitären Effekte sind meist nicht dokumentiert. Inwieweit andere Chiptech als NXPs 74HC davon betroffen ist und wenn ja wie stark weiss ich nicht.
Tippfehler: ... der durch eine Schutzdiode fliessende Strom ...
Die Berechnung mit den Streukapazitäten hat einen kleinen Schönheitsfehler: Die Streukapazitäten gehen überwiegend gegen eine Feste Spannung, i.A. GND. Damit helfen die Streukapazitäten zusätzlich den Pegel stabil zu halten. Für die Entwicklungsphase würde ich beim Pullup bleiben. Für die entgültige Schaltung kann es sinnvoll sein Pins als Ausgang und low zu setzen und dann auch extern an GND anzuschließen. Damit hat man dann eine zusätzliche GND anbindung. Besonders bei Chips wie dem 2313 kann da günstig sein, weil da die GND und VCC Pins weit auseinander liegen. Der Unterschied wird aber nicht groß sein.
OK, Danke nochmal für Eure Antworten. Für die entgültige Schaltung (PCB) werde ich dann Ausgänge auf low setzen aber nicht an GND anschließen, um sie für Weiterentwichlungen flexibler und einfacher nutzen zu können. FR
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.