Ich habe folgendes Problem: Ich habe ein Referenzsignal A, einen
Kurzhubtaster und muss zwei Schaltkreise gegenteilig durchschalten.
Genauer gesagt will ich meinen Raspberry Pi mit nur einem Knopf
herunterfahren können (wenn er an ist) und neustarten können (wenn er
aus ist).
Dazu habe ich bisher folgende Schnittstellen:
- Pin GPIO9 (Eingabe): Liest ein, ob ein Herunterfahren gewollt ist
- Pin GPIO10 (Ausgabe): Gibt den aktuellen Zustand des Pi aus, wobei
Hochgefahren=HIGH, runtergefahren=LOW
- zwei Reset-Pins: Müssen kurzgeschlossen werden, um den Pi
hochzufahren. Leider Reseten sie den Pi auch im Betrieb, weshalb der
Schaltkreis nur geschlossen werden darf, wenn GPIO10=LOW.
Mein Problem ist nun, dass der Kurzhubtaster zwar vier Pins hat, aber
komplett verbunden zu sein scheint. D.h. er schaltet Pin1 auf Pin3 und
Pin4 durch und Pin2 ebenfalls auf Pin3 und Pin4. Daher kann ich so keine
zwei getrennten Schaltkreise aufbauen.
Ich hab versucht, mit NPN- und PNP-Transistoren abhängig von GPIO10 an
der Basis die Schaltkreise gegenteilig zu schalten, aber da komm ich
dann irgendwie mit Pullup und Pulldown in Konflikt, sodass ständig
ungefähr 2V überall anliegen, weil alles verbunden ist.
Pullup und Pulldown für die Transistorbasen brauch ich aber glaub, denn
wenn der Taster nicht gedrückt ist, wären die Basen an beiden
Transistoren undefiniert.
Vielleicht kann man an den Widerstandsgrößen noch was drehen? Die sind
recht willkürlich gewählt.
Im Moment denke ich aber eher, dass der ganze Aufbau so nicht
funktioniert und ich zwei echte getrennte Kreise brauche, d.h. einen
Schalter, der zwei Kreise auf einmal schalten kann (oder einen anderen
Baustein, der das gleiche erledigt). Gibt es so einen Baustein, wie
heißt der?
Noch ein paar Anmerkungen:
- Den Reset-Schaltkreis hatte ich auch umgedreht, als ich gesehen habe,
dass man bei PNP die Spannungsversorgung an den Emitter legt.
Und zum besseren Verständnis, die zwei gewollten Schaltkreise sind:
1. Reset-Schaltkreis
2. Messungsschaltkreis zum Messen, ob an GPIO9 HIGH oder LOW anliegt.
Wobei ich gerade merke, dass mir dafür nochmal ein Pulldown-Widerstand
direkt vor GPIO9 fehlt. Allerdings ist es so, dass Shutdown schon lief,
Probleme machte immer Reset.
Kannst du genauer erläutern was das heisst:
"zwei Reset-Pins: Müssen kurzgeschlossen werden, um den Pi
hochzufahren."
Müssen die 2 Pins
a) miteinander verbunden werden, oder
b) beide kurz mit Ground verbunden werden zum hochfahren?
Funktioniert super. Man muss den Pin2 auf 0V ziehen. Bei Pin1 auf 3,3V
passiert zwar auch ein reset, aber klingt eher so als sei das ungewollt
(leichtes Knacken + alle LEDs aus, eigentlich sollte eine rot bleiben).
Eine Frage hab ich aber noch zum Fall 1: Wenn GPIO10 auf HIGH ist,
schaltet der linke Transistor ja durch. Warum liegt - wenn man den
Taster drückt - die Spannung dann nur zwischen Drain und Source vom
linken Transistor an und nicht auch zwischen Gate und Source des
rechten? Es gibt da ja keine Widerstände, die unterschiedliche
Spannungsniveaus begründen würden. Haben die Transistoren interne
Widerstände oder sowas Ähnliches?
Ah, ich habs inzwischen selbst verstanden. Ich muss mir ja klarmachen,
dass in Bereichen, zwischen Widerständen immer das gleiche Niveau
herrscht. Und nur über Widerstände fällt es ab. D.h. rechts vom
10kOhm-Widerstand (der ganz oben) liegen dann überall 0V (falls der
Transistor selbst keinen Widerstand erzeugt). Dann liegen am Gate des
rechten Transistors aber auch 0V an.
noob schrieb:> Ich habe folgendes Problem:
Du hast ein Logikproblem.
Man kann nicht aus 2 Signalen unterschiedliche Aktionen machen, die
Elektronik erahnt nicht was du willst.
Man kann aber mit einem Taster eine Spannung ein und ausschalten, weil
man sich dabei auf den vorherigen Zustand (ein oder aus) beziehen kann.
1
+-----------+--------------------
2
| |
3
| +---)----------------+
4
| | | |
5
| +--|>o--10k--+--|>o--+---
6
| + | | |
7
Batterie | | 1M
8
| - | | _ |
9
| | +--o o--+
10
| | |
11
| | 100nF
12
| | |
13
+-----------+----------------+
Bloss die Versorgungsspannung kannst du damit nicht ausschalten, das
wäre kein runterfahren.
Also kann die Versorgung nur ein ODER sein, EIN von dieser Schaltung und
EIN vom RPi, ein Signal das er selbst nach dem Runterfahren auf LO
setzt.
Richtig. Der MosFET der mit deinen GPIO 10 (output) verbunden ist, ist
leitend, sobald GPIO hight ist. Damit wird verhindert, dass RESET high
werden kann, wenn der Taster gedrückt wird. Der 10K Widerstand sorgt
dafür, dass in diesem Fall nicht VCC mit GND über den MosFET
kurzgeschlossen wird.
Der MosFET hat natürlich auch einen kleinen Innenwiderstand, der liegt
aber im Milliohm-Bereich, insofern ist RESET immer noch sehr eindeutig
LOW.
Mit (Logic-Level-)MosFETs arbeitet es sich meiner Meinung nach einfacher
in Digitalschaltungen, da man ja meistens nur zwei Zustände benötigt:
leitend oder sperrend. Da hierfür am Gate nur die entsprechende Spannung
anliegen muss und kein Strom fließt, spart man sich Berechnungen eines
Transistor-Basiswiderstandes. Ein Serienwiderstand zur Strombegrenzung
am Gate ist trotzdem zu empfehlen, da das Gate im Prinzip ein
Kondensator ist. Die Dimensionierung ist aber bei niedrigen Frequenzen
bzw. bei kleinen Lasten total unkritisch.