Hallo zusammen, ich glaub, ich hab mal ne typische Anfängerfrage. Wie sieht die elektrische Schaltung bei einem µC aus, bei dem nicht alle Ports benötigt werden. Ich nehme an, ohne Bezugsmasse sollte man Sie nicht anschließen, wegen EMV, usw. Ist es am besten bzw. am einfachsten, wenn alle nicht benötigen Ports als Ausgänge definiert werden und die internen Pull-up Widerstand als aktiv definiert werden? Danach kann man alle Ausgänge mit Masse verbinden, oder? Hoffe ich bin nicht ganz auf dem falschen Dampfer. :-) Gruß und Dank. Thomas
Offen lassen, in Software als Ausgang definieren und auf LOW (oder auch high) legen.
Hi Wenn du nicht auf das letzte µA Stromverbrauch angewiesen bist ist es egal. MfG Spess
Hat man als Anfänger keine anderen Sorgen? Erstmal kannst du sie einfach offen lassen und nicht beachten. Grundsätzlich können sie dann aber als Antenne fungieren und andauernd umschalten was intern zu einem höheren Stromverbrauch führt. Darum kann man die internen Pullups aktivieren. Dann haben sie einen definierten Zustand. Aber sie dann noch auf Masse zu legen macht überhaupt keinen Sinn. gruß cyblord
siehe Datenblatt, im allgemeinen: auf PCB zwar Pad, aber keinen Leiterzug vom (zum) pad entweder Ausgang, low oder high oder Eingang, pull up oder down. bei einigen "speziellen" Ports (JTAG, unbenutzte Takteingänge,..) sollte dias irgendwo im Datenblatt erwähnt sein. mfg
@ Thomas H. (Gast) >Wie sieht die elektrische Schaltung bei einem µC aus, bei dem nicht alle >Ports benötigt werden. Wweitrangig. >Ich nehme an, ohne Bezugsmasse sollte man Sie nicht anschließen, wegen >EMV, usw. ??? >Ist es am besten bzw. am einfachsten, wenn alle nicht benötigen Ports >als Ausgänge definiert werden Kann man machen. > und die internen Pull-up Widerstand als >aktiv definiert werden? Geht beides gleichzeitig nicht, ist auch sinnlos. ENTWEDER Ausgang ODER Pull-Up. >Danach kann man alle Ausgänge mit Masse verbinden, oder? Oder. Wenn man die Ausgänge per SOftware/Fehler wahtever auf HIGH schaltet, gibt es einen schönen Kurzschluss. Lass sie offen und gut. MFG Falk
Thomas H. schrieb: > Ist es am besten bzw. am einfachsten, wenn alle nicht benötigen Ports > als Ausgänge definiert werden und die internen Pull-up Widerstand als > aktiv definiert werden? Ausgang und interner Pull-Up-Widerstand schließen sich aus. Du kannst nur eines davon machen. Also meinst Du Eingang, nicht Ausgang. > Danach kann man alle Ausgänge mit Masse verbinden, oder? Auch hier ist es besser, sie nur dann mit Masse zu verbinden, wenn sie als Eingang beschaltet werden. Dann aber ohne Pullups. Diese wären hinfällig. Wenn Du die Pins wirklich auf Ausgang schaltest, sie dann auf High-Pegel setzt und dann noch mit Masse verbindest, hast Du nichts anderes als einen kleinen aber feinen Heizkörper, der das gar nicht so recht mag, was Du mit ihm veranstaltest ;-) Um auf Deine ursprüngliche Frage zurückzukommen: Es gibt 3 Möglichkeiten, die offenen Pins auf definierten Pegel zu bekommen: 1. Als Ausgang schalten und nicht anschließen 2. Als Eingang mit PullUp schalten und nicht anschließen 3. Als Eingang ohne PullUp schalten und mit GND oder Vcc verbinden Was davon am sinnvollsten ist, können Dir nur die Experten sagen. Ich bin keiner ;-) Gruß, Frank
Vielen Dank für die schnellen und umfangreichen Antworten. Falk Brunner schrieb: > Wenn man die Ausgänge per SOftware/Fehler wahtever auf HIGH > schaltet, gibt es einen schönen Kurzschluss. Genau das wollte ich vermeiden. Genauso dass es irgendwie als Antenne fungiert. Werde die Ports dann zur Sicherheit als Eingang mit Pull-up-Widerständen deklarieren und die Ports dann auf Masse legen. Danke.
Frank M. schrieb: > Ausgang und interner Pull-Up-Widerstand schließen sich aus. Theoretisch... Der STM32L beispielsweise erlaubt solch eine Konfiguration. Die Sinnhaftigkeit sei mal dahingestellt. mfg
Thomas H. schrieb: > 1. Als Ausgang schalten und nicht anschließen > > 2. Als Eingang mit PullUp schalten und nicht anschließen > > 3. Als Eingang ohne PullUp schalten und mit GND oder Vcc verbinden Sorry, hab ich jetzt erst gelesen. Ja, dann nehme ich deine dritte Variante. Ja, ich hatte zu Beginn, Eingänge mit Ausgänge verwechselt. :-o
Ich klink mich mal hier mit ein. Was von den drei Varianten wäre die Stromsparendste?
1,2 und 3 sind alle gleich stromsparend. Unsinnig ist (mal) wieder die Wahl des OP "Werde die Ports dann zur Sicherheit als Eingang mit Pull-up-Widerständen deklarieren und die Ports dann auf Masse legen. Danke." Denn dann fließt immer vollkommen sinnlos Strom durch den Pull-Up. Aber jedem wie er es gern hätte. MFG Falk
Naja die Ausgänge werden doch bestimmt irgendwie mit Transistoren gesteuert und wenn ein ein Transistor die ganze zeit eingeschaltet ist verbraucht die doch einen gewissen strom?
Ben S. schrieb: > Transistor die ganze zeit eingeschaltet ist > verbraucht die doch einen gewissen strom? es sind Mosfets - und der strom ist damit (fast) 0
dann halt mosfets. egal fast ist aber auch nur fast
Im Vergleich zum Stromverbauch der restlichen Schaltung kannst auch ein Ei drüberhauen.
naja aber doch nicht wenn der µC im sleepmodus steckt
Du hast überall Leckströme. Egal was du machst. Die verwendete Schaltungstechnik verbraucht aber nunmal nur dann signifikant Strom wenn sie schaltet. Ganz im Gegensatz zu einer Kontruktion wo man unnötig Strom durch den Pullup jagt. > Werde die Ports dann zur Sicherheit als Eingang mit Pull-up-Widerständen > deklarieren und die Ports dann auf Masse legen. Danke. Bitte. Du hast dir die dümmste Möglichkeit rausgesucht. Im Gegensatz zu allen Posts (auch ich habe bereits geschrieben dass dies Quatsch ist). Also wenn du sowieso nicht liest warum fragst du dann überhaupt? Machs doch gleich so wie du denkst (und zwar falsch).
cyblord ---- schrieb: > Also wenn du sowieso nicht liest warum fragst du dann überhaupt? Machs > doch gleich so wie du denkst (und zwar falsch). Er hat sich in Beitrag "Re: Nicht benötigte Ports beim µC wie verschalten?" korrigiert. Also nicht zu streng mit ihm sein ;-)
Falk Brunner schrieb: > "Werde die Ports dann zur Sicherheit als Eingang mit > Pull-up-Widerständen > deklarieren und die Ports dann auf Masse legen. Danke." > > Denn dann fließt immer vollkommen sinnlos Strom durch den Pull-Up. > > Aber jedem wie er es gern hätte. Von der bereits genannten Problematik mit Kurzschlüssen bei Softwarefehlern mal abgesehen.
Nochmal zum mitmeisseln:
> 2. Als Eingang mit PullUp schalten und nicht anschließen
ist die Beste™ Wahl.
Weil:
- Kein Stromverbrauch im Ausgangs-Treiber/Pullup, da Pin nicht
angeschlossen
- Kein Stromverbrauch im Eingangs-Schmitt-Trigger, da definiertes
Potential.
- Kein Kurzschluss wenn Port ausversehen als Ausgang definiert wird
- Kein Kurzschluss wenn man ausversehen mit der
Messpitze/Oszitastkopf/... abrutscht.
Ben S. schrieb: > dann halt mosfets. egal fast ist aber auch nur fast Alles eine Frage der Relation. Wenn du dadurch bei 2 Stunden Akkubetrieb eine halbe Sekunden mehr aus dem Akku rausquetschen kannst, dann ist das eine 'Optimierung' die dir de facto nichts bringt.
> 2. Als Eingang mit PullUp schalten und nicht anschließen
Das Nichtanschließen hat noch weitere Vorteile:
- Man muss keine Leiterbahnen zu nichtbenutzen Pins routen --> weniger
Aufwand mit dem Platinenlayout.
- Auf einseitigen Platinen kann man nichtbenutzte Pins anhand ihrer
isolierten Pads erkennen. Ist doch auch nett.
- Möchte man später einen ungenutzen Pin doch noch verwenden, ist es
sicher angenehmer, das dann sofort tun zu können (per drangelötetem
Draht), ohne den Pin erst freifräsen zu müssen.
Hallo, In irgendeiner App-Note irgend eines Herstellers (nein Falk ich weiß die Quelle nicht mehr) wurde empfohlen die unbenutzten Pins auf GND zu legen und als Ausgänge Low zu schalten. Damit entstehen zusätzliche GND-Verbindungen. Was ist davon zu halten? mfg Stefan
AVR-Datasheet Unconnected pins If some pins are unused, it is recommended to ensure that these pins have a defined level. Even though most of the digital inputs are disabled in the deep sleep modes as described above, floating inputs should be avoided to reduce current consumption in all other modes where the digital inputs are enabled (Reset, Active mode and Idle mode). The simplest method to ensure a defined level of an unused pin, is to enable the internal pull-up.
Stefan schrieb: > In irgendeiner App-Note irgend eines Herstellers Evtl. bei Xilinx (XC95xxx):
1 | Each IOB provides user programmable ground pin capabil- |
2 | ity. This allows device I/O pins to be configured as additional |
3 | ground pins in order to force otherwise unused pins to a low |
4 | voltage state, as well as provide for additional device |
5 | grounding capability. This grounding of the pin is achieved |
6 | by internal logic that forces a logic low output regardless of |
7 | the internal macrocell signal, so the internal macrocell logic |
8 | is unaffected by the programmable ground pin capability. |
Hat aber mit einem AVR nichts zu tun. Den zugehörigen AVR-Datenblatt-Ausschnitt hat ja Samuel schon gepostet.
Hi >Was ist davon zu halten? Nichts. Ist doch alles schon zig mal durchgekaut worden. Hier hat auch jemand gemessen: Beitrag "Re: Unbenutzte AVR-Pins wie beschalten (EMV)?" Übrigens sind die internen Pull-Ups auch mal ganz schnell durch einen Softwarefehler abgeschaltet. MfG Spess
Hallo Spess , vielen Dank für den Link. Aber : >> Beitrag "Re: Unbenutzte AVR-Pins wie beschalten (EMV)?" dieser Thread ended mit dem Tip : >> Für die Entwicklungsphase würde ich beim Pullup bleiben. Für die >> entgültige Schaltung kann es sinnvoll sein Pins als Ausgang und low zu >> setzen und dann auch extern an GND anzuschließen. Damit hat man dann >> eine zusätzliche GND anbindung. Besonders bei Chips wie dem 2313 kann da >> günstig sein, weil da die GND und VCC Pins weit auseinander liegen. >> Der Unterschied wird aber nicht groß sein. Prinzipiell wird ja empfohlen während Messungen mit dem ADC an keinem Pin des entsprechenden Ports zu wackeln. Ich nutzte daher die 'freien' Pins eines analogen Ports nicht und lege diese auf GND. Ob das was bringt weiß ich nicht geschadet hat es aber bisher nicht. Daher die Frage weiß jemand ob es hilft. Vielleicht Anja? mfg Stefan
Ich hab interessehalber mal bei Microchip geguckt: AN1416 - Low-Power Design Guide - Seite 15 http://ww1.microchip.com/downloads/en/AppNotes/01416a.pdf > An unused I/O pin should be left unconnected, but configured as an output > pin, driving to either state (high or > low), or configured as an input with an external resistor > (about 10 k) pulling it to VDD or VSS. If such a pin can > be configured as an analog input, the digital input buffer > is turned off, preventing the excess current consumption caused by a > floating signal. Any of these methods > will prevent the floating node case, minimizing power.
Wieso werden in den Beispielen zum STM32 erst alle Pins auf Input Floating geschaltet mit dem Kommentar "to save energie" wenn floating Pins einen höheren Stromverbrauch haben?
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.