PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Port als Output: drive hi/low, hä?



joh_walt
10.04.2007, 11:38
Hallo zusammen,

ich habe eine Grundsätzliche Frage zum ATmega8. Dazu steht im Datenblatt, wenn als Ausgang konfiguriert ist der Pin über PORTxn entweder "driven high (one)" oder "driven low (zero)". Das und die Folgen verstehe ich nicht ganz.
Bedeutet high, dass Vcc anliegt und low, dass 0V anliegen?

Was passiert in jedem der beiden Modus wenn extern 5V angelegt werden? Fliesst Strom oder nicht?

Und wenn SPI aktiviert ist, hat das PORTB3-Bit Einfluß auf das Signal bei Ausgabe über MOSI?


Der Hintergrund ist, dass ich gerne Daten über MOSI ausgeben möchte, jedoch soll konstant Vcc anliegen, jedoch 0V wenn ein Bit gesendet wird. Für den Fall dass das intern nicht machbar ist, habe ich an einen Inverter über einen Transistor gedacht. Dazu müsste aber doch Strom in den MCU fliessen, oder?
Alles was ich zu diesem Thema zu wissen denke habe ich aus dem Controller-Datenblatt und noch keine Hardware zur Verfügung. Deshalb die vielleicht seltsam anmutenden Fragen.


Grüße,
Johannes

askazo
10.04.2007, 12:26
Bedeutet high, dass Vcc anliegt und low, dass 0V anliegen?
Ja, genau richtig.


Was passiert in jedem der beiden Modus wenn extern 5V angelegt werden? Fliesst Strom oder nicht?
Wenn der Ausgang auf high steht, kannst Du problemlos die 5V draufgeben, da fließt höchstens ein kleiner Ausgleichsstrom.
Steht der Ausgang auf Low und Du gibst 5V ohne Vorwiderstand drauf, fließt ein Kurzschlußstrom, welcher nicht wirklich gut für den Prozessor ist...


Und wenn SPI aktiviert ist, hat das PORTB3-Bit Einfluß auf das Signal bei Ausgabe über MOSI?
In dem Fall hat PORTB Bit 3 keine Wirkung



]Der Hintergrund ist, dass ich gerne Daten über MOSI ausgeben möchte, jedoch soll konstant Vcc anliegen, jedoch 0V wenn ein Bit gesendet wird. Für den Fall dass das intern nicht machbar ist, habe ich an einen Inverter über einen Transistor gedacht. Dazu müsste aber doch Strom in den MCU fliessen, oder?
Die Lösung für Dein Problem heißt Pull-Up-Widerstand. Zwischen Deine MOSI-Leitung und Vcc kommt einfach ein Widerstand (ca. 10k). Dadurch wird die MOSI-Leitung erst mal auf High gehalten. Wenn nun ein Bit gesendet wird, zieht der Prozessor die Leitung auf 0V, es fließt ein Strom über den Pull-Up in den Prozessor. Das ist aber völlig ok so.

Gruß,
askazo

Hubert.G
10.04.2007, 12:28
Bedeutet high, dass Vcc anliegt und low, dass 0V anliegen? Ja
Was passiert in jedem der beiden Modus wenn extern 5V angelegt werden? Fliesst Strom oder nicht? Wenn 0V anliegen fliesst Strom, wenn der nicht durch einen Widerstand begrenzt wird dann kann das Port sterben.
Spannung, also Vcc und GND dürfen an einen Ausgang nur über einen Widerstand angelegt werden der den Strom auf den max. zulässigen Wert begrenzt.

joh_walt
10.04.2007, 21:36
Danke euch für eure Antworten.


Wenn der Ausgang auf high steht, kannst Du problemlos die 5V draufgeben, da fließt höchstens ein kleiner Ausgleichsstrom.
Steht der Ausgang auf Low und Du gibst 5V ohne Vorwiderstand drauf, fließt ein Kurzschlußstrom, welcher nicht wirklich gut für den Prozessor ist...

Ah ja, den Widerstand hatte ich wiedermal vergessen.


Die Lösung für Dein Problem heißt Pull-Up-Widerstand. Zwischen Deine MOSI-Leitung und Vcc kommt einfach ein Widerstand (ca. 10k). Dadurch wird die MOSI-Leitung erst mal auf High gehalten. Wenn nun ein Bit gesendet wird, zieht der Prozessor die Leitung auf 0V, es fließt ein Strom über den Pull-Up in den Prozessor. Das ist aber völlig ok so.

Ups? Da muß ich wohl was überlesen haben.
Ich dachte ein Bit wäre ein kurzer Vcc-Impuls bei ansonsten 0V. Oder verursacht die extern anliegende Spannung ein Verkehren ins Gegenteil.

Ich weiss dass Elektronik wahrlich keine meiner Stärken ist, wenn das doch so einfach wie die Programmierung wäre ....

Johannes