Ist es sicher, E / A-Pins eines AVR ATmega328P ohne Stromversorgung anzusteuern? [Duplikat]

Ist es sicher, die Pins dieses AVR-Chips zu treiben, während er nicht mit Strom versorgt wird?

Wenn ich zum Beispiel einen Motortreiber so teilen würde, dass er von zwei Mikrocontrollern angesteuert werden kann, würde dann einer der Mikrocontroller beschädigt werden, während der andere nicht mit Strom versorgt wird, aber die Signalspannungen an seinen Pins vom anderen Mikrocontroller sieht?

BEARBEITEN: Da dies als Duplikat markiert wurde, hier eine Klarstellung. Die hier angegebene MCU ist eine andere von einem anderen Hersteller. Obwohl ich mir nicht sicher bin, würden sich ihre Funktionsweise und Grenzen mit Sicherheit unterscheiden. Bei dieser Frage ging es nicht darum, ob es die MCU „schwächen“ wird, sondern darum, ob dies überhaupt sicher ist. IMO schwächen würde bedeuten, dass es möglich ist, aber im Laufe der Zeit wird es die Leistung der MCU beeinträchtigen.

Was sagt das Datenblatt unter absoluten Höchstleistungen?
Beachten Sie, dass die IO-Pins wahrscheinlich ESD-Schutzdioden haben, was bedeutet, dass Ihre MCU phantomgespeist wird, wenn Sie sie ohne Stromversorgung betreiben.

Antworten (7)

Vielleicht interessiert Sie das Video von EEVBlog über die Stromversorgung einer MCU ohne Anschluss der Stromanschlüsse . Wenn Sie die E/A-Pins auf der MCU ansteuern, kann es sein, dass Sie die MCU über ihre Schutzdioden einschalten.

Wenn Ihr VCC nach dem Diodenabfall unter oder über der Mindestspannung liegt, die zum Ansteuern Ihrer MCU erforderlich ist (oder mehr Strom zieht, als die internen Dioden verarbeiten können), funktioniert sie nicht ordnungsgemäß. Dies setzt natürlich voraus, dass Ihr VCC offen ist und nicht mit Masse (oder Null Volt) kurzgeschlossen ist.

Hier ist ein Diagramm der Ersatzschaltung für Ihren Atmega328p:

Geben Sie hier die Bildbeschreibung ein

Beachten Sie die Dioden von Masse zu VCC.

Wie auch immer , das Datenblatt gibt nicht explizit das genaue Verhalten der Ansteuerung des Atmega328p von einem I/O-Pin an.

Es heißt jedoch, dass die absolute Höchstspannung, die Sie an einen (nicht-nRESET) E / A-Pin anlegen können, Vcc + 0,5 V beträgt. Wie mbrig in den Kommentaren betonte, wird der Diodenabfall sehr wahrscheinlich dazu führen, dass die Spannung am E / A-Pin größer als Vcc + 0,5 V ist, wenn Sie den Chip mit Phantomspeisung versorgen.

Das Datenblatt besagt, dass der Betrieb des ATmega328p außerhalb seiner absoluten Maximalwerte dauerhafte Schäden verursachen kann, daher würde ich davon abraten.

Und wenn VCC geerdet ist , würde eine Spannung am I/O-Pin einfach gegen Masse kurzschließen, was zu einem übermäßigen Strom führen und möglicherweise zumindest die Schutzdiode durchbrennen würde, richtig?
Ich habe abgelehnt, weil diese Situation nicht "nicht spezifiziert" ist. Aus dem Datenblatt geht ziemlich klar hervor: Das Anlegen von Spannungen> Vcc + 0,5 (was der Phantomspeisung des IC entsprechen muss) an einen beliebigen Pin verstößt gegen die absoluten Höchstwerte und kann den Chip beschädigen.
Habe es. Wenn ich die MCU dann mit Strom versorgen würde, würde das die E / A-Spannungen innerhalb sicherer Grenzen halten, und das sollte in Ordnung sein, oder?
@electrophile Vergleichen Sie das Datenblatt mit Ihrem Design. Wenn Sie es innerhalb der empfohlenen Schwellenwerte betreiben, ist alles in Ordnung
@mbrig Ich habe die Antwort zur Verdeutlichung bearbeitet
@ilkkachu Ja, wenn Vcc irgendwie geerdet ist, riskieren Sie, entweder den ATmega328p und was auch immer ihn antreibt, zu beschädigen.
Toll, Downvote entfernt!

Aus dem Datenblatt:

ATmega328p-Datenblatt: "Elektrische Eigenschaften: Absolute Höchstwerte"

Die maximale Spannung an einem anderen Pin als _RESET wird als "Vcc + 0,5 V" angegeben. Wenn der Chip nicht mit Strom versorgt wird, ist Vcc 0, also nein - Sie können keine Spannung über 0,5 V sicher anlegen.

Wenn Sie einen I/O zwischen zwei Teilen teilen möchten, von denen einer möglicherweise nicht mit Strom versorgt wird, benötigen Sie eine Art Schalter.

Ohne Stromversorgung könnte ein offener Stromkreis bedeuten und nicht unbedingt 0 V
@tangrs Stimmt. Das Datenblatt berücksichtigt diese Möglichkeit nicht wirklich, sagt aber auch nicht, dass es in Ordnung ist. (Und das ist es definitiv nicht.)
Es ist wahrscheinlich, dass Stromschienen Kapazitäten enthalten, die aufgeladen werden müssten, um die Vcc anzuheben, sodass "ohne Stromversorgung" "bei 0 Volt" sehr ähnlich ist. +1.

NEIN.

Am Eingang der meisten Pins auf einem Gerät wie dem AVR ATmega328 befinden sich Dioden, um den Chip vor elektrostatischer Entladung (ESD) zu schützen. Diese Dioden sind mit der Versorgungsschiene des Geräts verbunden.

Wenn Sie ein Logiksignal in einen Pin treiben, wenn das Gerät nicht mit Strom versorgt wird, versucht es, über die Diode mit Strom zu versorgen. Dies kann keinen Schaden verursachen, wirkt sich jedoch häufig auf die Power-On-Reset-Schaltung aus, sodass das Gerät nicht ordnungsgemäß hochfährt, wenn Strom verfügbar ist. Dies ist häufig eine Ursache für unerwarteten Stromverbrauch in batteriebetriebenen Schaltungen.

Sie müssen einen Multiplexer einbauen, um auszuwählen, welche MCU Ihren Motortreiber ansteuert, oder dafür sorgen, dass beide MCUs mit Strom versorgt werden, aber diejenige, die nicht für den Betrieb des Motors vorgesehen ist, hält ihre E / A-Ports in einem hochohmigen Zustand (z Eingang).

Typischer MCU-I/O-Port

Ich weiß, dass sie über Software als Eingänge konfiguriert werden können. Gibt es jedoch eine Möglichkeit, alle E / A-Ports über Hardware in einen hochohmigen Zustand zu versetzen?
Sie könnten Tri-State-Puffer zwischen den E / A-Pins jedes Mikrocontrollers und dem Motortreiber platzieren. Sie würden dafür sorgen, dass die Puffer immer mit Strom versorgt werden, aber das Ausgangsaktivierungssignal am Puffer entsprechend einstellen, je nachdem, welcher Mikrocontroller eingeschaltet ist. Dies ist im Wesentlichen die gleiche Hardware, die sich in den Ausgangstreibern der MCUs befindet, aber indem Sie sie als diskretes Teil herausbrechen, können Sie sie getrennt von der MCU-Stromversorgung steuern.
Wenn Sie den Prozessor im Reset halten, sollten alle IO-Ports hochohmig werden (das Datenblatt erklärt, was beim Reset passiert). Es dauert einige Zeit, bis der Prozessor hochfährt, wenn Sie den Reset loslassen. Das kann aber für dich funktionieren.

Unsicher für AVR und die andere MCU. Der AVR versucht , sich einzuschalten, wenn die andere MCU ihren E / A-Pin auf "hoch" treibt. Nicht gut für AVR - es soll über seinen dedizierten Versorgungsstift eingeschaltet werden. Sonst können schlimme Dinge passieren. Da der Hersteller ausdrücklich sagt „tu das nicht“, ist der Hersteller nicht verpflichtet zu sagen, auf welche „schlechten Dinge“ du stoßen könntest. Meine Erfahrung ist, dass "schlecht" von sehr seltsam bis Rauch reicht .
Da der AVR wie ein Kurzschluss gegen Masse aussehen kann, würde die andere MCU (die versucht, ihren Ausgangspin hochzuziehen) einer starken Last ausgesetzt sein. Es kann möglicherweise nicht so hoch ziehen, wie es sollte, und zu viel Strom fließen lassen (was es gefährdet).
Gefährdet ist auch Ihr Motortreiber, insbesondere wenn es sich um PWM handelt. Wenn Sie nicht wissen, ob es "hoch" oder "niedrig" sein soll (irgendwo dazwischen), kann es überhitzen.
Sie riskieren also alles .

Gemäß der Spezifikation V ih = V CC + 0,5 V, also allein schon deshalb nein.

Wenn V CC jedoch wirklich "offen" ist, wird durch das Speisen der E / A-Pins ein Phantom-V CC an das Gerät angelegt, sodass es nicht wirklich ausgeschaltet ist. Dadurch wird das obige Problem zwar negiert, es wird jedoch ein ganz neues eröffnet Dose Würmer.

Selbst wenn die oben genannten Probleme kein Problem darstellen, gibt es keine Garantie dafür, dass Sie tatsächlich in der Lage sein werden, einen I/O-Pin auf High zu treiben, wenn das Gerät ausgeschaltet ist. Möglicherweise stellen Sie fest, dass der Ausgang extrem niederohmig gegen Erde ist.

Letzteres gilt übrigens auch für Eingangspins . Unter der Annahme, dass die VCC des Chips auf Masse abgeklungen ist, stellt der Eingang bei jedem Signal, das Sie mit dem anderen Gerät zu messen versuchen, eine Diode zu einem Kondensator zur Masse dar.

Grundsätzlich ... tun Sie es nicht.

Obwohl es nicht im Datenblatt steht, gilt als Faustregel, dass die internen ESD-Schutzdioden bei einem 8-Bit-AVR-Chip 1mA haben können. Die Dioden lassen mehr Strom zu, aber 1mA ist das empfohlene Maximum.
Wenn ein Spannungsteiler mit zwei Widerständen hergestellt wird, kann dieser 1mA verwendet werden, um die maximal zulässige Spannung für den Spannungsteiler zu berechnen.

Der Atmel Application Note AVR182 erwähnt die 1mA.

Ein positiver Strom in einen Pin fließt zu VCC und könnte den AVR-Chip und/oder die Schaltung mit Strom versorgen. Dies könnte zu unvorhersehbarem Verhalten führen, wenn der AVR-Chip nahe seiner unteren Spannungsgrenze läuft.
Mit genügend Spannung und Strom könnte die Spannung sogar weit über 5,5 V ansteigen und den AVR-Chip zerstören. Vor allem, wenn der AVR-Chip im Ruhemodus ist. Es ist daher gefährlich zu verwenden, aber es kann getan werden.

Seien Sie immer vorsichtig, wenn Sie Spannungen an einen Pin anlegen. Verwenden Sie einen Schutzwiderstand, um den Strom zu begrenzen. Das ist auch sicherer für den Normalbetrieb. Das bedeutet, wenn zwei AVR 5V-Chips miteinander verbunden sind, sollten 4k7-Widerstände dazwischen sein, um den Strom auf etwa 1mA zu begrenzen, wenn ein AVR-Chip keinen Strom hat. Je nach Schaltung kann das 4k7 die Signale beeinflussen.

Es könnte noch mehr Konsequenzen geben, ich bin mir nicht sicher, ob ich sie alle erwähnt habe.

Ist es sicher, die Pins dieses AVR-Chips zu treiben, während er nicht mit Strom versorgt wird?

was sicher ist oder nicht, ist relativ.

Die Phantomspeisung eines Geräts kann praktisch sein -> Stromversorgung bei Bedarf im Grunde. Beispielsweise können Sie eine Konfiguration haben, in der die Slaves phantomgespeist und normalerweise ausgeschaltet sind. Der Master kann ein paar Impulse auf die Übertragungsleitung senden, um ihn aufzuwecken, und sobald die Übertragung beendet ist, geht das Gerät von selbst aus.

Aber wie alles im Leben birgt es seine eigenen Risiken, die es zu erkennen und angemessen zu managen gilt.

Daher ist es falsch, kategorisch zu sagen, dass Phantomspeisung eine gute oder schlechte Praxis ist.