Hi, Sehr oft sieht man bei IC's irgendwelche Signale für die Konfiguration. Also z.B. "Output Enable" oder I²C-adressbits welche man auf GND oder VCC ziehen muss. Warum wird der entsprechende Pin sehr oft mit einem Widerstand auf GND oder VCC gezogen? Warum nicht direkt? Ginge in den allermeisten fällen ja auch oder? Man könnte sich da ja einiges an Bauteilen auf dem PCB sparen. mfg
damit man den Pin noch schalten kann
Alexander schrieb: > damit man den Pin noch schalten kann Wenn man aber weiss, dass dieser fix so bleibt, kann man also den Widerstand ohne weiteres weglassen?
bei GND auf jeden Fall, bei VCC dient das auch der Strombegrenzung da musste ins Datenblatt schauen was sinnvoll ist
Weil man sich Optionen offen halten will, gerade bei I2C Adress-Pins kann man den Widerstand leicht entfernen und am PAD einen Draht anlöten und mit GND verbinden. Leiterbahnen durchkratzen ist nämlich uncool. Ich nehme mittlerweile nur noch 3-polige Lötjumper für I2C Adress-Pins mit einer bestimmten Vordefinition (meist GND). Ein weiteres Beispiel: Es sind ungenutzte IOs, die legt man oft via 100K auf GND damit man sie aus Stromspargründen auf Input schalten kann und nichts in der Luft hängt. Sollte in SW mal Mist passieren (beim EMV Test) und der Pin versehentlich auf HIGH geschaltet werden, dann passiert der Hardware nichts. Würde er hart auf GND hängen wäre das in dem Moment schlecht. Irgendwann muss man die Schaltung ja auch mal entwickeln und da spart man sich mit "Angstwiderständen" dann doch den ein oder anderen kaputten IC. Ein Bauteil nicht zu bestücken ist in der Serienproduktion kein Problem, ein eventuell fehlenden Widerstand nachträglich hinzuzufügen erfordert ein neues Layout und das kostet unter umständen richtig viel Geld. Oftmals ist es also weise Voraussicht/Erfahrung des Entwicklers. VG Paul
warum sollten ungenutzte IOs nicht in der Luft hängen, die würde ich gar nicht verbinden (außer für weise Voraussicht/Erfahrung) Alexander schrieb: > bei VCC dient das auch der Strombegrenzung da musste ins Datenblatt schauen was sinnvoll ist war Quatsch, kannste auch machen https://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen#Pullup-Widerstand
:
Bearbeitet durch User
Alexander schrieb: > warum sollten ungenutzte IOs nicht in der Luft hängen, die würde ich gar > nicht verbinden Weil sie dann Radiowellen empfangen und verstärken, was die Stromaufnahme des IC unnötig erhöht.
Alexander schrieb: > warum sollten ungenutzte IOs nicht in der Luft hängen, die würde ich gar > nicht verbinden (außer für weise Voraussicht/Erfahrung) Kommt halt immer drauf an was man grade in der Mache hat. In vielen Fällen ist es auch kein Problem, aber spätestens beim EMV Test bist du froh wenn nichts in der Luft hängt sondern definierte Zustände hat. Oftmals steht es ja auch im Datenblatt, ob der Pin frei schweben darf oder ob es die "dringende Empfehlung" seitens Hersteller gibt, dass aktiv zu unterbinden via PullDown oder PullUp. VG Paul
Viele dieser Widerstände an Enable Leitungen irgendwelcher Peripherie dienen dazu einen definierten Zustand herzustellen. Bei vielen Controllern gibt es keinen definierten Zustand, wenn der Rechner im Reset ist oder die Port Konfiguration noch nicht abgearbeitet hat. Dann sind auch die Zustände der Pins meist undefiniert. (Es gibt aber auch einige Controller, welche eine permanent aktive schwache Stromquelle z.B. nach VCC haben.) Um zu verhindern, dass dann auch die restliche HW in einen undefinierten Zustand geht, wird mit Widerständen ein definierter Zustand erzeugt. Dieser wird dann später, wenn die Pins konfiguriert sind, durch die stärkeren Pins überschrieben. Stell dir z.B. eine schwere Maschine vor. Du willst bestimmt nicht, dass da irgend ein Motor los läuft und jemanden verletzt, nur, weil aus irgend einem Grund, ein Reset ausgelöst wird und du bei einem Widerstand sparen wolltest.
Alexander schrieb: > bei GND auf jeden Fall, bei VCC dient das auch der Strombegrenzung da > musste ins Datenblatt schauen was sinnvoll ist Vor Jahrzehnten stand bei SN74xx (ohne LS oder sonstwas) in den Familiendaten, dass man offene Eingänge nicht direkt an Plus legen soll. Bei CMOS ist mir dieser Hinweis noch nicht begegnet. Paul schrieb: > Ein weiteres Beispiel: Es sind ungenutzte IOs, die legt man oft via 100K > auf GND damit man sie aus Stromspargründen auf Input schalten kann und > nichts in der Luft hängt. Ich mag mir nicht vorstellen, dass bei einem CMOS-µC ein offener Ausgang mehr Strom als ein beschalteter Eingang verursacht. Paul schrieb: > Würde er hart auf GND hängen wäre das in dem Moment schlecht. Irgendwann > muss man die Schaltung ja auch mal entwickeln und da spart man sich mit > "Angstwiderständen" dann doch den ein oder anderen kaputten IC. Da stimme ich Dir vollkommen zu. Stefan F. schrieb: > Alexander schrieb: >> warum sollten ungenutzte IOs nicht in der Luft hängen, die würde ich gar >> nicht verbinden > Weil sie dann Radiowellen empfangen und verstärken, was die > Stromaufnahme des IC unnötig erhöht. Beim Arduino lasse ich sie offen:
1 | pinMode (open_Pin_7, OUTPUT); |
2 | digitalWrite (open_Pin_7, LOW); |
3 | pinMode (open_Pin_8, OUTPUT); |
4 | digitalWrite (open_Pin_8, LOW); |
Bei anderen Bausteinen gehören Eingänge definiert, ich habe erst neulich ein fertiges Gerät wieder zerlegt, weil ich beim Test der Software zwei offene Eingänge am ADS11115 entdeckt habe, beim Löten einfach übersehen.
Manfred schrieb: > Vor Jahrzehnten stand bei SN74xx (ohne LS oder sonstwas) in den > Familiendaten, dass man offene Eingänge nicht direkt an Plus legen soll. > Bei CMOS ist mir dieser Hinweis noch nicht begegnet. Bei den Original-TTL war AbsMax vom Pin mit 5,5V niedriger als die 7,0V AbsMax von VCC.
Christian L. schrieb: > Viele dieser Widerstände an Enable Leitungen irgendwelcher Peripherie > dienen dazu einen definierten Zustand herzustellen. Nicht nur an Enable-Leitungen. Auch bei vielen Logikbauteilen ist das wichtig. Vor allem während des Einschaltens, wo erstmal Strom in verschiedenen Kapazitäten verschwinden muß bevor es eine stabile Versorgungsspannung gibt. Und auch z.B. an den Eingängen von FET-Treibern sorgt ein Widerstand für klare Verhältnisse, wenn der Mikrocontroller noch in seiner Konfigurationsphase ist und die Pins noch im Reset-Zustand, z.B. High-Z oder so, sind. Das wäre schlecht wenn da ungewollt z.B. ein Leistungstransistor durchschaltet, nur weil überflüssige Ladung am Gate ansteht.
Beitrag #7257346 wurde von einem Moderator gelöscht.
Manuel N. schrieb: > Warum wird der entsprechende Pin sehr oft mit einem > Widerstand auf GND oder VCC gezogen? Automatische Testsysteme wollen Netzknoten "überfahren" um Teststimuli zu erzeugen. Bei Ausgängen geht das, bei fest an GND oder VCC angebundenen Knoten (Eingänge) jedoch nicht.
Manuel N. schrieb: > Also z.B. "Output Enable" oder I²C-adressbits welche man auf GND oder > VCC ziehen muss. Warum wird der entsprechende Pin sehr oft mit einem > Widerstand auf GND oder VCC gezogen? Warum nicht direkt? Bei Stückzahlen kann man hier die Konfiguration ohne "Nacharbeit" oder Änderungen anpassen. R42 wird dann einfach nicht bestückt. Bei Automaten spielt das preislich keine Rolle, gegenüber anderem Layout oder manueller Lötbrücke.
Manfred schrieb: > Beim Arduino lasse ich sie offen:pinMode (open_Pin_7, OUTPUT); Kann man machen, aber nicht immer. Stelle dir mal vor, dein Arduino ist 99,99% im Tiefschlaf. Irgendein externes Signal weckt ihn auf, dann läuft der Quarz-Oszillator hoch, dann startet die CPU, führt 20 Befehle aus und legt sich wieder schlafen. In dem Fall dauert das Hochfahren des Oszillators länger als die 20 Befehle. In den Zeitspannen wo der µC erwacht ist, sind die I/O Pins die meiste Zeit hochohmig offen. Nur für die kurze Dauer der 20 Befehle haben sie einen definierten Zustand.
Manfred schrieb: > Paul schrieb: >> Ein weiteres Beispiel: Es sind ungenutzte IOs, die legt man oft via 100K >> auf GND damit man sie aus Stromspargründen auf Input schalten kann und >> nichts in der Luft hängt. > > Ich mag mir nicht vorstellen, dass bei einem CMOS-µC ein offener Ausgang > mehr Strom als ein beschalteter Eingang verursacht. Es ist nicht der Ausgang, sondern die CMOS-Eingangsstufe, die viel Strom ziehen kann, wenn bei schwebendem Eingang die beiden komplementären Transistoren gleichzeitig angesteuert werden. Durch die dann auftretende Verlustleistung kann sogar das IC beschädigt werden.
Hp M. schrieb: > wenn bei schwebendem Eingang die beiden komplementären > Transistoren gleichzeitig angesteuert werden. Na Na.... Da übertreibt mal einer. Da geht nix kaputt. AVR? Schmitttrigger Eingang? Also nix gleichzeitig. Aber im steten Wechsel, damit häufige Gateumladung und die ist es, die Strom frisst. Mein Rat, wenn man auf das bisschen angewiesen ist, bei allen offenen Inputs Pullup aktivieren. Das bleibt auch im deep sleep erhalten.
EAF schrieb: > Mein Rat, wenn man auf das bisschen angewiesen ist, bei allen offenen > Inputs Pullup aktivieren. Das bleibt auch im deep sleep erhalten. Je nach Microcontroller schlechter Rat, denn es gibt viele Controller bei denen die Pullupeinstellung einen Reset nicht überlebt. Also dringend das Datenblatt lesen. Auch was die Stromaufname betrifft ist das Datenblatt wichtig. Auch ein Schmitt-Trigger Eingang kann zu mehr Stromverbrauch führen wenn er mit Pegeln zu tun hat die im Bereich zwischen High und Low liegen.
Ich sehe, wir kommen hier vom Hundertsten ins Tausendste. Nochmal zur
Ausgangsfrage:
>> Warum werden Konfigurationssignale an IC's immer mit einem Widerstand auf VCC
oder GND gezogen?
Das ist nicht so. Insbesondere werden sie nicht immer mit einem
Pullup- oder Pulldown-Widerstand auf den gewünschten Logikpegel gezogen.
In der TTL-Ära (seit ca. 30 Jahren vorbei) wurde für H noch ein
Widerstand nach Vcc empfohlen. Weil die maximale Eingangsspannung von
5.5V etwas kleiner ist als die maximal erlaubte Betriebsspannung mit 7V.
Ich halte das für Kokolores. Zum einen sind auch 5.5V für die
Betriebsspannung außerhalb es empfohlenen Bereichs von 5V ±5%.
Zum zweiten geht es ja um die BE Strecke des typischen Multiemitter-
Transistors am Eingang eines TTL-Gatters. Nur bricht eine BE-Strecke in
Sperrichtung nicht bei 5.5V durch, sondern eher bei 7V. Und es liegt
auch noch mindestens eine BE-Strecke in Durchlassrichtung in Reihe. Und
für Logikreihen (oder Gatter) ohne den Multiemitter-Eingang (z.B. LS)
gilt die Empfehlung schon gar nicht.
Abgesehen davon kann es natürlich andere Gründe geben, einen
Logikpegel mit einem Widerstand "sanft" auf einen Default zu legen. Dann
kann man ihn "hart" übersteuern.
Ein Beispiel sind oft Adresseingänge, die man noch konfigurieren können
will. Da nimmt man dann einen Pullup-Widerstand für H und einen
Lötjumper für L. Man könnte zwar auch zwei Lötjumper vorsehen, aber dann
besteht die Gefahr, daß man vergißt einen zu setzen und dann schwebt der
Eingang in der Luft. Oder man setzt versehentlich beide und schließt so
Vcc mit GND kurz. Will man auch nicht haben.
:
Bearbeitet durch User
rmf schrieb: > Je nach Microcontroller schlechter Rat, denn es gibt viele Controller > bei denen die Pullupeinstellung einen Reset nicht überlebt. > Also dringend das Datenblatt lesen. Aus dem Grund fixierte ich meine Aussage auf AVR und deep sleep! Hast du das übersehen? rmf schrieb: > Auch was die Stromaufname betrifft ist das Datenblatt wichtig. > Auch ein Schmitt-Trigger Eingang kann zu mehr Stromverbrauch führen wenn > er mit Pegeln zu tun hat die im Bereich zwischen High und Low liegen. Mein Reden! Aber das führt nicht zu dem prognostizierten Tod der Eingangsstufe. Siehe: Hp M. schrieb: > gleichzeitig angesteuert .... kann sogar das IC beschädigt
EAF schrieb: > Schmitttrigger Eingang? > Also nix gleichzeitig. > Aber im steten Wechsel, damit häufige Gateumladung und die ist es, die > Strom frisst. Auch statisch kann dabei ziemlich viel Strom fließen. Den Rekord hält wahrscheinlich die 74AHC-Familie, typisch über 5mA pro Eingang!
:
Bearbeitet durch User
Bauform B. schrieb: > EAF schrieb: >> Schmitttrigger Eingang? >> Also nix gleichzeitig. >> Aber im steten Wechsel, damit häufige Gateumladung und die ist es, die >> Strom frisst. > > Auch statisch kann dabei ziemlich viel Strom fließen. Den Rekord hält > wahrscheinlich die 74AHC-Familie, typisch über 5mA pro Eingang! Achtung! Das ist nicht der Eingangsstrom (Stichwort: Gateumladung) sondern der Strom, der aus der Stromversorgung aufgenommen wird. Dazu schaue man sich die grundlegende Struktur eines CMOS-Inverters an (Grundlagen!). Bei einem Eingangspegel nah an GND (L) bzw. nah an Vcc (H) leitet nur einer der beiden MOSFET. Dazwischen und besonders extrem bei Vcc/2 leiten aber beide MOSFET. Es ist nur der Tatsache zu verdanken, daß die MOSFET extrem klein sind und damit der R_ds_on hoch, daß dabei nur ein paar mA fließen. Typischerweise sind direkt an den Eingängen und direkt an den Ausgängen einer CMOS-Logikschaltung solche Inverter. Am Eingang zur Pegel- Konvertierung und am Ausgang als Treiber. Diese Neuerung kam mit dem Wechsel von ungepufferter (4000A-Reihe) zu gepufferter Logik (4000B-Reihe). Aktuelle Typen sind wie gesagt alle gepuffert.
Axel S. schrieb: > Achtung! Das ist nicht der Eingangsstrom (Stichwort: Gateumladung) > sondern der Strom, der aus der Stromversorgung aufgenommen wird. Natürlich, aber im Extremfall, mit allen 8 Eingängen auf VDD/2, zieht der 74AHC132 über 40mA mehr als normal. Ich schalte unbenutzte Eingänge gerne parallel zum aktiven - aber nicht bei solchen Bausteinen.
Manuel N. schrieb: > Warum wird der entsprechende Pin sehr oft mit einem > Widerstand auf GND oder VCC gezogen? Hast Du dafür mal konkrete Beispiele. Z.B. im Datenblatt des AT24C512 steht das genaue Gegenteil: "The A0, A1 and A2 pins are device address inputs that are hard-wired (directly to GND or to VCC) for compatibility with other two-wire Serial EEPROM devices."
Bauform B. schrieb: > Axel S. schrieb: >> Achtung! Das ist nicht der Eingangsstrom (Stichwort: Gateumladung) >> sondern der Strom, der aus der Stromversorgung aufgenommen wird. > > Natürlich, aber im Extremfall, mit allen 8 Eingängen auf VDD/2, zieht > der 74AHC132 über 40mA mehr als normal. Ich schrieb das auch nicht für dich, sondern für den hier: EAF schrieb: > im steten Wechsel, damit häufige Gateumladung und die ist es, die > Strom frisst. Auf deinen Post hatte ich mich nur bezogen, weil du die Diagramme I_cc vs. U_I drin hattest.
Hp M. schrieb: > Durch die dann auftretende Verlustleistung kann sogar das IC beschädigt > werden. Habe ich noch nie erlebt. Erhöhte Stromaufnahme ja, aber nicht so viel. Interessanter finde ich die Stromaufnahme, wenn so ein Eingang auf Radiowellen reagiert und mit schwingt. Das treibt die Stromaufnahme ebenfalls in die Höhe.
Stefan F. schrieb: > Habe ich noch nie erlebt. Und dennoch gibt es das. > Erhöhte Stromaufnahme ja, aber nicht so viel. Schon gehabt bis zum thermischen degrading der Eingangsstufe. Nur weil es so selten bei Dir vorkommt: Andere Entwickler haben das "Erlebnis" mehrfach im Arbeitsleben.
Ich kann nur für mich und meine Projekte sprechen. Konfigurations-Pins lege ich immer direkt auf Masse und lese sie dann mit aktiviertem internen PullUp ein. Das ist zwar nicht sicher falls das Programm Mist baut und so einen Pin auf Ausgang mit Vcc schaltet, aber ich habe noch niemanden gesehen, der z.B. seine DIP-Schalter mit 330 Ohm oder so nach Masse schaltet. Ungenutzte IO-Pins verbinde ich mit nichts, sondern definiere sie als Ausgang und schalte sie nach GND. Dann können sie sich keine Störungen einfangen und im Falle eines Softwarefehlers kann dieser hier keinen Schaden an der Hardware machen. Dazu bleiben mir Optionen für eine spätere Nutzung weiterer Pins bei späteren Softwareständen, die sich dann evtl. auch in der alten Hardware verwenden lassen. Wenn das nicht geht bzw. Eingänge nicht als Ausgang definiert werden können, dann bekommen sie einen recht niederohmigen PullUp oder ich verlasse mich auf den internen PullUp, manchmal spricht auch nichts dagegen, sie auf Vcc oder so zu legen, beispielsweise beim Reset-Pin des AVR habe ich das oft gesehen wenn der µC nicht in der Schaltung programmiert werden soll.
Stefan F. schrieb: > Hp M. schrieb: >> Durch die dann auftretende Verlustleistung kann sogar das IC beschädigt >> werden. > > Habe ich noch nie erlebt. Erhöhte Stromaufnahme ja, aber nicht so viel. Hast du denn jemals die Standard CMOS mit den erlaubten 15V betrieben? Die Transistoren werden bei der massiven Ansteuerung deutlich niederohmiger, und zusammen mit der hohen Spannung erreicht die Verlustleistung und die Chiptemperatur evtl Werte, die jenseits des Zulässigen liegen. Axel S. schrieb: > In der TTL-Ära (seit ca. 30 Jahren vorbei) wurde für H noch ein > Widerstand nach Vcc empfohlen. Weil die maximale Eingangsspannung von > 5.5V etwas kleiner ist als die maximal erlaubte Betriebsspannung mit 7V. > Ich halte das für Kokolores. Zum einen sind auch 5.5V für die > Betriebsspannung außerhalb es empfohlenen Bereichs von 5V ±5%. > > Zum zweiten geht es ja um die BE Strecke des typischen Multiemitter- > Transistors am Eingang eines TTL-Gatters. Nur bricht eine BE-Strecke in > Sperrichtung nicht bei 5.5V durch, sondern eher bei 7V. Und es liegt > auch noch mindestens eine BE-Strecke in Durchlassrichtung in Reihe. Und natürlich hast du dabei auch Exemplarstreungen und Temperatureinflüsse berücksichtigt, sowie Reflexionen und Überschwingen auf den benutzten Eingangsleitungen. Die Empfehlung galt ja nicht nur für die 74er, sondern auch für die 54-er Serie mit dem Militärischen Temperaturbereich. TI hatte das sicher nicht aus Übermut ins Datenbuch geschrieben.
Hp M. schrieb: > Hast du denn jemals die Standard CMOS mit den erlaubten 15V betrieben? Nein habe ich nicht. Es leuchtet mit ein, dass der Effekt mit höherer Spannung wesentlich stärker sein kann. 12V hatte ich öfters, aber ohne offene Eingänge.
Manfred schrieb: > Beim Arduino lasse ich sie offen:
1 | pinMode (open_Pin_7, OUTPUT); |
2 | digitalWrite (open_Pin_7, LOW); |
3 | pinMode (open_Pin_8, OUTPUT); |
4 | digitalWrite (open_Pin_8, LOW); |
Was ist daran offen? Das sind auf GND gelegte Ausgänge. Irgendwas kommt ran > Kurzzchluss.
Damit der Strom beim Kurzschluss nicht durch das IC fließt, sollte man solche Pins per Leiterbahn hart auf GND legen. Bonus: Das IC bekommt zusätzliche GND-Pins. Ja, ok, da ist noch ein FET dazwischen, aber immerhin... Echt jetzt: das scheint mir die beste Lösung zu sein.
Man sollte immer einen Kurzschluss vermeiden. Wenn hart auf Masse, ggf. Programmierfehler, Ausgang auf Plus, Ergebnis Kurzschluss. Solchen Unsinn hart auf Potential macht man einfach nicht.
> Was ist daran offen? Das sind auf GND gelegte Ausgänge. > Irgendwas kommt ran > Kurzzchluss. Das ist in meinen Augen kein Argument. Wenn auf einer Platine irgendwas leitfähiges unvorhergesehenermaßen irgendwo drankommt, endet das zwangsweise im Fiasko bzw. die Platine überlebt sowas grundsätzlich nur mit Glück.
Hp M. schrieb: > Axel S. schrieb: >> In der TTL-Ära (seit ca. 30 Jahren vorbei) wurde für H noch ein >> Widerstand nach Vcc empfohlen. Weil die maximale Eingangsspannung von >> 5.5V etwas kleiner ist als die maximal erlaubte Betriebsspannung mit 7V. >> Ich halte das für Kokolores. > Und natürlich hast du dabei auch Exemplarstreungen und > Temperatureinflüsse berücksichtigt, sowie Reflexionen und Überschwingen > auf den benutzten Eingangsleitungen. Reflexionen und Überschwingen auf hart an Vcc gelegten Eingängen halte ich für ... unwahrscheinlich. Das wäre vielmehr ein weiteres Argument gegen den Widerstand. Denn bei Signalleitungen, wo Überschwinger tatsächlich auftreten können, wird ja auch kein derartiger Widerstand vorgesehen. > TI hatte das sicher nicht aus Übermut ins Datenbuch geschrieben. TI mußte ja auch die Konsequenzen nicht ausbaden. Die haben sich einfach eine Hintertür offen gehalten, damit sie im Zweifel nicht schuld waren. Man muß es doch realistisch sehen: bis 5.5V Eingangsspannung ist alles total sicher. Aber bis zu Vcc=7V bei der ein TTL-IC abfackelt, da brennt auf einmal die Hütte. Das können die jemandem erzählen, der sich die Hosen mit der Kneifzange anzieht. Zumal ich wie gesagt einen Eingang einfach mit Vcc verbinden wollte. Nicht etwa mit einer externen Spannungsquelle. Und versteh mich recht: wenn ich kommerziell oder in größerem Umfang TTL-Logik verbaut hätte, dann hätte ich mich daran gehalten. Aber in der Zeit vor 30 (eher 40) Jahren habe ich mit TTL nur gebastelt. Rundenzähler für die Autorennbahn und so was. Wenn ich 50 IC der originalen 74er Reihe verbaut habe, dann ist das viel. Das wurde ganz schnell 74LS, sobald die verfügbar waren. Und dann CMOS.
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.