Port als Output: drive hi/low, hä?
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
Re: Port als Output: drive hi/low, hä?
Zitat:
Zitat von joh_walt
Bedeutet high, dass Vcc anliegt und low, dass 0V anliegen?
Ja, genau richtig.
Zitat:
Zitat von joh_walt
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...
Zitat:
Zitat von joh_walt
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
Zitat:
Zitat von joh_walt
]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
Re: Port als Output: drive hi/low, hä?
Danke euch für eure Antworten.
Zitat:
Zitat von askazo
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.
Zitat:
Zitat von askazo
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