Hallo an alle interessierten...
Ich brauche Hilfe bzw. Verifizierung meines Schaltplans. Unsicher bin
ich bei folgendem:
- Sind die Dioden nötig um den RPi zu schützen?
- Haben die Dioden die korrekte Modellbezeichnung?
- Haben die Wiederstände R3-R8 den korrekten Wert?
Grundsätzlich funktioniert die Schaltung problemlos. Ich bin nur kein
Elektronik Profi, deshalb dieser Beitrag.
Ich nutze diese Schaltung bei meinem RPi 5, mit DigitalDevices DVB-C
PCIe Karte, der als Tvheadend Server dient. Man kann diese Schaltung
aber auch ohne IR Empfänger nutzen, welches ich auch vorhabe und beim
Chinesen ein paar Platinen machen lassen will.
Grundsätzliche Funktionen der Schaltung:
- RPi ist aus (+3.3V Rail am RPi ist LOW, GPIO Ausgang ist LOW): Nach
dem drücken des Tasters oder IR Fernbedienung fährt der RPi hoch (+3.3V
Rail am RPi ist HIGH). Die Led blendet(fadet) hoch und runter bis ein
Python Skript den GPIO Ausgang HIGH stellt. Dieses kann durch ein
Systemd Service ausgeführt werden welcher wiederum auf einen beliebigen
Service wartet.
- RPi ist ein (+3.3V Rail am RPi ist HIGH, GPIO Ausgang ist HIGH): Nach
dem drücken des Tasters oder IR Fernbedienung fährt der RPi runter. Ein
Python Skript stellt den GPIO Ausgang LOW. Dieses kann durch ein Systemd
Service ausgeführt werden welcher wiederum auf einen beliebigen Service
wartet. Die Led blendet(fadet) hoch und runter bis das +3.3V Rail am RPi
LOW ist.
- Das ganze geht auch mit Konsolen Befehlen wie reboot, halt oder
poweroff
rpi-state-set-gpio-high.service:
1
[Unit]
2
Description=Listens for target and sets GPIO pin HIGH
Die Schaltung ist Murx. Der Spannungsregler hat (je nach Datenblatt)
eine Drop-Spannung von 1,7V oder 2 V und dann machst du davor noch eine
normale Si-Diode zum Verpolungsschutz. Bei der geringen
Spannungsdifferenz muß da ein Low-drop Regler hin. Und dann muß man
schauen ob es noch für eine Schutzdiode reicht - das muß dann aber auf
jeden Fall eine Schottky-Diode sein.
Danke für den Hinweis.
Habe ich vergessen zu erwähnen:
- Bisher benutze ich ein AMS1117-3.3 Modul vom Ali.
- Neu wollte ich den L78L33 benutzen, weil ich nur 10-20mA benötige. Die
Drop-Spannung hatte ich nicht auf dem Schirm.
Was ist mit dem Rest der Schaltung und mit meinen Fragen?
Ben schrieb:> Hallo an alle interessierten...>> Ich brauche Hilfe bzw. Verifizierung meines Schaltplans. Unsicher bin> ich bei folgendem:> - Sind die Dioden nötig um den RPi zu schützen?
Nö, läuft ja alles mit 3,3V und Widerstände sind auch dazwischen.
> - Haben die Dioden die korrekte Modellbezeichnung?
Im Prinzip ja, braucht aber keiner.
> - Haben die Wiederstände R3-R8 den korrekten Wert?
Im Prinzip ja, braucht aber keiner.
Das kann man alles deutlich vereinfachen.
Dein Attiny kann die IOs als Open Drain betreiben, da braucht es keinen
Transistor. 3,3V Signale kann man dort direkt anlegen. OK, ein externen
Pull-Down widerstand muss sein, damit dort sauber 0V anliegen, wenn der
Himbeerkuchen aus ist. R1 ist eher falsch, denn damit kann man das
IO-Pin mit internen Pull-Up Widerstand nicht sauber auf LOW ziehen. Für
die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand. Ein
echter Spannungsregler ist hier Luxus, außerdem muss der eine Low Drop
Typ sein und mit weniger als 1,7V Differenzspannung klar kommen. Die
ganzen Dioden sind Unfug.
Lad mal deine KiCAD-Datei hoch, dann kann man den Schaltplan
korrigieren.
Ben schrieb:> - Neu wollte ich den L78L33 benutzen, weil ich nur 10-20mA benötige.
Wozu brauchst du hier 20mA? Der ATtiny braucht vielleich 1-2mA, dazu 5mA
für die LED, fertig. Mit ner 1mA Low Current LED reicht noch weniger.
>Die> Drop-Spannung hatte ich nicht auf dem Schirm.
Der L78L33 geht nicht. Wenn dann eher dein AMS1117, der braucht nur
reichlich 1V, erst recht bei einer handvoll mA. Ist aber auch reiner
Luxus.
Ben schrieb:> Neu wollte ich den L78L33 benutzen, weil ich nur 10-20mA benötige. Die> Drop-Spannung hatte ich nicht auf dem Schirm.
Bei dem geringen Strom gibt es jede Menge Auswahl, z.B. MCP1702,
MCP1703, HT7833, HT7333. Die werden allesamt deutlich unter 200mV
verlieren und haben nur wenige µA Querstrom.
Helmut -. schrieb:> Ben schrieb:>> - Haben die Wiederstände R3-R8 den korrekten Wert?>> Früher hätten wir 100 Mal schreiben müssen: Wiederstände gibt es nicht!
Früher und heute gibt es KLUGSCHEISSER bei denen dabei einer ab geht und
ABSOLUT NICHTS BESSERES ZUM THEMA BEITRAGEN!
Falk B. schrieb:> Dein Attiny kann die IOs als Open Drain betreiben, da braucht es keinen> Transistor. 3,3V Signale kann man dort direkt anlegen. OK, ein externen> Pull-Down widerstand muss sein, damit dort sauber 0V anliegen, wenn der> Himbeerkuchen aus ist.
Verstehe ich nicht so richtig weil der RPi Power Pin hat ein Pull-Up
Widerstand und wird mit GND geschalten. Deshalb der Transistor: ATtiny
HIGH / Power Pin LOW. Ich Versuche es morgen mal ohne Transistor. Ich
lerne mit physischen Versuchen besser.
Falk B. schrieb:>R1 ist eher falsch, denn damit kann man das IO-Pin mit internen Pull-Up >Widerstand nicht sauber auf LOW ziehen.
Der Pin an dem der Taster hängt wird auch für Reset und Programmieren
genutzt. Wird intern mit ~81K hochgezogen. R1 mit 36K ist deshalb damit
der Taster kein Reset auslöst. Mein Code dazu:
Falk B. schrieb:>Für die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand.
Habe ich bisher noch nie in Betracht gezogen und würde gerne mehr
darüber wissen. Spannend wäre wie der Vorwiderstand berechnet würde.
Kannst du mir bitte Links zu dem Thema geben?
Falk B. schrieb:> Lad mal deine KiCAD-Datei hoch, dann kann man den Schaltplan> korrigieren.
Ich will ja auch was lernen... Sich Schuhe binden lassen kann jeder ;)
Aber mache ich wenn ich eure Vorschläge umgesetzt habe.
Danke und Gruess
Ben
Ben schrieb:> Falk B. schrieb:>> Dein Attiny kann die IOs als Open Drain betreiben, da braucht es keinen>> Transistor. 3,3V Signale kann man dort direkt anlegen. OK, ein externen>> Pull-Down widerstand muss sein, damit dort sauber 0V anliegen, wenn der>> Himbeerkuchen aus ist.>> Verstehe ich nicht so richtig weil der RPi Power Pin hat ein Pull-Up> Widerstand und wird mit GND geschalten.
Genau das kann der ATTiny auch. Braucht man am Ende aber nicht. Man kann
das Signal ganz normal mit einem Ausgang treiben. Der Pull-Up im
Raspberry Pi ist nur dafür da, damit man einen einfachen Taster gegen
GND nutzen kann.
> Der Pin an dem der Taster hängt wird auch für Reset und Programmieren> genutzt. Wird intern mit ~81K hochgezogen.
Die sind aber stark toleranzbehaftet.
> R1 mit 36K ist deshalb damit> der Taster kein Reset auslöst. Mein Code dazu:const uint16_t> buttonReading = analogRead(BUTTON_PIN);> const bool buttonState = (buttonReading > 250 && buttonReading < 750) ?> LOW : HIGH;
Naja, du liest den Pin analog aus. Kann man machen, aber ich würde mich
nicht auf die internen 81k verlassen, die sind SEHR ungenau!
>>Für die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand.>> Habe ich bisher noch nie in Betracht gezogen und würde gerne mehr> darüber wissen. Spannend wäre wie der Vorwiderstand berechnet würde.> Kannst du mir bitte Links zu dem Thema geben?https://www.elektronik-kompendium.de/sites/slt/1012151.htm
Ben schrieb:> Früher und heute gibt es KLUGSCHEISSER bei denen dabei einer ab geht und> ABSOLUT NICHTS BESSERES ZUM THEMA BEITRAGEN!
Ein Tipp aus der Praxis: wenn dich jemand auf einen Fehler hinweist,
dann solltest du (wenigstens) dir selber eingestehen, dass das ein
Fehler war.
Und noch einer: arbeite an deiner Kritiktoleranz.
Ben schrieb:> Falk B. schrieb:>> Für die 3,3V für den ATtiny reicht eine 3,3V Z-Diode mit Vorwiderstand.> Spannend wäre wie der Vorwiderstand berechnet würde.
Im Idealfall so, dass an ihm 5V-3,3V abfallen. Denn dann ist bei 3,3V
kein Strom mehr übrig für die Zenerdiode. Dazu musst du wissen, welche
Strom in den Tiny fließt. Weil du es nicht sicher weißt, musst du also
den höchsten in den Tiny fließenden Strom ermitteln. In diesem
Zusammenhang solltst du dir dann auch die Kennlinie einer
3,3V-Zenerdiode in diesem Bereich anschauen. Die hat nämlich ihre 3,3V
erst bei einem bestimmten Strom. Und sie leitet schon deutlich vorher.
Also nimmst du den Strom in den Tiny + den Strom, den die Zenerdiode für
3,3V braucht und rechnest: RV = (höchstens) 1,7V/(Itiny+Izd). Und dann
solltest du anschauen, ob die Belastbarkeit des Vorwiderstands
ausreicht. In deinem Fall sind das sicher nur wenige mW, es reicht ein
0603-Vorwiderstand aus.
Insgesamt wirst du schnell herausfinden, dass es gar nicht so einfach
ist, einne Shuntregler mit einer 3V3-Zenerdiode.
Ich habe übrigens ganz bewusst "Zenerdiode" geschrieben. Denn Z-Dioden
in diesem Spannungsbereich wirken vorrangig durch den Zenereffekt. Erst
ab ca. 6V kommt der Avalanceeffekt vorrangig mit rein. Der bringt dann
dann auch eine steilere Kennlinie (oder einen geringeren dynamischen
Widerstand) mit sich.
> Kannst du mir bitte Links zu dem Thema geben?
Stichwort: Paralellregler oder Shuntregler.
Ich finde übrigens die Diode D4 auch spannend. Wie sieht dort die
Beschaltung am RPi aus? Denn wenn der IR-Empfänger 0V ausgibt, hast du
dort am Pin 5 des J2 ohne zusätzlichen Pulldown einen undefinierten
Pegel.
Habe die neue v0.08 KiCAD Datei und PDF mal angehängt...
EDIT: Gerade bemerkt das ich den Kondensator bei der Zenerdiode
vergessen habe...
Lothar M. schrieb:> Ben schrieb:>> Früher und heute gibt es KLUGSCHEISSER bei denen dabei einer ab geht und>> ABSOLUT NICHTS BESSERES ZUM THEMA BEITRAGEN!> Ein Tipp aus der Praxis: wenn dich jemand auf einen Fehler hinweist,> dann solltest du (wenigstens) dir selber eingestehen, dass das ein> Fehler war.>> Und noch einer: arbeite an deiner Kritiktoleranz.
Wenn zur Kritik auch ein Vorschlag zur Verbesserung kommt habe ich keine
Probleme damit. Tippfehler passieren jedem ständig und dies ist hier
kein Grammatik Forum. Mir persönlich sind Schreibfehler eigentlich egal
und kann gut mit leben. Aber wenn wir schon dabei sind...
Lothar M. schrieb:> Insgesamt wirst du schnell herausfinden, dass es gar nicht so einfach> ist, einne Shuntregler mit einer 3V3-Zenerdiode.
Ich denke du meintest "einen". ;)
Lothar M. schrieb:> Und dann> solltest du anschauen, ob die Belastbarkeit des Vorwiderstands> ausreicht. In deinem Fall sind das sicher nur wenige mW, es reicht ein> 0603-Vorwiderstand aus.
Habe 0805 Bauteile, für alles kleinere habe ich keinen Nerf.
- Led an 6.9mA
- Led aus 6.1mA
- BZX55C3V3 Izt 5mA
1.7V / 0.0119A = 142.86 Ohm meistens sind die 5V vom RPi aber 5.1V
1.8V / 0.0119A = 151.26 Ohm da ich 150 Ohm Widerstände habe passt das.
Was mich noch beschäftigt ist:
Würde nach der Diode D2 noch ein 1K Widerstand helfen um den RPi von
möglichen 5V (3.3V Eingang) zu schützen falls die Zenerdiode einen
Kurzschluss hat?
Lothar M. schrieb:> Ich finde übrigens die Diode D4 auch spannend. Wie sieht dort die> Beschaltung am RPi aus? Denn wenn der IR-Empfänger 0V ausgibt, hast du> dort am Pin 5 des J2 ohne zusätzlichen Pulldown einen undefinierten> Pegel.
Ich vermute das macht der Bootloader vom RPi mit:
Ben schrieb:> - BZX55C3V3 Izt 5mA> 1.8V / 0.0119A = 151.26 Ohm da ich 150 Ohm Widerstände habe passt das.
Na ja, wenn es denn sein soll und nicht darauf ankommt, wie weit die 3V3
abweichen und Du Z-Dioden vorrätig hast. Andere Leute würden da einen
LDO verwenden.
> Würde nach der Diode D2 noch ein 1K Widerstand helfen um den RPi von> möglichen 5V (3.3V Eingang) zu schützen falls die Zenerdiode einen> Kurzschluss hat?
Angsthase.
Viel interessanter ist, ob PA1-ATtiny, Out des TSOP4838 und Anschluß_5
vom RPi nicht gegeneinander arbeiten können.
Ben schrieb:> Ich vermute
Huh, schlechte Idee bei der Schaltungsentwicklung. Worauf basiert diese
Vermutung?
> Was mich noch beschäftigt ist:> Würde nach der Diode D2
Meinst du die D4?
> noch ein 1K Widerstand helfen um den RPi von> möglichen 5V (3.3V Eingang) zu schützen falls die Zenerdiode einen> Kurzschluss hat?
Wenn die Zenerdiode einen Kurzschluss hat, dann kommen am Tiny 0V an und
damit auch am RPi --> unkritisch.
Kritisch wäre also eher eine Unterbrechung der Zenerdiode. Aber
1. wie sollte die Zenerdiode unterbrechen? Wenn Halbleiter kaupttgehen,
dann üblicherweise durch eine Siliziumschmelze, und die macht aus dem
Halbleiter einen Volleiter.
2. selbst wenn sie unterbrechen würde, fielen am Vorwiderstand immer
noch 150R*6mA = 900mV ab und dann kämen noch 0,6V an der Diode D4, von
den 5V1 blieben also schlimmstenfalls 5V1-1V5 = 3,6V übrig. Und das wäre
noch immer im grünen Bereich für den 3V3 Eingang des RPi.
Falk B. schrieb:> Naja, du liest den Pin analog aus. Kann man machen, aber ich würde mich> nicht auf die internen 81k verlassen, die sind SEHR ungenau!
Am Ende ist es ein Spannungsbereich von 0.8V bis 2.4V in dem der Taster
sich bewegen muss. Mit dem 36K Ohm Widerstand lieg ich bei 1.6V. Auch
möglich das der interne Widerstand 33K Ohm hat (Den Wert 36K Ohm habe
ich vor langer Zeit mal bestimmt). Ich habe den Reset Pin bei ATtiny's
schon oft so problemlos benutzt (Gerade bei den alten 25/45/85er). Hoch
Volt Programmierer will ich vermeiden.
Manfred P. schrieb:> Ben schrieb:>> - BZX55C3V3 Izt 5mA>> 1.8V / 0.0119A = 151.26 Ohm da ich 150 Ohm Widerstände habe passt das.>> Na ja, wenn es denn sein soll und nicht darauf ankommt, wie weit die 3V3> abweichen und Du Z-Dioden vorrätig hast. Andere Leute würden da einen> LDO verwenden.
Habe beides nicht vorrätig und teste die Dioden Variante wenn ich sie
habe.
Manfred P. schrieb:> Viel interessanter ist, ob PA1-ATtiny, Out des TSOP4838 und Anschluß_5 vom RPi
nicht gegeneinander arbeiten können.
Was ich durch testen bestätigen kann ist: Der ATtiny arbeitet nicht
gegen den RPi. Die spucken gleichzeitig die gleichen Adressen und
Befehle von der IR Fernbedienung aus.
Lothar M. schrieb:> Ben schrieb:>> Ich vermute> Huh, schlechte Idee bei der Schaltungsentwicklung. Worauf basiert diese> Vermutung?
Leider ist vom RPi 5 kein Schaltplan verfügbar aber die GPIOs kann man
auch zB. mit Python je nach Bedarf hoch oder runterziehen. Ich mach mir
daher keine Sorgen.
Ich würde statt der vielen Einzelbauteile einfach einen Levelshifter wie
den TXU0104 einsetzen. (Außer für den Power button) Die Power Domain vom
Ausgang des TXU einfach an die 3.3V des RPI5
Den ATtiny und TSOP4838 dann direkt an den 5V betreiben.
Oder die ATtiny IOs Richtung RPI als Open-Collector schalten und
eventuell noch 1k Widerstände" Richtung RPi. (wie oben vorgeschlagen)
Die Anbindung des TSOP4838 an den RPI finde ich Grenzwertig, Pull-Up
über Diode an den GPIO Dort muss dann wohl ein Pull-Down sein...
Ben schrieb:> Leider ist vom RPi 5 kein Schaltplan verfügbar
Man muss sich trotzdem nicht auf Vermutungen verlassen, sondern kann das
am RPi problemlos ausmessen: den Pin in den gewünschten Modus "Eingang
mit Pullup" scripten und dann mit einem Multimeter und einem
47k-Widerstand (a) nach Masse und (b) nach Vcc testen, wie der Pin
reagiert. Wenn sich dabei
1. an der gemessenen Spannung gar nichts ändert, dann ist der Pin ein
Ausgang
2. die gemessene Spannung bei (a) 0V und bei (b) 3V3 ist, dann ist der
Pin ein Eingang ohne Pullup
3. die Spannung bei (b) dann 3V3 und mit (a) irgendwas "mittendrin" ist,
dann ist ein interner Pullup eingeschaltet
> aber die GPIOs kann man auch zB. mit Python je nach Bedarf hoch oder> runterziehen.
Es geht nicht darum, dass man die Portpins als Ausgang high oder low
schalten kann, sondern ob man an einem Eingangs-Portpin einen Pullup
zuschalten kann.
Andreas M. schrieb:> Ich würde statt der vielen Einzelbauteile einfach einen Levelshifter wie> den TXU0104 einsetzen.
So ein Unsinn! Das ist alles 3,3V!
> (Außer für den Power button) Die Power Domain vom> Ausgang des TXU einfach an die 3.3V des RPI5
Nö, denn der liefert keine Spannung, wenn der Raspberry PI aus ist!
> Den ATtiny und TSOP4838 dann direkt an den 5V betreiben.
Nö.
Lothar M. schrieb:> Es geht nicht darum, dass man die Portpins als Ausgang high oder low> schalten kann, sondern ob man an einem Eingangs-Portpin einen Pullup> zuschalten kann.
Mit hoch runterziehen meinte ich Pullup/down aber ja hast recht...
Falk B. schrieb:> So ein Unsinn! Das ist alles 3,3V!
Stell Dir vor, Level-Shifter kann man nicht nur zum Shiften benutzen...
Falk B. schrieb:> Nö, denn der liefert keine Spannung, wenn der Raspberry PI aus ist!>>> Den ATtiny und TSOP4838 dann direkt an den 5V betreiben.>> Nö.
Doch, genau weil der 3V Pin keine Spannung liefert wenn der RPI aus ist
betreibt man einfach alles an den 5V und nimmt den Shifter um die
Powerdomains zu separieren. (Oder lässt den gleich ganz weg) Da brauchts
keinen Spannungsregler, Widerstände Dioden und sonst noch fürn Zeug.
Finde ich ein interessanter Ansatz das ohne Level-Shifter mit 5V zu
betreiben. Man könnte dann nur den TSOP mit der 3.3V Z-Diode betreiben
oder für den RPi einen separaten TSOP nutzen. Ich teste das mal am
Wochenende.
Ben schrieb:> Finale Version mit 3.3V LDO.
Funktioniert so nicht. R6 entkoppelt den Raspberry-PI Eingang nicht
ausreichend, wenn der aus ist. Wenn man es richtig macht, dann nimmt man
eine Diode und einen Widerstand. Außerdem sind R1, R3 und R5 immer noch
hyperliquide. Siehe Anhang. Siehe auch
Schaltplan richtig zeichnen
Ben schrieb:> Weshalb R7 nach 3.3V?
Weil es so richtig ist ;-)
Der IR-Empfänger hat einen Open Collector Ausgang, wobei dort schon
intern ein Pull-Up Widerstand drin ist. Wenn der Raspberry PI aus ist,
ist sein IO-Pin nahezu ein Kurzschluß gegen GND (über die Schutzdioden
der IOs). D2 verhindert das. R7 macht dann wieder einen normalen Open
Collector Ausgang draus.
Ausgangsstufen Logik-ICs
Mit UART als Befehlsempfänger und ohne Spannungsabschaltung der WS2812B.
Ich meinte mal eine Library für 1 Wire RX Serial im Netz gefunden zu
haben. Falls ich diese widerfinde, werde ich dies mal bevorzugt
behandeln und den code dazu schreiben.
Man könnte das 3.3V Rail vom RPi für die Spannungsabschaltung der
WS2812B nutzen aber dann wird der "Fade-Prozess" zufällig beendet.