Warum werden Konfigurationssignale an IC's immer mit einem Widerstand auf VCC oder GND gezogen?

#7257157
Lesenswert?

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
Gast #7257170
Lesenswert?

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
Gast #7257214
Lesenswert?

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
#7257217
Lesenswert?

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.
Gast #7257246
Lesenswert?

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.
Gast #7257255
Lesenswert?

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.
Gast #7257359
Lesenswert?

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.
Gast #7257394
Lesenswert?

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.
Gast #7257418
Lesenswert?

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.
#7261081
Lesenswert?

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.
Gast #7261172
Lesenswert?

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.
Gast #7261187
Lesenswert?

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.
#7261189
Lesenswert?

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.
Gast #7261194
Lesenswert?

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
#7261404
Lesenswert?

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.
#7261432
Lesenswert?

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."
#7261587
Lesenswert?

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.
Gast #7261745
Lesenswert?

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.
(Firma: Funkenflug Industries) #7262266
Lesenswert?

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.
#7263140
Lesenswert?

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.
(Firma: Funkenflug Industries) #7263347
Lesenswert?

> 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.
#7263463
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren