Hallo
Ich betreibe einen ATMega 8 mit 3,3V weil ich direkt daran ein ZigBee
Modul mit 3,3V betreibe.
Jetzt soll noch eine Lichschranke mit integrierten Schmitttrigger
angeschloßen werden. Die Lichschranke braucht mindestens 4,5V also nehme
ich die 5V die ich noch auf dem Board habe.
Jetzt soll der Ausgang der Lichtschranke an den Eingang des ATMega8 and
den Int0. Der Int0 ist als Eingang mit aktivierten Pullup Widerstand
konfiguriert.
Da ja der ATMega selbst mit 3,3V rennt, kann ich die Lichtschranke
direkt an den Eingang anschließen oder muss ich erst den Pegel auf 3,3V
senken?
Kurzfristig geht das bestimmt aber geht das auch langfristig oder ist
der Eingang auch 5V kompatibrl wenn die Versorgungsspannung nur 3,3V
beträgt?
Andreas schrieb:> ist> der Eingang auch 5V kompatibrl wenn die Versorgungsspannung nur 3,3V> beträgt?
Nein! Steht aber auch eindeutig im Datenblatt.
Wenn Deine Lichtschranke einen OC-Ausgang hat, kanst Du ihn direkt
anschließen. Wenn nicht brauchst Du mindestens einen Spannungsteiler.
1. Möglichkeit:
Wenn das Signal relativ langsam sein kann, dann verbindest du den
Lichtschrankenausgang einfach über einen großen Widerstand mit dem 3.3V
I/O-Pin.
Das bedeutet dass ein Strom in die 3.3V Versorgung über den Widerstand
fließt.
Du musst es jetzt so machen dass der Stromverbrauch deines Controllers
(oder allgemein der 3.3V Verbraucher) höher ist als der Strom der über
den PullUp in die Versorgung fließt.
Wenn dein AVR 1mA verbraucht, dann kann der Widerstand einen Wert von
1,7kOhm (oder mehr) haben.
Wenn dein AVR jetzt aber nur 1µA zieht weil er in den Stromsparmodus
schaltet um Energie zu sparen, dann würde über den 1,7kOhm Widerstand
ein Strom in die Versorgung fließen und die Kondensatoren auf 4,5V
aufladen.
Also bei 1µA darfst du dann nur noch einen (5-3,3)/0,000001=1,7MOhm
Widerstand nutzen.
2. Möglichkeit:
zwei Widerstände und einen kleinen Transistor
Der Strom fließt von den 5V der Lichtschranke über einen Widerstand in
die Basis des NPN-Transistors (dessen Emiter liegt auf GND) und der
Collektor ist an einem Widerstand der zu den 3.3V führt.
Den I/O-Pin legst du jetzt einfach an den Collektor.
Also wenn jetzt 5V anliegen bekommst du jetzt ein Low und wenn weniger
als 0.6V anliegen bekommst du ein High.
Das Signal ist also invertiert, aber das kann man ja leicht durch eine
Bitoperation wieder im AVR invertieren.
Andreas schrieb:> Kurzfristig geht das bestimmt aber geht das auch langfristig oder ist> der Eingang auch 5V kompatibrl wenn die Versorgungsspannung nur 3,3V> beträgt?
Grundsätzlich gilt bei allen ICs, dass die Eingangssignale nicht größer
als die positive und nicht kleiner als die negative Versorgungsspannung
sein dürfen, oder wenn überhaupt, dann allerhöchstens mit einer
Diodenspannung (0.3-0.5V) Unterschied. Ansonsten gibts Bruch, wenn Du
nicht besondere Maßnahmen getroffen hast.
74LVC und 74AHC ICs (AHC, aber nicht HC) sind 5V-tolerant, auch wenn sie
mit einer niedrigeren Spannung betrieben werden. Es gibt auch spezielle
Pegelwandler-ICs wie 74LVC1T45, die zwei Vcc-Pins haben, einen für das
Eingangssignal, einen für das Ausgangssignal.
Eine Transistorstufe ist eine andere Möglichkeit. Oder
Strombegrenzungswiderstand plus 3.3V Zener-Diode gegen GND. Die
Zener-Diode begrenzt die Spannung auf 3.3V, der Widerstand sorgt dafür,
dass nur der zulässige Strom durch die Zenerdiode fließt.
Das sind nur Beispiele. Irgend etwas musst Du machen. Und das sind
Grundlagen, das gilt nicht nur für AVRs, sondern allgemein.
fchk
Mike J. schrieb:> 1. Möglichkeit:
Auweia, wer macht denn sowas.
Mike J. schrieb:> 2. Möglichkeit:
Hier ist entweder ein Widerstand oder der Transistor zuviel.
Also entweder ein normaler Spannungsteiler
(Lichschranke-Widerstand-AVR-Widerstand-Masse). Oder die Variante mit
dem Transistor, dann aber ohne "Collektor ist an einem Widerstand der zu
den 3.3V führt", der AVR hat interne Pullup.
guest schrieb:> Auweia, wer macht denn sowas.
Z.B. Texas Instruments in http://www.ti.com/lit/pdf/spna087, allerdings
mit einem TTL-Ausgang, der eine relativ kleine Spannungsdifferenz zu 3V
hat. Bei einem CMOS-Ausgang, der wirklich bis 5V geht, wäre es eine
bessere Idee, den überflüssigen Strom mit einem PNP-Transistor zur Masse
abzuleiten (Tip 11 in "3V Tips 'n Tricks":
http://ww1.microchip.com/downloads/en/DeviceDoc/chapter%208.pdf).
> der AVR hat interne Pullup.
Die könnten zu schwach (langsam) sein.
Also ich frag mich grad warum man nicht einen einfachen Spannungsteiler
benutzt:
Sensorausgang - Widerstand 5k1 - Widerstand 10k - Masse
|
Atmega-Pin
Ist das zu einfach?
guest schrieb:> Auweia, wer macht denn sowas.
;-)
Michael K. schrieb:> Ist das zu einfach?
Zu kompliziert.
Den 10K kannste weglassen.
Die im ATMega steckenden Dioden leiten das gerne gegen dessen Vcc ab.
So manch einem ARM würde es vermutlich dabei zerreißen.
Aber bis auf den Reset Pin macht den AVR das eigentlich nix aus.
Ulrich F. schrieb:> Den 10K kannste weglassen.
Würde ich nur weglassen, wenn an der 3,3V Versorgung garantiert genug
Last dranhängt, um einen Anstieg von VCC durch parasitäre Versorgung zu
verhindern. Bei Sleep-Modi diverser Komponenten ist das nicht
zwangsläufig der Fall.
Michael K. schrieb:> Also ich frag mich grad warum man nicht einen einfachen Spannungsteiler> benutzt:>> Sensorausgang - Widerstand 5k1 - Widerstand 10k - Masse> |> Atmega-Pin>> Ist das zu einfach?
Für LANGSAME Signale geht das noch. Für schnelle Signale ist diese
Lösung ungeeignet.
fchk
Frank K. schrieb:> Für LANGSAME Signale geht das noch. Für schnelle Signale ist diese> Lösung ungeeignet.
Na da bin ich mal auf die Erklärung gespannt. Also für 10 MHz Signale
ist das noch mehr als ausreichend. Also, was verstehst du unter
"Langsame Signale"?
Michael K. schrieb:> was verstehst du unter "Langsame Signale"?
Alles, was aus einer Lichtschranke herauskommt. :D
Und wir wissen immer noch nicht, ob dieses Modell nicht vielleicht doch
einen Open-Collector-Ausgang hat ...