Warum leitet mein Mikrocontroller einen Strom durch ihn, wenn er nicht angeschlossen ist?

7

MCU: ATTiny13

Ich bemerkte dies, nachdem ich versucht hatte zu debuggen, warum durch Drücken meines Schalters (verbunden über R2, ein 507-kOhm-Pulldown-Widerstand) die LED gedimmt wird, während sie gedrückt wird. Der Schalter wurde über dieselbe Versorgungsleitung mit Strom versorgt wie der Vcc-Eingang zum Mikrocontroller.

Beim Trennen des Vcc-Eingangs (Pin 8) bemerkte ich, dass die LED noch leuchtet, wenn der Schalter gedrückt wurde. Wenn ich eine Verbindung vom Erdungsstift 4 entfernt habe, leuchtet die LED immer noch, aber weniger hell.

Die folgende Schaltung zeigt, was ich beobachtet habe. Der Schalter wird entfernt, um das Problem zu vereinfachen:

Geben Sie hier die Bildbeschreibung ein

Warum passiert das und wie kann ich es stoppen? Es stört den Ausgang, wenn die Taste gedrückt wird.

Hier ist ein Bild der Schaltung auf einem Steckbrett. Die Versorgungsleitung (5 V ist das rote Kabel, Masse ist schwarz):

Geben Sie hier die Bildbeschreibung ein

tgun926
quelle
1
Klingt nach einem Bauproblem. Nach diesem Schema kann die LED bei ausgeschaltetem Vcc auf keinen Fall aufleuchten. Ohne den angeschlossenen Vcc-Pin des Mikros wird natürlich nicht viel passieren.
Matt Young
1
Können Sie den Schalter in Ihrer Schaltung zeigen?
Scott Seidman
4
Sicher ist das nicht die ganze Strecke. Mit ziemlicher Sicherheit wird einer der E / A-Pins bei Vdd gehalten oder auf Vdd hochgezogen.
Olin Lathrop
2
Das Anschließen eines E / A-Pins an eine höhere Spannung als VCC führt bei vielen Mikrocontrollern zu undefiniertem Verhalten. Der Mikrocontroller befindet sich in einem undefinierten Zustand und alles kann passieren.
vsz
2
Nein, das kann eindeutig nicht das sein, was Sie tatsächlich angeschlossen haben. Wenn es gemäß Ihrer Beschreibung angeschlossen wäre, gäbe es überhaupt keine Stromquelle und daher keine Möglichkeit für die LED zu leuchten. Vielleicht ist die Unterseite von R2 tatsächlich mit Vdd verbunden?
Olin Lathrop

Antworten:

22

Die Eingänge vieler moderner CMOS-Geräte verfügen über ESD-Schutzdioden von den E / A-Pins zu den Versorgungsschienen, die darauf hoffen, transiente Überspannungen zur Versorgung umzuleiten, bevor sie Schäden verursachen.

Ein Nebeneffekt davon ist, dass der Chip zumindest bis zu einem gewissen Grad über einen E / A-Pin mit Strom versorgt werden kann, sobald der Pin gegen die (nicht versorgte) Versorgung ausreichend ansteigt, um die Diode in Vorwärtsrichtung vorzuspannen. Selbst bei Technologien ohne explizite Schutzdioden kann dies bis zu einem gewissen Grad passieren, obwohl dies häufig zu einem sehr unzuverlässigen Betrieb führt (klassischer Fehler - vergessen Sie, einen Chip mit Strom zu versorgen und zu sehen, dass er "irgendwie" funktioniert - ich habe es in der Vergangenheit selbst mit einem SPI-Blitz gemacht Januar, der irgendwie nie einen Grund bekam und erwartete Antworten liefern würde, bis ich versuchte, Flash-Speicherorte zu schreiben).

Im Allgemeinen möchten Sie einen Chip nicht auf diese Weise mit Strom versorgen - er liegt außerhalb der absoluten Maximalwerte, und die Schutzdiode ist möglicherweise nicht so dimensioniert, dass sie den vollen Betriebsstrom führt. Sie sehen es jedoch manchmal, sowohl in absichtlichen Experimenten wie einem RF-betriebenen ATTiny RFID-Tag-Emulator- Experiment als auch versehentlich in Fällen wie dem Versuch, den Stromverbrauch einer schlafenden MCU zu messen und sie tatsächlich aus Ihrem seriellen Debug ziehen zu lassen Port statt der Versorgung, die Sie messen möchten.

Chris Stratton
quelle
1
Danke, macht für mich Sinn. Ist dies der gleiche Grund, warum die LED dunkler wird, wenn ich die Spannung des Eingangspins hoch mache? Muss ich nur einen Vorwiderstand verwenden, um die Eingangsspannung zu senken, um dies zu beheben?
tgun926
1
Dies konnte nicht beantwortet werden, ohne den Schaltplan und den Programmcode zu sehen. Klingt nach einer eigenen Frage.
Chris Stratton
1
Gute Antwort. Ich habe das auch mit Microchip-Prozessoren gemacht. Mistkerl der Zeit, es das erste Mal herauszufinden.
Adam Head
8

Das Datenblatt für Ihr Gerät enthält folgende Tabelle:

Geben Sie hier die Bildbeschreibung ein

In dieser Tabelle bedeutet VCC die an den VCC-Pin angelegte Spannung, nicht das Netz in Ihrer Schaltung, das Sie als VCC bezeichnet haben.

Da Sie keine Spannung an den VCC-Pin angelegt haben, dürfen Sie an keinen anderen Pin mehr als 0,5 V anlegen. Ihre PB4-Verbindung verstößt gegen diese Regel.

Ben Voigt
quelle
4

Strom fließt durch interne Klemmdioden.

Die interne Schaltung (vereinfacht) sieht folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein

In diesem Atmel-Dokument (zufälliger Anwendungshinweis mit Informationen zu Klemmdioden) können Sie lesen:

Um das Gerät vor Spannungen über VCC und unter GND zu schützen, verfügt der AVR über interne Klemmdioden an den E / A-Pins (siehe Abbildung 1). Die Dioden sind von den Pins mit VCC und GND verbunden und halten alle Eingangssignale innerhalb der Betriebsspannung des AVR (siehe Abbildung 2). Jede Spannung, die höher als VCC + 0,5 V ist, wird auf VCC + 0,5 V heruntergedrückt (0,5 V ist der Spannungsabfall über der Diode), und jede Spannung unter GND - 0,5 V wird auf GND - 0,5 V erzwungen.

Kamil
quelle
1

Nur ein Nachtrag zu Chris Strattons korrekter Antwort.

Sie versorgen das Gerät tatsächlich über die Schutzdioden mit Strom. Es gibt verschiedene Möglichkeiten, ESD-Schutz zu bieten, und alle umfassen die Verwendung von Dioden an den Stiften, um eine Verbindung zu einer Schiene im Inneren herzustellen. Ihr Leitungspfad und die interne Leistung Ihres Chips liegen also mindestens 1 Diodenabfall unter der zugeführten "Leistung" am Pin.

Sie können dies testen, indem Sie den Vcc-Pin messen, der etwa 0,7 V unter Vcc liegt.

Wenn Sie die Masse trennen, ziehen Sie weniger Strom durch die Schutzdioden und verschieben den Betriebspunkt der an die LED gelieferten Spannung. Aber ein bisschen, so dass dies möglicherweise nicht den Unterschied erklärt.

Die Schutzdioden sind für Stromstärken während eines ESD-Anschlags ausgelegt, sodass sie mit diesem kleinen Rinnsal gut zurechtkommen.

Wenn Sie den Chip auf diese Weise betreiben, besteht die Gefahr, dass Sie ein Einrasten auslösen. Die meisten Chips sind jedoch so konzipiert, dass sie unter diesen Bedingungen NICHT einrasten können, sodass dies nicht so wichtig ist. Aber eine Möglichkeit.

Eine weitere Gefahr hängt von der genauen Art des ESD-Schutzes auf dem Chip ab. Wenn es sich um einen Klemmstil handelt und Sie ein Ereignis mit hohem dV / dT haben, kann die Klemme ausgelöst werden und die Versorgung kurzschließen. Dies ist aber auch unwahrscheinlich.

Platzhalter
quelle
4
"Die Schutzdioden sind für Stromstärken während eines ESD-Anschlags ausgelegt, sodass sie mit diesem kleinen Rinnsal gut zurechtkommen." Dies ist ein trügerischer Standpunkt. Ein ESD-Schlag ist ein Übergang, der aus einer recht kleinen Ladung besteht, also einer geringen Energiedissipation, selbst wenn die momentane Spannung und der momentane Strom groß sind. Ein kontinuierlicher Stromfluss durch diese Dioden führt zu Wärmeproblemen, die während des ESD-Übergangs nicht auftreten.
Ben Voigt
3
"Die Schutzdioden sind für Stromstärken während eines ESD-Anschlags ausgelegt, sodass sie mit diesem kleinen Rinnsal gut zurechtkommen." Ich bin mir nicht sicher, ob ich damit einverstanden bin. Ich habe Datenblätter gesehen (z. B. spartanische Xilinx-FPGAs), mit denen Sie die Schutzdioden mit einem Vorwiderstand zur Pegelverschiebung verwenden können, aber einen relativ niedrigen Maximalstrom angeben, den Sie zur Dimensionierung des Widerstands verwenden müssen. IIRC würde die Grenze darin bestehen, nur eine einzelne LED zu beleuchten, obwohl dies eine feinkörnigere Technologie war. Daher könnte sie für diesen Teil höher sein, wenn Atmel sie charakterisieren würde.
Chris Stratton
2
Die offensichtliche Schlussfolgerung, dass dies impliziert, dass Sie den Chip sicher mit Strom versorgen können, folgt nicht. Warum teilt Ihnen Xilinx beispielsweise die Strombegrenzung durch Spartan 3-Schutzdioden mit, mit der Sie eine Vorspannung von nur 10 mA vorspulen können? xilinx.com/support/answers/19146.htm
Chris Stratton
2
@placeholder: Wer hat gesagt, dass "die Ströme während einer Veranstaltung niedrig sind"? Ein niedriger Widerstand in diesem Szenario verschlechtert die Erwärmung während des kontinuierlichen Flusses tatsächlich , da die Verlustleistung $ V ^ 2 / R $ beträgt. Dies steht im Gegensatz zu einem ESD-Ereignis, bei dem die übertragene Ladung ziemlich fest ist und der Widerstand die gesamte Energiedissipation nicht beeinflusst. Der niedrige Widerstand bietet, dass nur sehr wenig Ladung einen anderen Weg wählt. Aber dieser niedrige Widerstand im Pfad bedeutet nicht, dass es eine gute Wärmeableitung gibt ...
Ben Voigt
2
@placeholder: Bei Ihrer gesamten HBM-Analyse werden Annahmen getroffen, die auf kontinuierliche Ströme nicht anwendbar sind. Für ESD ist die Energie
qΔV
. Für diese Frage ist es
V2Rdt
Ben Voigt
0

Sie versorgen das Gerät wahrscheinlich über seine Schutzdioden mit Strom, ABER das Wichtigste ist, dass Sie etwas tun, das "illegal" und völlig außerhalb der Spezifikation liegt, und alles kann passieren, und Sie sollten sich nicht wundern, wenn dies der Fall ist.

Ihr Schaltplan ist FALSCH.
Dies ist der ECHTE Schaltplan, den Sie verwenden:

Geben Sie hier die Bildbeschreibung ein

Dies ist eine Hardwareversion von "Garbage In, Garbage Out".

Wenn Sie etwas Zufälliges tun und ein zufälliges Ergebnis erzielen, sollten Sie glücklich sein - das Universum funktioniert wie erwartet.

Mehr später vielleicht ...

Russell McMahon
quelle