Hallo Forum,
ich habe einen uC der an 5V betrieben wird.
Nun möchte ich einen Sesor anschließen der eine Betriebsspannung von
2,2-3,6V hat. gibt es eine Möglichkeit, die Ausgänge des uC so zu
programmieren, damit ich an einem Ausgang 3V entnehmen kann
(DA/Ausgang)? Oder benötige ich immer einen LM317?
vielen Dank im voraus
Miriam schrieb:> gibt es eine Möglichkeit, die Ausgänge des uC so zu> programmieren, damit ich an einem Ausgang 3V entnehmen kann
Ja, n simpler Spannungsteiler aus 2 Widerständen genügt.
Du hast 2 Baustellen:
1. Versorgung des Sensors:
Dazu brauchst Du einen Spannungsregler. Welcher geeignet ist, hängt von
der verfügbaren Quelle ab. Aus +5V +3V zu machen geht allerdings mit dem
LM317 nicht. Dazu brauchst Du einen LDO (low-drop-regulator).
Ein µC-Ausgang ist dafür ungeeignet.
2. Pegelanpassung der Sensorsignale.
Von +5V nach +3V reicht normalerweise ein Spannungsteiler. Von +3V nach
+5V ist es schwieriger. Dazu gibt es verschiedene Lösungen.
Für die beste/einfachste Lösung ist auch entscheidend:
- welche Versorgunsspannungen stehen zur Verfügung
- Stromverbrauch des Sensors
- was für eine Schnittstelle hat der Sensor
- Geschwindigkeit des Datenaustauschs
Sag doch mal, welchen Sensor Du an welchen µC hängen willst.
Gruß Dietrich
Für das I2C Interface würde sich ein (bidirektionaler) Logik
Level-Shifter anbieten.
Entweder besorgst du dir einen entsprechenden Level-Shifter Chip oder
baust eine kleine Schaltung mit 2 MOSFETs auf, die die Spannungen
stiftet, wie hier dargestellt:
http://playground.arduino.cc/uploads/Main/i2c-level-shift-mosfet.png
Grüße
Max
Hallo,
die HP03 gibt ja noch, habe ich hier seit ein paar Jahren im Einsatz.
Spannungsregler wäre ein LP2950 möglich, da aber dann 33k Widerstand am
Ausgang als Mindestlast ranhängen. MCP1702 ist auch gut.
Falls es nicht auf minimalen Stromverbrauch ankommt einen 78L33.
Der Sendor hat I2C als Bus. Bi-direktionale Pegelwandler sind also
nötig.
Oder einfach den Mega32 mit 3,3V betreiben, wenn das keine anderen
Probleme macht.
Viel Spaß, falls Du die Software selber programmieren willst, nette
Rechnerei bei den Luftdrucksensoren, hat mich damals ziemlich
beschäftigt.
http://www.avr.roehres-home.de/sensoren/i_druck_sensor.html
Gruß aus Berlin
Michael
warum so kompliziert?
ich benötige nur ca. 3V
dann würde ich doch den Spannungsteiler bevorzugen.
warum benötige für einen I2C Anschluss einen bidirektionaler Logik
Level-Shifter?
Miriam schrieb:> ich benötige nur ca. 3V> dann würde ich doch den Spannungsteiler bevorzugen.
Weil ein Spannungsteiler, der belastet wird, keine stabile Spannung
erzeugen kann. Beschwerden sind an Herrn Ohm zu richten, der das
gleichnamige Gesetz eingeführt hat.
Georg
Miriam schrieb:
> warum benötige für einen I2C Anschluss einen bidirektionaler Logik> Level-Shifter?
Du hast ja einen uC, der mit 5V läuft, also auch mit 5V über I2C
kommuniziert. Der Sensor funktioniert aber (wahrscheinlich) nur mit 3.3V
I2C, d.h. verträgt der Sensor die 5V vom uC nicht. Deshalb muss das
"5V-I2C", das vom uC kommt, auf "3.3V-I2C" "runtergeshiftet" werden.
Andersherum muss das "3.3V-I2C" vom Sensor in "5V-I2C" "hochgeshiftet"
werden, da der uC mit "5V-I2C" kommuniziert.
-> Bidirektionales Level-Shifting
Max
Hallo,
I2C hat OpenCollektor-(OpenDrain-)-Ausgänge, weil beide Seiten sowohl
SDA als auch SCK auf Low ziehen dürfen und können müssen.
Das wird Dir mit einem Spannungsteiler allein nicht gelingen.
Mit der Betriebsspannung ist es ähnlich. Die Stromaufnahme kann beim
HP03 um den Faktor 500 schwanken (1µA im StandBy, 500µA bei Wandlung. Du
kannst ja den Spannungsteiler mal berechnen, der Dir unter diesen
Umständen eine stabile Spannung für den HP03 liefert.
Stabil heißt hier nicht, daß sie innerhalb der zulässigen 2,2V bis 3,6V
des HP03 liegen muß, sondern daß sie sich nicht merklich ändern darf,
wenn er von StandBy auf Wandlung schaltet.
Man kann den HP03 mit z.B. 2,8V betreiben. Logik-ICs haben meist wenig
Verständnis dafür, wenn sich Spannung während des Betriebes plötzlich um
einen größeren Wert ändert.
Die machen dann meist, was sie wollen...
Hast Du Dir das Datenblatt des HP03 schonmal angeschaut?
Gruß aus Berlin
Michael
das habe ich mir auch gedacht.
Naja, hab den Controller an dem USB Port meines Computers angeschlossen.
Außerdem kann ich den dann an meiner Poerbank betreiben.
Mir wird wohl nichts anderes übrig bleiben.
Man lernt eben nie aus ;-)
Kannst du uns noch sagen, ob du deinen ATMega 32 auf einem Steckbrett
aufgebaut hast, oder ist das ein fertiges Entwicklungsboard?
Wenn du einen Spannungsregler für µC + Sensor verwendest, dann kannst du
beides trotzdem noch am USB port betreiben. Halt mit einer Wandlung von
USB -5V--> 3.3V
Alex
Um einen Spannungsregler wirst du nicht herum kommen. Ob du nun µC und
Sensor oder nur den Sensor mit 3V betreibst bleibt dir überlassen.
Wenn du nur den Sensor mit 3V betreibst spricht nichts dagegen die
PullUp-Widerstände an die 3V zu legen. Der µC erkennt die 3V eindeutig
als high.
Hubert G. schrieb:> Der µC erkennt die 3V eindeutig> als high.
Hi,
Das ist etwas mutig. 3,3V wäre besser und dann vielleicht bei 100kHz
belassen und nicht Vollgas geben.
Von 5 auf 3,3V reicht es, die Pullups an 3,3V zu legen.
Michael U. schrieb:> Falls es nicht auf minimalen Stromverbrauch ankommt einen 78L33.
Kein so guter Tip, das geht nur mit Glück.
LP2950-3.3 ist da schon besser. Mindestlast braucht der nicht aber ist
etwas wählerisch bei der Beschaltung mit C's -> Datenblatt lesen.
Gruß,
Norbert