Frage:
80 mA mit einem Mikrocontroller ohne Treiberschaltung versenken?
Flood Gravemind
2016-02-17 04:33:18 UTC
view on stackexchange narkive permalink

Ich habe mich gefragt, ob ein Mikrocontroller 20 mA an jedem Pin versenken kann, wenn ich per Software 4-Pin-Ports niedrig machen und nur die positive Seite der Last mit Vcc verbinden kann. Dies ist eine zuverlässige Methode, um größere Lasten anzutreiben ? Wäre das einzige, worüber Sie sich Sorgen machen und beten sollten, dass der Maschinenzyklus schnell genug ist, um die Schwankungen beim gleichzeitigen Setzen aller Stifte zu bewältigen? Bin ich auf dem richtigen Weg?

In vielen Umgebungen steht Großbuchstabe M für Mega ...
Der Chip hat auch einen maximalen Gesamterdstrom.Das sollten Sie nicht überschreiten!
Datenblattinformationen gelten im Allgemeinen als besser als das Beten.
@Daniel auf einem Arduino-Chip beträgt maximal 200 mA.
Was noch besser ist als Datenblätter oder Beten, ist das Testen.Verwenden Sie einen Strommesser und laden Sie die Stifte hoch und niedrig, um festzustellen, ob es heiß wird.Probieren Sie es jeweils 20 Minuten lang aus.Wenn es sich warm anfühlt, haben Sie das Limit erreicht.Ansonsten sollte es gut funktionieren, solange das Ding nicht zu heiß wird.Berechnen Sie auch alle 1 ms Fibonacci-Zahlen in einer Schleife.
@squarewav Bevor ich es versuche, habe ich eine Chance, es sei denn, ich möchte Amazon / ebay besuchen und 2 Tage warten, um wieder mit der Arbeit zu beginnen. Vielen Dank, dass Sie meinen Standpunkt verstanden haben.
Nun, Sie brauchen eine Art Last (z. B. 5 V über 250 R sind 20 mA).
*** Wie ist das nicht zum Thema?Es geht speziell um Elektronikdesign ***
@squarewav Wenn sich Ihre MCU durch die Beschaffung oder den Stromabfall an einem Pin warm anfühlt, haben Sie vor Stunden das Limit überschritten.Bei OP: Einfache Antwort lautet: Nein, Sie können Pins ohne Schutzwiderstände nicht parallel kombinieren, da Sie die internen Prozesse und Transistorabmessungen nicht an allen Pins kennen.Aufgrund der kombinierten Funktionen kann es auch Unterschiede zwischen den Pins geben.All dies kann frei laufen, wenn selbst kleine Hitze- oder Stromungleichgewichte auftreten, die ernsthaft gebrochene Chips verursachen.
Ich erinnere mich nicht, ob es sich bei Atmel oder TI um einen kleinen Hinweis zur Parallelisierung von GPIO für genau diesen Zweck handelt, hauptsächlich aufgrund des Spannungsabfalls durch zu hohen Stromverbrauch an einem einzelnen Pin.Solange der Gesamtstrom durch den vcc / gnd-Pin innerhalb der Spezifikation liegt und Sie die Pins immer in derselben Anweisung setzen, ist dies in Ordnung.Ein Darlington-Array wie das ULN2003A erwähnt speziell die Parallelisierung für eine höhere Kapazität pro Kanal.
Wir sind nicht hier, um Ihnen das Datenblatt vorzulesen.
Sechs antworten:
Ecnerwal
2016-02-17 04:55:15 UTC
view on stackexchange narkive permalink

Wenn Sie kein "Modul" kaufen möchten, sollten Sie 6 Cent (oder weniger) für einen Transistor ausgeben, der 200 oder 500 mA verbraucht und nur einen Pin für den Basissteuereingang belegt. Ich denke, 6 Cent habe ich für die letzte Charge von 2N3904 / 6 und 2N4401 / 2 in Losen von 100 bezahlt Gast.

Diese Teile sind weit entfernt von modernsten Teilen, aber sie machen eine bestimmte Art von Arbeit gut und sie sind ziemlich kostengünstig.

Das Problem ist wahrscheinlich nicht kostenpflichtig.Das Problem könnte eher Einfachheit, Platz und die Nichtverwendung von Dingen sein, die nicht wirklich notwendig sind.Sie würden auch einen Basiswiderstand benötigen, um den Strom in die Basis zu begrenzen.Selbst wenn es ein Mosfet wäre, würden Sie wahrscheinlich immer noch einen Gate-Widerstand wollen.Wenn Sie die Leistungsanforderungen wirklich gut verstehen, gibt es meiner Meinung nach viele Fälle, in denen Sie auf Außenborder verzichten können.
Passerby
2016-02-20 01:14:13 UTC
view on stackexchange narkive permalink

Es sollte gut funktionieren, aber Sie müssen einige Dinge beachten.

  1. Max VCC oder Max GND Strom. Es gibt einen maximalen Strom, den der Mikrocontroller über seinen VCC- oder GND-Pin unterstützen kann.
  2. Maximaler Portstrom. Ein einzelner Port hat ebenfalls einen maximalen Strom.
  3. Pin ESR. Ein GPIO-Ausgang hat einen Spannungsabfall (oder -anstieg), der davon abhängt, wie viel Strom durch ihn fließt. In der Regel gilt der empfohlene maximale Strom durch den Pin für eine bestimmte Ausgangsspannung im Vergleich zu VCC oder GND.
  4. ol>

    enter image description here
    Beispiel: Die MSP430G2xxx-Familie Der niedrige Spannungsausgang steigt von Gnd um 1 Volt auf ~ 30 mA.

    Wenn Ihre Last innerhalb dieser Spezifikationen liegt, die Ihr 80-mA-Lastbeispiel für ATMega-Mikrocontroller sein sollte, dann verhindert das andere Problem Shorts.

    Sie müssen sicherstellen, dass Sie den gesamten Port auf einmal ändern, anstatt jeweils einen Pin. Wenn Sie jeweils nur einen Pin ändern, von Niedrig zu Hoch oder Hoch zu Niedrig, können Sie einen toten Kurzschluss zwischen den Pins erzeugen, indem Sie einen oder mehrere von ihnen durchbrennen. Abhängig vom Standardzustand der Pins, wann Beim Starten, bevor Ihr Code sie festlegen kann, ist dies ohne zusätzliche Teile möglicherweise nicht vermeidbar. Versuchen Sie auch, es auf einen einzelnen Port isoliert zu halten, da es schwierig ist, mehrere Ports gleichzeitig zu wechseln, und Spannungsunterschiede zwischen den Ports auftreten können.

    In der Regel hilft es, Vorwiderstände an den Pins zu haben . Diese Widerstände enden ebenfalls parallel zu jedem Pin, wodurch der Strom zwischen ihnen reguliert werden kann.

    Angenommen, Sie möchten die 80-mA-Last gleichmäßig auf 4 Pins legen, dann sind das 4 zusätzliche Teile als Schutz. An diesem Punkt können Sie auch einfach ein einzelnes Transistor + Widerstandspaar verwenden.

    Bei sorgfältiger Codierung sollten Sie diese nicht benötigen, und paralleles GPIO funktioniert einwandfrei, wenn der Strom sinkt.

    Open Collector-Ausgänge, die nur niedrig sein können, haben keine Probleme mit Kurzschlüssen, sollten aber gleichzeitig geändert werden. Wenn Sie sie nicht gleichzeitig ändern, kann der Strom nur über einen einzigen Ausgang ausgegeben werden. Dies führt zu Problemen, wenn kein Strombegrenzer vorhanden ist. Ein typischer Mikrocontroller-GPIO ist kein Open Collector, aber Sie können ihn nachahmen, indem Sie nur zwischen dem Eingangsmodus mit niedriger und hoher Impedanz wechseln.

Wenn das OP nur Strom senkt, wie die Frage impliziert, und die Pins als Open-Drain konfiguriert sind, werden die Pins nicht kurzgeschlossen, selbst wenn sie nicht alle gleichzeitig geschaltet wurden.Die Pins sollten jedoch gleichzeitig geschaltet werden, um die Last über alle zu verteilen (es sei denn, sie befinden sich nicht alle am selben Port).
@tcrosley aber die meisten mcu gpio sind Push-Pull, nicht offener Abfluss.Aber das werde ich auch hinzufügen.
@Passerby - Die meisten MCUs bieten eine Open-Drain-Ausgangskonfiguration, und selbst diejenigen, die nicht den gleichen Effekt erzielen können, werden durch Verwendung der Ausgangsfreigabe / -richtung anstelle des Pin-Datenregisters erzielt.Tatsächlich schreiben Sie das Pin-Datenregister auf einen niedrigen Wert, während es ein Eingang ist, und * setzen * es dann als Ausgang.
@ChrisStratton ja, deshalb habe ich gesagt, es nachzuahmen.Aber wirklich?Die 3 häufigsten MCUs, die ich kenne, sind Atmel, TI und Microchip, und ich habe keine Open-Collector-Ausgänge auf ihnen gesehen.
Das sind Marken, keine MCUs.
Ja, Marken mit mehreren MCU-Linien und so ziemlich alle mit demselben Standard-GPIO-Setup ... Sie wissen, was ich meinte.
Voltage Spike
2016-02-17 04:52:26 UTC
view on stackexchange narkive permalink

Verbinden Sie niemals einen digitalen Port mit Masse, wenn er gedrückt wird, oder Vcc oder Masse, wenn er offen ist. Überprüfen Sie das Datenblatt. Ich denke, das Raspel-Pi hat kein Datenblatt, aber die Informationen sind da draußen. Das Sinken unterscheidet sich vom Sourcing. Wenn Sie einen Open-Drain-Ausgang haben, können Sie manchmal mehr Strom verbrauchen als ein Push-Pull. Mit einer parallelen Open-Drain-Konfiguration können Sie möglicherweise etwas mehr davonkommen, da Sie nicht viel Strom im Chip verbrauchen, aber dennoch durch die Drahtbreite begrenzt sind. Wenn Sie darüber hinausgehen, erwärmt sich dieser und wegbrennen.

Mit Push-Pull ist dies im Allgemeinen eine schlechte Idee. Sie können Pins an Ihrem Prozessor parallel schalten, um mehr Strom zu erhalten, aber Sie erhalten keinen höheren Strom durch das Vcc Io oder das I / O Spannungsversorgungsstift. In einigen Fällen geben digitale Geräte eine aktuelle Bewertung des Vccio und des Pins selbst an. Überschreiten Sie diese Bewertungen nicht.

Scott Seidman
2016-02-19 22:50:34 UTC
view on stackexchange narkive permalink

Für mich ist es trotz der Idee, dass es funktionieren könnte, wenn alles gut geht, eine wirklich schlechte Idee, weil es so einfach wäre, Dinge zu rauchen, wenn eine Codezeile falsch ist oder beim Herunterladen von Code etwas Schlimmes passiert ist. Nur schlechte Praxis

Techydude
2016-02-21 08:47:51 UTC
view on stackexchange narkive permalink

Raten Sie nicht, beten Sie nicht, testen Sie nicht, folgen Sie einfach dem Datenblatt und behandeln Sie es als Ihren Gott.

Obwohl ich zustimme, kann es ein bisschen esoterisch sein, jeder Stift oder Für die Kategorie der Stifte werden maximale Ströme empfohlen (entweder & beziehen oder sinken). Es gibt wahrscheinlich auch Höchstwerte für den gesamten Port von 8/16/32 Pins und / oder eine maximale Quelle / Senke für die I / O-Pins des gesamten Chips. Lesen Sie das Datenblatt, rechnen Sie nach und erhalten Sie die Antwort. Um die Sache noch weiter zu verkomplizieren, können Sie mit einigen MCUs programmieren, mit wie viel maximaler Senken- / Quellenstrom sie arbeiten (z. B. die E / A auf der TI-MCU eines BeagleBone). Alle von Ihnen erwähnten Plattformen / MCUs sind unterschiedlich.

Es besteht die Gefahr, einfach mehrere E / A-Pins miteinander zu verbinden und ihre kombinierte Strombeschaffungs- oder -senkungsfunktion zu verwenden, und es handelt sich nicht um den Pro-Port oder den Pro-Chip Maxima, die ich oben erwähne; MCUs sind nicht als Power-Shunt-Geräte gedacht, deshalb werden sie als Mikrocontroller bezeichnet. Es ist:

(a) Was passiert mit diesen E / A, wenn sich der Chip im RESET befindet? Die meisten gehen auf einen hochohmigen Eingang, was wahrscheinlich in Ordnung ist, aber manchmal hat ein Pin einen besonderen Zweck, der während oder unmittelbar nach einem Reset ins Spiel kommen kann. In diesem Fall, was wird Ihre Schaltung in dieser Zeit tun, & wie viel Strom durch diesen Pin?

(b) die Technik, mit der Sie diese E / A-Pins setzen / löschen: Haben Sie nur die Pins von 1 Port verwendet? In diesem Fall können Sie ein Byte / Wort in das E / A-Register schreiben und setzen / löschen sie alle auf einmal, also werden sie alle auf einmal dirigieren - großartig. Wenn Sie jedoch die Last auf Pins von mehreren E / A-Ports (dh Port A & Port B) verteilen, sind mehrere Registerschreibvorgänge erforderlich, die nacheinander ausgeführt werden. Dies bedeutet, dass die ersten Pins / Ports, die geschrieben werden, zuerst leiten und die Summe tragen Strom, dann wird der Strom erst dann, wenn der nächste / letzte Port geschrieben ist, ungefähr gleichmäßig auf alle Pins verteilt, mit denen Sie verbunden sind. Wenn Sie dies tun, indem Sie jeweils einen einzelnen Pin schreiben (z. B. Arduinos "didtalWrite (Pin, State)", leitet dieser erste Pin den VOLLSTÄNDIGEN Strom, bis die nachfolgenden Pins des 2. & geschrieben werden. Dies ist alles SCHLECHT und wahrscheinlich die MCU zu töten, wenn nicht sofort, dann gut innerhalb ihrer erwarteten Lebensdauer.

Die Lösung ist einfach. Holen Sie sich einen NPN-Transistor oder einen N-ch-MOSFET mit geeigneter Spezifikation und schließen Sie dessen Basis / Gate an Schließen Sie den Collector / Drain an den I / O-Pin der MCU an (und berechnen Sie einen geeigneten Vorwiderstand zwischen den beiden) und verbinden Sie den Emitter / Source mit Masse. 1 I / O-Pin , 1 Transistor, gut für alles ab zehn mA & darüber hinaus. Es gibt weitere Fragen zu SE, wie dies im Detail zu tun ist.

Hin und wieder ist das Datenblatt nicht Gott.Ich gebe Ihnen dieses Beispiel: http://www.ti.com/lit/ds/symlink/lm4040-n.pdf.Schließen Sie das TO-92-Paket gemäß der Pinbelegung auf Seite 4 an. Hat nicht funktioniert.Das liegt daran, dass das Datenblatt falsch ist.Es ist nicht die Draufsicht, es ist die Unteransicht.Eine ältere Version desselben Datenblatts macht es richtig: https://www.adafruit.com/datasheets/lm4040-n.pdf
Niemand ist perfekt, nicht einmal Chipdesigner-Gurus, und Sie können seltene Ausnahmen anführen, bis die Kühe nach Hause kommen, aber relativ zu allen anderen Vorschlägen (in dieser Frage und insbesondere ist es falsch, zu Arduino.SE zu springen, wo ich darauf geantwortet habe).Das Datenblatt ist Gott verglichen mit Raten, Beten und noch schlimmer "Testen", indem es immer mehr Strom zieht, bis sich der Chip erwärmt (ein Fall von "Sie kennen die Linie, die Sie nicht überqueren sollen? Schauen Sie hinter sich.". ")
Ich weiß nicht, ob Sie angesichts von Willis 'Gegenbeispiel mit dem Argument "Datenblatt ist Gott" davonkommen können.Das "Datenblatt ist dein Gott" zu sagen ist wie zu sagen "Der Honda Civic ist zweifellos das beste Fahrzeug auf vier Rädern, das jemals von Menschenhand entworfen wurde", weil Sie diesen Civic mit alten verrosteten Fahrrädern vergleichen.Setzen Sie zumindest eine Fußnote ein, die erklärt, dass Datenblätter wirklich direkt neben Godliness stehen (direkt neben "Cleanliness").
Das ist eine semantische Selbstkennzeichnung, die ich bereits in meiner Antwort an Willis angesprochen habe.
Peter Green
2016-02-21 20:52:34 UTC
view on stackexchange narkive permalink

Einige Bedenken kommen in den Sinn.

  1. Was ist, wenn Sie einen Fehler im Code machen und einen Pin hoch fahren, während ein anderer niedrig ist? Sie können jetzt über ein Paar E / A-Pins kurzschließen, was nicht gut ist.
  2. Gibt es Einschränkungen hinsichtlich des maximalen Gesamtstroms für die E / A-Pins? Wenn ja, befinden Sie sich innerhalb dieser Grenzen.
  3. Wie gut sind die Ansteuertransistoren ausgeglichen? I.E. Wie nahe an der Gleichheit werden sie anfänglich den Strom teilen.
  4. Wie hoch ist der Temperaturkoeffizient der Ausgangstransistoren? Da ein unausgeglichener Strom eine ungleiche Erwärmung der Ausgangstransistoren verursacht, wird die Strombilanz besser oder schlechter.
  5. ol>

    Problem 1 ist meistens ein Fall davon, wie viel Zustand Sie in Ihrem eigenen Code haben. Bedenken 2 können Datenblätter beantworten, aber ich glaube nicht, dass ich jemals ein Datenblatt gesehen habe, das die Fragen 3 und 4 beantwortet.

    Daher würde ich diese Konfiguration nicht empfehlen. Verwenden Sie einen externen Transistor, um die Last zu schalten.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...