Hi!
Also, ich möchte einen ATMega8 und einen Raspberry Pi über SPI oder I2C
verbinden. Der Raspberry PI liefert die 5V, die über die (seine) USB
Stromquelle bereitgestellt werden und 3,3V, wobei Letztere das Ziehen
von 50mA erlaubt, während die einzige Limitierung bei den 5V nur das
verwendete USB Netzteil ist.
Nun reichen mir die 50mA nicht aus, da ich u.A. ein Relais schalten
möchte. Da ich ein ausreichend starkes Netzteil habe, funktioniert es
über die 5V Problemlos.
Die GPIO Pins des Raspberry PIs funktionieren allerdings nur mit 3,3V.
Da der uC allerdings auf 5V läuft, habe ich hier also ein Problem, dem
ich nun mit einem Widerstand entgegenwirken wollte: Es müssen von den 5V
1,7V abfallen (=U), aber was ist hier I? Je nachdem ob ich gerade das
Relais schalte oder eine 7-Segment Anzeige, die nur bei neuen Messwerten
aktiviert wird, läuft, zieht die Schaltung unterschiedlich viel Strom.
Gibt es hier einen "Trick", der ohne einen Spannungsregler für 3,3V
auskommt? Grundsätzlich scheue ich mich nicht vor Ausgaben, aber
einzelne Teile zu bestellen - da ist das Porto schon ziemlich hoch für.
Und letztendlich würde ich für SPI sogar drei davon benötigen (oder?).
Vielen Dank im Voraus!
Wenn ich das richtig verstehe brauchst du keinen Spannungsregler sondern
einen *Pegelwandler*. Dazu gibt es hier einen Artikel, im
einfachsten Falle reicht schon ein simpler Spannungsteiler.
Kannst du Mal eine Skizze anfertigen, was du vor hast. Irgendwie
schaltet mein Hirn beim Lesen des Textes automatisch ab (wohl so eine
Art Selbstschutz).
Einen 3,3V Ausgang kann man in den meisten Fällen direkt mit einem 5V
Eingang verbinden. Da musst Du mal genau die Ausgangsspannung bei High
Pegel mit den Anforderungen des AVR vergleichen.
Wenn die Spannung nicht reicht, brauchst Du einen Level-Shifter. Dafür
gibt exs 74er IC's. Für bidirektionale Leitungen eigent sich ein MOSFET
Transistor und 2 Widerstände.
So hat ELV das gemacht:
http://www.elv.de/3-achsen-beschleunigungssensor-3d-bs-komplettbausatz.html
Einen 5V Ausgang kannst Du (bei geringen Frequenzen, schätzungsweise bis
20khz) über einen 2,2k-Ohm Widerstand mit einem 3,3V Eingang verbinden.
Dabei wird ausgenutzt, dass der Eingang Schutzdioden enthält, die zu
hohe Spannung nach VCC ableitet. Der Widerstand begrenzt den Strom der
dabei fließt. Alternatiov geht's auch mit einem Spannungsteiler oder
einer Z-Diode.
Danke für den Tipp, das sieht sehr gut aus!
Aber wie funktioniert das Ganze? Ich interessiere mich für die Lösung
"1kOhm VOrwiderstand für 5V -> 3.3V". In diesem Fall fehlt doch trotzdem
noch die Stromstärke als Unbekannte für das Ohmsche Gesetz, oder? Wie
kann man ohne die Stromstärke zu kennen den Widerstand fest auf 1k
setzen?
Ich hab grad was von 2,2 kOhm gelesen.
5 Volt am Ausgang, 3,3 Volt für den Eingang, mit den Schutzdieoden
werdens dann ca. 4 Volt werden. Bleibt 1 Volt für den Spannungsabfall
über den Widerstand.
Kleine Info der Raspberry Pi hat keine "Schutzdioden" an den Eingängen!
Mehr als 3,3V am Eingang bedeuten das Risiko der Zersörtung.
Z-Dioden Beschaltungen sind riskant da sie die Ausgänge des Pi zu stark
belasten. Habe ich mir mal angeschaut aber wieder verworfen da das
Schalten von zwei GPIO Pins mit Z-Diode den Pi sterben lassen können.
Auch wenn es nicht geplant ist und nur versehentlich passiert!
Für I2C gibt es spezielle Levelshifter Bausteine oder eben direkt selber
aus MOSFETS aufbauen. Auf jeden fall solltest du einen 3,3V
Spannungswandler mit bestellen, die 50mA die du abzapfen darfst sind
schnell verbraucht. Ich würde die finger von Widerständen und anderen
Bauteilen lassen wenn du nicht genau weist was du vorhast. Da du ja
anscheinend nicht mal drauf kommst welcher Strom fließt. Um den Strom zu
bestimmen musst du wissen wie die folgende Schaltung Aufgebaut ist. Dann
kannst du deinen Strom berechnen. Du musst also die Last kennen.
Kleiner Tipp: Schaltung aufbauen und alle Ausgänge als HIGH(3,3V)
annehmen und die Gesamte Stromaufnahmne messen. Wenn sie größer als 50mA
ist solltest du dir eine neu Schaltung ausdenken.
Mich würde die Endbeschaltung interessieren. Also bitte Posten wenn es
was geworden ist.
viel Erfolg
Peter Reither schrieb:> Die GPIO Pins des Raspberry PIs funktionieren allerdings nur mit 3,3V.> Da der uC allerdings auf 5V läuft
Lass beide mit 3,3V laufen und schalte das Relais mit 5V.
Stichwort "open collector".
mfg.
Thomas Eckmann schrieb:> Lass beide mit 3,3V laufen und schalte das Relais mit 5V.> Stichwort "open collector".
Sehr gute Idee, danke!
PiWi schrieb:> Mich würde die Endbeschaltung interessieren. Also bitte Posten wenn es> was geworden ist.
Mach ich, dauert nur noch ein wenig, da ich noch einen Connector für das
verwendete LCD warte..
Ich habe gerade einen ATMega (Slave) über SPI mit einem Raspberry Pi
(Master) verbunden. ATMega muß auf 5V laufen, da ich 20MHz Takt und
weitere 5V-Peripherie brauche.
Die 3,3V-Ausgänge des Pi schalte ich einfach auf die Eingänge des AVR,
kein Problem. Um den Pegel von MISO auf 3,3V zu begrenzen, habe ich
einfach eine rote Leuchtdiode dazwischengeschaltet. Auf der Seite des Pi
zieht ein 1k-Widerstand die Leitung definiert auf GND, wenn die Diode
sperrt. Funktioniert bei mir mit 950kHz.