Hallo.
Benutze den ATMEGA32. Hab zwei Fragen:
1)
Wie configuriert man pins, die nicht verwendet werden? Beim MSP430 setzt
man
sie auf output und low level. In der Doku des ATMEGA ist scheinbar
input+pullup resistor angegeben, wenn ichs richtig versteh. Output+low
level klingt für mich plausibler. Hätte jemand kurz ne Erklärung für?
2)
Die controller pins haben I/O Funktionalität und meistens auch noch
zusätzliche Funktionen. Wie wechselt man nun zwischen den
unterschiedlichen Modi?
Viele Grüße und Danke!
µC schrieb:> 1)> Wie configuriert man pins, die nicht verwendet werden? Beim MSP430 setzt> man> sie auf output und low level. In der Doku des ATMEGA ist scheinbar> input+pullup resistor angegeben, wenn ichs richtig versteh. Output+low> level klingt für mich plausibler. Hätte jemand kurz ne Erklärung für?
Geschmackssache. Bei Output kann der Pin Treiber leichter kaputt gehen
(bei irgendwelchen unabsichtlichen Schlüssen) Input und Pullup =
definierter Pegel und hohe Eingangsimpedanz.
> 2)> Die controller pins haben I/O Funktionalität und meistens auch noch> zusätzliche Funktionen. Wie wechselt man nun zwischen den> unterschiedlichen Modi?
Unterschiedlich. Steht im Datenblatt. zB durch Nutzung der alternativen
Funktion wie Einschalten des ADC oder Setzen bestimmter Bits in
bestimmten Registern.
>>In der Doku des ATMEGA ist scheinbar>>input+pullup resistor angegeben, wenn ichs richtig versteh.
ja, richtung=input, pinvalue=high
machs doch einfach so, wie es in dem Datenblatt steht. -.-*
So hast du einen "Tri-State" ähnlichen zustand und nicht einfach
irgendwelche pins die ein LOW-Pegel auf die Leitung werfen!
2. schau ins datenblatt, als beispiel ins Kapitel U(S)ART...
Wenn du das Ding aktivierst werden deine vorherigen Einstellungen des
Ports überschrieben. Ebenso bei anderen Funktionalitäten wie ADC, SPI
etc...
Grüße
hmmm ok. Danke.
Kaj schrieb:> machs doch einfach so, wie es in dem Datenblatt steht. -.-*
Was ist falsch daran, wenn ichs nicht nur kopieren, sondern auch
verstehen will? ;)
µC schrieb:> hmmm ok. Danke.>>> Kaj schrieb:>> machs doch einfach so, wie es in dem Datenblatt steht. -.-*> Was ist falsch daran, wenn ichs nicht nur kopieren, sondern auch> verstehen will? ;)
Na ja.
Einfach mal ein wenig nachdenken.
Was ist der wesentliche Unterschied zwischen einem Eingang und einem
Ausgang?
Ein Ausgang zwingt einem Pin aktiv einen Pegel auf.
Das ist schön. Aber wenn je der Fall eintritt, dass sich dieser Pegel,
den der Ausgangstreiber erzeugt, mit dem beißt, der irgendwie anders
extern auf den Pin kommt, dann arbeiten 2 Systeme gegeneinaner. Dein
PC_Netzteil (beispielsweise) will die Leitung auf +5V ziehen - der
Ausgangstreiber vom µC will sie auf 0V ziehen. Ein ungleicher Kampf, den
der µC nur verlieren kann, was seinem Ausgangstreiber nicht bekommen
wird sofern er nicht kurzschlussfest ist.
Auf der anderen Seite erzwingt ein Eingangspin erst mal überhaupt nichts
auf der Leitung. Der horcht nur, ob sich was an der Leitung tut. Da kann
das PC-Netzteil +5V anlegen oder 0V, das lässt einen Eingangspin kalt.
Und damit ein Eingangspin nicht einfach in der Luft hängt, wenn dann
doch nichts angeschlossen ist, schaltet man dann eben noch einen Pullup
dazu, damit sich da nicht irgendwelche EM-Felder am Pin austoben und ihn
wie wild hin und her toggeln.
D.h. wenn du dich fragst: Was mache ich mit einem Pin, so dass er einen
definierten Pegel hat, auf der anderen Seite aber auch nicht beschädigt
wird, falls sich mal ein Draht auf den Pin verirrt, dann wird Ausgang
nicht so prickelnd sein. Ist letzteres ausgeschlossen, dann kann man
natürlich auch Ausgang nehmen.
Your choice.
µC schrieb:
>>Was ist falsch daran, wenn ichs nicht nur kopieren, sondern auch>>verstehen will? ;)
gar nichts. Meine antwort sollte nicht so pampig rüberkommen, sorry. :)
Aber schön zu wissen das es doch noch Menschen gibt, die das Verstehen
wollen, was sie da machen. :)
Danke für diese Erklärung :)
Ist soweit verständlich.
Bleibt von meiner Seite nur noch eine Frage.
Wieso wird dann beim MSP430 folgendes empfohlen:
8.2.8 Configuring Unused Port Pins
Unused I/O pins should be configured as I/O function, output direction,
and left unconnected on the PC board, to prevent a floating input and
reduce power consumption. The value of the PxOUT bit is irrelevant,
since the pin is unconnected. Alternatively, the integrated
pullup/pulldown resistor can be enabled by setting the PxREN bit of the
unused pin to prevent the floating input. See the System Resets,
Interrupts, and Operating Modes chapter for termination of unused pins.
Hier würde ja auch Gefahr bestehen, dass irgendwas ungewollt mim pin
verbunden wird.
Schöne Grüße :)
µC schrieb:> Hier würde ja auch Gefahr bestehen, dass irgendwas ungewollt mim pin> verbunden wird.
Das kommt drauf an.
Wenn der MSP in einem Satelliten verbaut ist, der auf dem Weg zum Pluto
ist, dann ist es wohl eher ausgeschlossen, dass da mal irrtümlich ein
auf Ausgang geschalteter Pin mit +5V verbunden wird :-) So fies sind
auch die Aliens nicht.
Denn: natürlich braucht ein Eingang+Pullup durch den Pullup ein wenig
Strom! Wenn du definitiv ausschliessen kannst, dass dem Pin in ferner
Zukunft was passiert, weil zb die Schaltung in ein Gehäuse eingebaut
wird, dann nimm deinen Ausgang. Arbeitest du aber an der SChaltung, dann
würde ich eher damit rechnen, dass dir auch mal unabsichtlich was
passiert.
TI geht davon aus, dass die Leute wissen was sie tun.
Auf Deutsch: Ein Kochrezept zu haben, nach dem man vorgeht ist zwar gut
und schön. Aber im Einzelfall sollte man lieber auch mal überlegen, was
man da eigentlich tut und was alles passieren kann. Denn die Welt ist
nicht perfekt und wir alle machen (dumme) Fehler. Derjenige, der sich
dessen bewusst ist und auch mal für den Fall vorsorgt, dass er selber
einen dummen Fehler macht, fährt auf lange Sicht besser. Oder warum
nehmen Bergsteiger ein Seil mit in die Wand? Sicher nicht deswegen, weil
sie perfekte Kletterer sind.
Anderer Hersteller, andere Ansichten :)
Der Eine macht es so, der Andere so. Ich würde nicht versuchen, da
irgend eine allgemeinen Ansatz zu finden, sonden es immer so machen, wie
es in den Datenblättern des Herstellers steht. Der wird sich da schon
was bei gedacht haben. (hoffe ich zumindestens ;) )
Grüße
Oki ^^
Ich versuche mal ein Fazit zu formulieren:
Maximale Sicherheit erhält man mit einem Eingang+Pullup Res.
Minimalen Stromverbrauch gibts mit einem Ausgang+low level.
Bist du am rumexperimentieren, dann wähle maximale Sicherheit.
Ist deine Schaltung verbaut und geschützt, so wähle minimalen
Stromverbrauch.
Stimmt ihr damit soweit überein? :)
Karl Heinz Buchegger schrieb:> Denn: natürlich braucht ein Eingang+Pullup durch den Pullup ein wenig> Strom!
Das sehe ich nicht so. Da fließen nur die Restströme der Eingänge und
der (abgeschalteten) Ausgangstreiber. Und das ist genauso wie bei einem
offenen Ausgang,
vermutet Dietrich
µC schrieb:> Weiß jemand was genaueres zu diesem Thema oder wo man was nachlesen> könnt? ^^
Ich finde, daß die wichtigen Auswahlkriterien hier genannt worden sind.
Du mußt entscheiden. Weitere Meinungen werden vermutlich auch immer
beide Seiten beleuchten.
Oo uff.... ^^ Hätte nicht gedacht, dass soviele Beiträge bereits
vorhanden sind. Ich gebs zu, hab nicht allzu lang nach denen gesucht
gehabt. ;)
Danke Spess53!
Habe jetzt aus Zeitmangel nur 2-3 Beiträge vollständig durchgelesen.
Ist soweit alles klar und verständlich. Aber eine klitzekleine Frage ist
bei mir noch offen:
Was verbraucht mehr Strom: input+pullup oder output+low level?
Meine Meinung:
Output+low level verbraucht 0mA und input+pullup vll ~6µA...
Würdet ihr dem beistimmen?
definiere: "Strom verbauch"
~6µA sind für mich kein Stromfluss, das spürt man ja gar nicht ;)
da solltest du lieber drüber nachdenken das Leuchtmittel aus deinem
Kühlschrank zu entfernen :D
und da der µC ja sowieso Arbeitet, kann man die 6µA auch sorgenfrei
vernachlässigen. Wenn da Last am µC hängt, und der jetzt 30,000mA oder
30,006mA bringen muss... ;)
Grüße
Ultra-Low-Power, da ist man mittlerweile bei µA Zählerei angekommen.
aus dem ATMEGA644A:
Power Consumption at 1MHz, 1.8V, 25°C
– Active: 0.4mA
– Power-down Mode: 0.1µA
– Power-save Mode: 0.6µA (Including 32kHz RTC)
Woher auch immer die 6µA kommen, sie würden im Powersave-Mode das
10fache des eigendlichen Stromverbrauchs ausmachen.
Also eine Anwendung die nicht mehr 100 Tage sondern nur noch 9 Tage
hält. Vorausgesetzt der Rest braucht gar keinen Strom ;)
Hi
>Oo uff.... ^^ Hätte nicht gedacht, dass soviele Beiträge bereits>vorhanden sind. Ich gebs zu, hab nicht allzu lang nach denen gesucht>gehabt. ;)
das ist auch nur ein kleiner Teil.
>definiere: "Strom verbauch"
Genau das ist die Frage. Außer bei batteriebetriebenen Geräten ist der
Mehrverbrauch durch die Pins irrelevant. Auch offene Eingänge führen,
korrekte Software vorausgesetzt, nicht zu Fehlfunktionen.
MfG Spess
Wie es der Zufall will, habe ich tatsächlich ein batteriebetriebenes
Gerät vor mir. ^^
Falls also diese Rechnung korrekt ist:
Output+low level verbraucht 0mA und input+pullup vll ~6µA...
würde ich mich für output+low level entscheiden :)
Spess53 schrieb:> Außer bei batteriebetriebenen Geräten ist der> Mehrverbrauch durch die Pins irrelevant.
Oder bei Consumergeräten müssen noch irgendwie irgendwo ein paar µW für
ein bestimmtes Energielabel rausgeholt werden