If unused connect to Vxx via Pull-xx-R - Wieso?

Hallo zusammen,

mich nervt etwas die Vorschrift in vielen Datenblättern, typischerweise von Prozessoren, aber auch von anderen ICs, die da lautet:

„If this pin is unused connect to VCC via Pull-up Resistor“ (bzw. to VSS via Pull-down Resistor). Weiß jemand, warum man ggf. irgendwelche Logikanschlüsse, die einen festen Eingangspegel bekommen sollen, nicht direkt auf die Betriebsspannungen legen sollte?

Bei TTL ist mir der Grund, warum man die Eingänge nicht an VCC legen soll, seit langem klar. Aber bei modernen Logik-Technologien?

Ich habe so den Eindruck, das diejenigen, die das in vorschlagen bzw. empfehlen, auch nicht so genau wissen, warum: „Haben wir immer so gemacht, hat immer funktioniert.“

Ich mag nicht irgendeine Empfehlung, die anscheinend unsinnig (und aus praktischen Gründen kontraproduktiv) ist, blind und dumm folgen.

Wenn jemand was weiß: Mach mich schlauer, wenn ich was verpasst haben sollte!

Grüße, Uwe

Ich mag nicht irgendeine Empfehlung, die anscheinend unsinnig
(und aus praktischen Gründen kontraproduktiv) ist, blind und
dumm folgen.

Endlich mal jemand mit Verstand.

Lies das mal:
_this way, If the pins get set to an unintended state (due to software bugs or electrical noise or whatever), the chip will not be damaged because the current will be limited by the resistor.

When using pullup (or pulldown) resistors, the worst that can happen is accidentally driving an output against a pull up/down and thus wasting power. (See „power considerations“ section below)._

http://www.piclist.com/techref/logic/xtrapins.htm

Gruß

Hallo,

„If this pin is unused connect to VCC via Pull-up Resistor“
(bzw. to VSS via Pull-down Resistor). Weiß jemand, warum man
ggf. irgendwelche Logikanschlüsse, die einen festen
Eingangspegel bekommen sollen, nicht direkt auf die
Betriebsspannungen legen sollte?

Ich wüßte auch nicht, warum man das nicht mache dürfte.
Da schau mal auf die konkreten Angaben im Datenblatt
zu Spannungen an den Pins. Zumindest auf Ground legen
sollte kein Problem sein.

Bei TTL ist mir der Grund, warum man die Eingänge
nicht an VCC legen soll, seit langem klar.

TTL braucht man ja auch nicht beschalten, weil das
von sich aus einen stabilen Pegel hat.
Hart auf Masse legen geht aber schon.

Ist aber egal, wer nutzt schon noch originäres TTL?

Aber bei modernen Logik-Technologien?
Ich habe so den Eindruck, das diejenigen, die das in
vorschlagen bzw. empfehlen, auch nicht so genau wissen, :warum:
„Haben wir immer so gemacht, hat immer funktioniert.“

Ohne konkreten Fall müßte ich nicht, was du meinst.

Es ist aber natürlich trotzdem zuverlässiger, unbenutzte
Pins über einen Widerstand auf Betriebsspannung
oder Masse zu legen.

Wenn versehentlich Pins als Ausgang parametriert werden,
hat man sonst gleich einen Kurzschluss. Ob das dann
zu akuten Problemen führt, hängt vom jeweiligen Chip ab.
Manche Controler mögen das gar nicht.

Bei uns ist so was passiert.
Ein unbenutzte Pin, das offenbar als Ausgang parametriert
war, sollte für eine spezielle Überwachung mit beschaltet
werden. Der Hardware-Entw. hat es gemacht, aber auf Grund
von unzureichender Kommunikation oder weil es einfach
vergessen wurde, hat man die Software nicht angepasst.
Das aktive Pin mit H-Pegel wurde dann bei bestimmten
Aktionen einfach hart auf Masse gezogen.

Gemerkt habe ich das später, weil ein Interfacemodul
nicht funktioniert hat. Ich hatte da einen Schutzwiderstand
in der Leitung, der den Kurzschluss natürlich nicht
geschafft hat :wink:.

Deshalb lege ich im Zweifelsfall offene Pins doch lieber
über ein R an def., Pegel. Dazu nehme ich auch gern
kleine Array mit 4x10k in BF 1206.

Ich mag nicht irgendeine Empfehlung, die anscheinend unsinnig
(und aus praktischen Gründen kontraproduktiv) ist, blind und
dumm folgen.

Eine Alternative ist es, offene Controlerpins
per Software als Ausgang zu parametrieren.
Dann stört er auch nicht mehr als offener Eingang.
Gruß Uwi

Hallo Uwe,

Der Grund mit den Ausängen ist schon mal geklärt.

Hinzu kommen noch die undefinierten Zustände beim Hoch- und Runterfahren des Chips. Dabei muss die Betriebsspannung Bereiche durchlaufen, in welchen die Funktion nicht definiert ist.

Der andere Grund liegt in der Schutzschaltung der Eingänge.
Bei entsprechenden Impulsen kann es zu einem Latchup kommen. Ob nun der parasitäre Thyristor duchgeschaltet bleib oder nicht hängt vom Strom ab (Haltestrom des Thyristors).
Die entsprechenden Spannungsspitzen können durch das Layout, sowohl des PCBs als auch des Chips auftreten. Spikes mit 0.5V bis 0.7V können schon zu einem Latchup führen.

Auch hier könne Spannungsdifferenzen, vor allem beim Einschalten, auftreten. Durch Block-Cs und ein entsprechendes Layout kann die Spannung an einem Eingang schneller ansteigen als an Vcc des selben ICs.

Je komplexer eine Schaltung ist, incl. der ICs, desto grösser ist die Wahrcheinlichkeit, dass etwas schief gehen kann.

Bei einer einfache Schaltung aus ein paar einfachen Logikgattern, kann man sich meistens die Widerstände sparen, zumal es dabei auch meist kein Problem ist, sich die Spannung auf kürzestem Weg direkt vom Vcc- oder Vo-Pin es selben ICs ab zugreifen.
Bei komplexen ICs sind meist mehrere Pins für Vcc und Vo vorhanden. oft sind diese Intern relativ hochohmig miteinander verbunden, und diene nur der Stromversorgung einzelner Ports. Bei µm breiten AL-Leiterbahnen können einige mA schon einen beträchtlichen Spannungsabfall erzeugen, wenn der Strom quer über den Chip fliesst.

MfG Peter(TOO)

Hallo Uwi,

das man bei Pins, die auch Ausgänge sein können, Sicherheit gegenüber Designfehlern bekommt, ist einzusehen. Konkret ist es mir aber in folgendem Datenblatt aufgefallen (Renesas RX600-MCU):

Table 16.12 Treatment of Unused Pins (176-Pin LFBGA)
Pin Name Treatment
EMLE Connect this pin to Vss via a pull-down resistor.
MD1, MD0 (Always used as a mode pin)
MDE (Always used as mode pins)
RES# Connect this pin to Vcc via a pull-up resistor.
USB0_DP Leave these pins open.
USB0_DM
USB1_DP
USB1_DM
BSCANP Connect this pin to Vss via a pull-down resistor.
P35/NMI Connect this pin to Vcc via a pull-up resistor.
EXTAL (Always used as a clock pin)
XTAL Leave this pin open.
XCIN Connect this pin to Vcc via a pull-up resistor or to Vss via a pull-down resistor.
XCOUT Leave this pin open.
WDTOVF# Leave this pin open.
Ports 0 to 9,
and A to G
· Connect these pins to Vcc via a pull-up resistor or to Vss via a pull-down resistor
· These pins can be left while PORTn.ICR is in the initial state (the input buffer disabled)*.
VREFH Connect this pin to AVcc
VREFL Connect this pin to AVSS
CNVSS Connect this pin to VSS via pull-down resister

Bis auf die Ports sind das alles Konfigurationseingänge, die nicht Ausgang sein können.

Ich wüsste auch nicht, warum man das nicht mache dürfte.
Da schau mal auf die konkreten Angaben im Datenblatt
zu Spannungen an den Pins. Zumindest auf Ground legen
sollte kein Problem sein.

Habe ich: Die max. Eingangsspannung ist, wie üblich, mit VCC + 0.5V angegeben.

Ohne konkreten Fall müßte ich nicht, was du meinst.

s. o.

Es ist aber natürlich trotzdem zuverlässiger, unbenutzte
Pins über einen Widerstand auf Betriebsspannung
oder Masse zu legen.

Ich hätte genauer formulieren müssen: Unbenutzte Eingangspins.

Eine Alternative ist es, offene Controlerpins
per Software als Ausgang zu parametrieren.
Dann stört er auch nicht mehr als offener Eingang.

Das sehe ich auch so.

Danke, Grüße, Uwe

Hallo Peter,

danke auch dir für die Gedanken. Allerdings würde ich Gründe für nicht wirklich zutreffend halten.

Hinzu kommen noch die undefinierten Zustände beim Hoch- und
Runterfahren des Chips. Dabei muss die Betriebsspannung
Bereiche durchlaufen, in welchen die Funktion nicht definiert

Wenn die Spezifikation für die max. Eingangsspannung, wie üblich, mit VSS - 0,5 V und VCC + 0.5V angegeben ist, sehe ich da keinen Grund.

Der andere Grund liegt in der Schutzschaltung der Eingänge.
Bei entsprechenden Impulsen kann es zu einem Latchup kommen.

Latchup kenne ich, aber wenn die Eingänge direkt auf Vxx liegen, kann es doch beim besten Willen ganz und gar nicht dazu kommen…

Die entsprechenden Spannungsspitzen können durch das Layout,
sowohl des PCBs als auch des Chips auftreten. Spikes mit 0.5V
bis 0.7V können schon zu einem Latchup führen.

Ja, aber wo sollen die herkommen, wenn die Pins direkt mit Vxx verbunden sind? Wären sie über lange Leiterschleifen verbunden, dann schon eher: Ohmsche Spannungsabfälle, induktive Spannungsabfälle, magnetische Einkopplungen…

Auch hier könne Spannungsdifferenzen, vor allem beim
Einschalten, auftreten. Durch Block-Cs und ein entsprechendes
Layout kann die Spannung an einem Eingang schneller ansteigen
als an Vcc des selben ICs.

S. o… Ich kann mir schlecht vorstellen dass das der Grund wäre. Wenn ja, wäre ich mit einem Design, bei dem die Pins direkt miteinander verbunden wären, ganz offensichtlich weit auf der sicheren Seite. Und noch mehr, wenn die Spannung nicht beliebig schnell hochgefahren werden kann. Und nirgends wird gesagt: „Falls dieses oder jenes der Fall sein könnte, sollte man vorsichtshalber…“. Nein, das wird so gemacht. Punkt.

Je komplexer eine Schaltung ist, incl. der ICs, desto grösser
ist die Wahrscheinlichkeit, dass etwas schief gehen kann.

Ja, das Wörtchen „etwas“… Genau darum geht es!

Bei einer einfache Schaltung aus ein paar einfachen

Bei komplexen ICs sind meist mehrere Pins für Vcc und Vo

beträchtlichen Spannungsabfall erzeugen, wenn der Strom quer
über den Chip fliesst.

Das IC, bei dem ich jetzt gerade drauf gestoßen bin, hat nur 3,3 V und eine GND- und VCC-Plane unterm IC.

Ich werde deine Gedanken nicht vergessen. Vielleicht läuft es ja tatsächlich darauf hinaus, so dass sich zumindest die Herkunft der „Vorschrift“ erklären ließe. Ob man sie nun für relevant hält, könnte man bei Kenntnis der Gründe wesentlich besser entscheiden

Danke und Grüße

Uwe

Hallo Uwe,

das man bei Pins, die auch Ausgänge sein können, Sicherheit
gegenüber Designfehlern bekommt, ist einzusehen. Konkret ist
es mir aber in folgendem Datenblatt aufgefallen (Renesas
RX600-MCU)

Der RX müsste ein ehemaliger Mitsubishi sein, die kenne ich nicht so gut, aber mit den Hitachi habe ich detaillierte Erfahrungen.

Bis auf die Ports sind das alles Konfigurationseingänge, die
nicht Ausgang sein können.

Das denkst auch nur du :wink:

Da können sich sehr wohl Ausgänge dahinter verstecken.

  1. Teilweise für Factorytests.
  2. Manche Pins funktionieren auch im Programmiermodus anders.
  3. Bei Hitachi haben viele MPUs undokumentierte Peripherie, welche nur für einen speziellen Kunden ausgeführt wurde, aber in der freiverkäuflichen Variante enthalten ist.
  4. Hitachi stellt so genannte Bondout-Chips für InCircuit-Emulatoren her. Diese besitzen zusätzlich Hardware und zusätzliche Befehle um in den Debugmodus umzuschalten. „Lustigerweise“, werden diese Befehle auch von der normalen CPU verstanden und ausgeführt, aber es fehlt dann die entsprechende Hardware und die CPU stellt sich tot …

Die 300H-CPU hat z.B. ein Breakpoint-Register. Im normalen Handbuch ist die nur als Reserved beschrieben. Die Funktionsweise ist nur im Bondout-Manual beschrieben. Das Register funktioniert aber auch bei den normalen Chips tadellos.

MfG Peter(TOO)

Hallo Uwe,

Ich werde deine Gedanken nicht vergessen. Vielleicht läuft es
ja tatsächlich darauf hinaus, so dass sich zumindest die
Herkunft der „Vorschrift“ erklären ließe. Ob man sie nun für
relevant hält, könnte man bei Kenntnis der Gründe wesentlich
besser entscheiden

Du glaubst gar nicht, wie viele schlechte Layout auf dem Markt sind ud wie schlecht die heutigen Ings übe die Störproblematik Bescheid wissen.

Ich habe lange genug mein Geld damit verdient sporadisch auftretende Fehler in fremden Projekten zu finden. Meistens waren es Designfehler, weil man einen Satz im Datenblatt überlesen hatte.

Ich aber aber auch schon Wochen damit zugebracht, Fehler in meinem Design zu suchen um dann heraus zu finden, dass der Chip selbst einen Designfehler hat. Das waren dann die seltenen Fälle in welchen ich direkten Kontakt zu Chipdesignern hatte, war immer sehr lehrreich mit diesen zu sprechen. Es waren dabei immer renommierte Firmen, auch denen unterlaufen manchmal Fehler.

Des weiteren habe ich auch einmal mitbekommen wie eine fehlerhafte Serie einer 1N4148 einen Millionenschaden versucht hat. Der Fall ist 35 Jahre her und den Hersteller darf man heute nennen, ITT gibts ja nicht mehr.

Um zum eigentlichen Problem zurück zu kommen:

Die Vorschrift gibt es wohl einfach wegen der Produkthaftung.

Grundsätzlich gibt es eine gewisse Problematik, welche durch Pullup/Pulldown-Widerstände vermieden werden kann. Durch die Vorschrift kann der IC-Hersteller nicht haftbar gemacht werden, wenn durch das Weglassen Probleme auftreten.

MfG Peter(TOO)

Hallo,

das man bei Pins, die auch Ausgänge sein können, Sicherheit
gegenüber Designfehlern bekommt, ist einzusehen. Konkret ist
es mir aber in folgendem Datenblatt aufgefallen (Renesas
RX600-MCU):

Ich kenne diesen Chip auch nicht direkt, aber
bei dem was man da so liest,scheint es ein Sammelsurium
von Problemen und Gründen zu geben.
Peter Too hat die meisten schon aufgeführt und erläutert.

  1. Ausgänge, die evtl. als Open Kollektor dienen,
    um spezielle Stati nach außen zu geben.

  2. Steuereingänge, die unter bestimmten Umständen auch
    mal aktive Ausgänge sind (z.B. nach Reset, beim Flashen)

  3. Eingänge, deren Pegel man für bestimmte Aktionen (flashen)
    von außen ändern muß (z.B. CNVSS)

  4. Eingänge, die man üblicherweise auch benutzen kann.
    (Int,NMI) und deshalb nicht hart auf Masse legt.

  5. Bidirektionale Signale (z.B. USB)

  6. Pins, deren Funktion vom jeweiligen Modus abhängig ist,
    und deshalb vorsorglich nie hart festgelegt werden darf
    (z.B. höherwertiges Datenports bei 8/16-Bitbetrieb).

Da steigt man nicht immer genau dahinter.
Ich hatten z.B. ein Port an M16-Prozessoren, das beim
Flashen ganz eigene Sachen gemacht haben (plötzlich
als Ausgang aktiv war. undokumentiert!).

Normal sind solche Ports nach dem Reset passiv und beim
Flashen wird ja kein Bootloader aktiv.
Wenn an so was aber eine Funktion dran hängt
(z.B. ein Stellmotor), dann läuft dieser beim Flashen
plötzlich los und bringt die Mechanik auf Anschlag,
kann diese evtl. zerstören. Sehr lästig so was.
Diese Funktionen mußte ich dann so ändern, das da nix
schlimmes passiert.

Table 16.12 Treatment of Unused Pins (176-Pin LFBGA)
Pin Name Treatment
EMLE Connect this pin to Vss via a pull-down resistor.
MD1, MD0 (Always used as a mode pin)
MDE (Always used as mode pins)
RES# Connect this pin to Vcc via a pull-up resistor.
USB0_DP Leave these pins open.
USB0_DM
USB1_DP
USB1_DM
BSCANP Connect this pin to Vss via a pull-down resistor.
P35/NMI Connect this pin to Vcc via a pull-up resistor.
EXTAL (Always used as a clock pin)
XTAL Leave this pin open.
XCIN Connect this pin to Vcc via a pull-up resistor or to Vss
via a pull-down resistor.
XCOUT Leave this pin open.
WDTOVF# Leave this pin open.
Ports 0 to 9,
and A to G
· Connect these pins to Vcc via a pull-up resistor or to Vss
via a pull-down resistor
· These pins can be left while PORTn.ICR is in the initial
state (the input buffer disabled)*.
VREFH Connect this pin to AVcc
VREFL Connect this pin to AVSS
CNVSS Connect this pin to VSS via pull-down resister

Bis auf die Ports sind das alles Konfigurationseingänge, die
nicht Ausgang sein können.

Ich wüsste auch nicht, warum man das nicht mache dürfte.
Da schau mal auf die konkreten Angaben im Datenblatt
zu Spannungen an den Pins. Zumindest auf Ground legen
sollte kein Problem sein.

Habe ich: Die max. Eingangsspannung ist, wie üblich, mit VCC +
0.5V angegeben.

Ohne konkreten Fall müßte ich nicht, was du meinst.

s. o.

Es ist aber natürlich trotzdem zuverlässiger, unbenutzte
Pins über einen Widerstand auf Betriebsspannung
oder Masse zu legen.

Ich hätte genauer formulieren müssen: Unbenutzte Eingangspins.

Eine Alternative ist es, offene Controlerpins
per Software als Ausgang zu parametrieren.
Dann stört er auch nicht mehr als offener Eingang.

Das sehe ich auch so.

Danke, Grüße, Uwe

Ja, aber wo sollen die herkommen, wenn die Pins direkt mit Vxx
verbunden sind?

Hallo,

so stellt sich klein Fritzchen die HF-Technik vor - die ist aber doch etwas komplizierter. Eine 50 Picosekunden Pulsflanke erstreckt sich auf einer Leiterplatte über weniger als 10mm. Um es ganz ganz einfach auszudrücken: wenn hier der Pegel 3V ist, muss das 10 mm weiter keineswegs so sein. Und das gilt auch für Störungen, die sich im GND-VCC-Ebenensystem wellenförmig ausbreiten, daher der Zusammenhang mit bestmöglicher Entstörung.

Aber wenn du so sicher bist, es besser zu wissen, kannst du das natürlich alles unberücksichtigt lassen, aber dann bleib besser bei NF-Schaltungen.

Gruss Reinhard

Fazit
Hallo zusammen,

erst mal vielen Dank für die qualifizierten Antworten.

Ein bisschen anders sehe ich die Situation jetzt schon, auch wenn letztendlich kein klarer und nachvollziehbarer Grund, so wie einstmals bei den TTLs, erkennbar wird. Ich werde jedenfalls zukünftig anderen Aspekte berücksichtigen.

Insbesondere verunsichern mich die Erfahrungen von Peter und Uwi, nach denen von der Spezifikation her reine Eingänge unter besonderen und unspezifizierten(!) Umständen Ausgänge sein könn(t)en. Es wäre bzw. ist schon geradezu unverschämt, so etwas nicht in einem Datenblatt zu erwähnen bzw. mit einer lapidaren Forderung zu verschleiern.

Reinhard: Ich weiß, dass du qualifizierte und gute Beiträge leistest, aber hier hast du etwas daneben gehauen. Meine Vorstellung von HF mit der von klein Fritzchen zu vergleichen, war nicht gut. Und alles, was sich über 50 ps abspielt, „NF-Schaltung“ zu nennen, halte ich auch nicht für angemessen. 50 ps entsprechen immerhin 7 Ghz. Es gibt zweifellos auch Schaltungen, in denen derartige Transienten auch mit genügend Energie entstehen, aber das würde ich dann doch eher in die „richtige“ HF-Technik einordnen, aber nicht hier in Schaltungen, die mit 3 V arbeiten.

Viele Grüße

Uwe