Hallo ich will mit dem Arduino Uno den Raspberry (alle Modelle) an- und aus-schalten. Habe im Netz eine Anleitung (http://www.kriwanek.de/arduino/aktoren/304-lasten-mit-power-mosfet-schalten.html) gefunden, welche einen MOSFET als schalter einsetzt. Da ich den IRLIZ44N von der Anleitung nicht bekommen habe, verwende ich den IRF1010N (http://www.irf.com/product-info/datasheets/data/irf1010n.pdf). Das Schalten funktioniert. Jedoch: einfach so ausschalten ist nicht beim Raspberry. Der Adruino darf den Raspberry erst abschalten wenn dieser heruntergefahren ist (Dateisystem ausgehängt). Folgender Hinweis im Netz (http://www.raspberrypi.org/forums/viewtopic.php?p=191797) TX-Pin geht LOW wenn Raspberry aus. Also überwacht (digitalRead()) mein Adruino den TX-Pin vom Raspberry. Folgendes erkennt der Adruino: Raspberry am Netzteil, Rasperry läuft: TX-Pin = HIGH Raspberry am Netzteil, Raspberry aus: TX-Pin = LOW (soweit wie gewünscht) Raspberry vom Netzteil getrennt: TX-Pin floated HIGH/LOW (kann ich auch verstehen, da zustand nicht definiert) Raspberry am Netzteil jedoch nur GND Negativ verbunden: TX-Pin LOW (so wäre es gewünscht, TX-Pin LOW => Raspberry aus, tiptop) Raspberry am Netzteil jedoch nur + Positiv verbunden: TX-Pin HIGH Hier ist das PRoblem. Der TX-Pin ist HIGH obwohl der Raspberry aus ist. Dieses verhalten habe ich wenn ich A, den Raspberry vom GND Trenne und B, den Raspberry mittels MOSFET ausschalte. Ihr sollt mir helfen zu verstehen: 1. wieso der TX-Pin HIGH geht wenn ich GND trenne (mittels MOSFET oder auch manuell). 2. ob es Probleme gibt, wenn ich diesen MOSFET so einsetze? und warum? (der Adruino könnte das HIGH auf TX-Pin ignorieren solange der MOSFET nicht den Raspberry nicht mit power versorgt). 3. meine intuition sagt, GND sollte zwischen Raspberry und Arduino immer verbunden sein. Stimmt das? warum in diesem fall? Was ist die Lösung um den Raspberry korrekt ein und auszuschalten? Es muss zwingend die Stromversorgung unterbrochen werden, da der Raspberry auch viel Strom verbraucht wenn er zwar ausgeschaltet ist aber die Versorgung noch läuft. Daher der MOSFET. Erst ausschalten wenn Signal vom Raspberry kommt (Dateisystem ausgehängt). Daher der TX-Pin. Jedes einfach gesparte mA ist wichtig (Solar/Batteriebetrieb). Relais sollen vermieden werden. Grüsse fr
cont fra schrieb: > Was ist die Lösung um den Raspberry korrekt ein und auszuschalten? ich würde mich an die LEDs halten, runtergefahren sind doch alle LEDs aus ausser power wenn ich mich recht erinnere (Pi B Version2) die könnte man abfragen, wenn auf den LEDs eine gewisse Zeit keine Aktivität mehr ist Power trennen. cont fra schrieb: > 1. wieso der TX-Pin HIGH geht wenn ich GND trenne (mittels MOSFET oder > auch manuell). der Tx geht bestimmt nicht auf high, das macht der Inputport vom Atmel weil die Leitung offen ist und der GND Bezug fehlt, Abhilfe: GND verbunden lassen oder externen pulldown am Port anlegen
:
Bearbeitet durch User
Joachim B. schrieb: > cont fra schrieb: >> 1. wieso der TX-Pin HIGH geht wenn ich GND trenne (mittels MOSFET oder >> auch manuell). > > der Tx geht bestimmt nicht auf high, das macht der Inputport vom Atmel > weil die Leitung offen ist und der GND Bezug fehlt, Abhilfe: GND > verbunden lassen oder externen pulldown am Port anlegen Demnach bspw. einen P-Ch MOSFET zum Trennen der +5V Seite verwenden oder einen Optokoppler nutzen, welcher beide Seiten verbindet. Joachim B. schrieb: > cont fra schrieb: >> Was ist die Lösung um den Raspberry korrekt ein und auszuschalten? > > ich würde mich an die LEDs halten, runtergefahren sind doch alle LEDs > aus ausser power wenn ich mich recht erinnere (Pi B Version2) > > die könnte man abfragen, wenn auf den LEDs eine gewisse Zeit keine > Aktivität mehr ist Power trennen. Besser wäre es aber wahrscheinlich wirklich, wenn du dich nicht von einem Pin abhängig machst, der eigentlich für etwas anderes gedacht war, also nicht TX sondern etwa wie vorgeschlagen die Zustands-LEDs
cont fra schrieb: > Ihr sollt mir helfen zu verstehen: > 1. wieso der TX-Pin HIGH geht wenn ich GND trenne (mittels MOSFET oder > auch manuell). Wo soll er denn sonst hingehen? Der komplette RPi liegt dann doch auf VCC Potential, also auch der TX Pin. Das sieht man sofort im Schaltplan, wenn man einen gezeichnet hätte. > 2. ob es Probleme gibt, wenn ich diesen MOSFET so einsetze? und warum? Ich würde immer VCC mit einem P-Kanal MOSFET schalten. Maximal 4 Volt VGSth ist für 5 Volt Schaltspannung IMO auch zuviel - der o.g. MOSFET macht erst bei 10 Volt "voll" auf. Man will normalerweise einen, der bei 5 Volt schon voll auf ist (logic level MOSFET). > 3. meine intuition sagt, GND sollte zwischen Raspberry und Arduino immer > verbunden sein. > Stimmt das? warum in diesem fall? Siehe oben. Die Pins am RPi haben AFAIK alle ESD Dioden drin, und liegen bei getrenntem GND auf VCC. Liegt ein Pin hart auf GND, würde über ihn der RPi versorgt werden, dabei dürfte der Pin überlastet durchbrennen.
Markus H. schrieb: > Joachim B. schrieb: >> ... >> ich würde mich an die LEDs halten, runtergefahren sind doch alle LEDs >> aus ausser power wenn ich mich recht erinnere (Pi B Version2) >> ... > ... > Besser wäre es aber wahrscheinlich wirklich, wenn du dich nicht von > einem Pin abhängig machst, der eigentlich für etwas anderes gedacht war, > also nicht TX sondern etwa wie vorgeschlagen die Zustands-LEDs Mit den LED's gibts ein gebastel. Fototransistor draufkleben oder Kabel anlöten ist zu anstrengend. Tests mit HIGH setzen von einem GPIO ohne zusatzfunktion zeigen dass dieser LOW geht wenn der Raspberry ausgeschalten wird. Dann bleibt der TX-Pin frei. Jim Meba schrieb: > Wo soll er denn sonst hingehen? Der komplette RPi liegt dann doch auf > VCC Potential, also auch der TX Pin. Verrückt, dachte nicht dass sowas geht. Aber tatsächlich, alle GPIO-Pins und die Anoden und Kathoden der LEDS und das Gehäuse der USB-Ports und des Netzwerk-Ports sind auf HIGH. Gibt das nicht probleme wenn der Netzwerkanschluss eingesteckt ist und durch das Shielding des Netzwerkkabels auf GND gezogen wird? Da müsste dann doch Strom fliessen? Jim Meba schrieb: > Ich würde immer VCC mit einem P-Kanal MOSFET schalten. Werde LogicLevel P-MOSFET suchen. Dann GND zwischen Arduino und Raspberry immer verbunden lassen und nur + Schalten. Jim Meba schrieb: > Liegt ein Pin hart auf GND, würde über ihn > der RPi versorgt werden, dabei dürfte der Pin überlastet durchbrennen. Wenn wir das jetzt umkehren mit dem P-MOSFET: Es wird I2C mit einem Levelshifter zwischen Raspberry und Adruino gehängt. Der Levelshifter wird immer mit + und GND versorg. Wenn der ganze Raspberry dann auf GND liegt und nur die I2C Pins gePull-Up'd werden, brennen diese Pins dann auch durch?
:
Bearbeitet durch User
cont fra schrieb: > Wenn der ganze Raspberry dann auf GND liegt und nur die I2C Pins > gePull-Up'd werden, brennen diese Pins dann auch druch? mal langsam, schalte ich VCC am Pi ab und der Pi GND ist mit dem Atmel GND verbunden bekommt der PI keine Spannung über seine Ports vorausgesetzt die Atmel Ports liefern keine Spannung und das tun sie normalerweise nicht wenn keine Pullups aktiv sind sie nicht auf out und high stehen und sogar noch ein pulldown auf GND liegt. die I2C vom PI sind soweit ich mich erinnere hart verdrahtet nach PI Vcc aber diese wird ja abgeschaltet oder von welchen I2C pullups ist die Rede? pi-seitig oder atmel-seitig? ausserdem mag der PI an seinen Ports keine höhere Spannung als 3,3V also entweder den Atmel sicherheitshalberr mit 3,3V betreiben oder Pegelwandler (die ich nicht mag, ich nehme lieber Serien R + Ableitdiode nach 3,3V doof nur das wir die abschalten, ergo auf der Pi Seite doch die LEDs befragen) cont fra schrieb: > Tests mit HIGH setzen von einem GPIO ohne > zusatzfunktion zeigen dass dieser LOW geht wenn der Raspberry > ausgeschalten wird. da bietet sich ein Transistor an der mit pulldown am GPIO dann sperrt und am Collector einen Atmel Port auf high setzt (mit Pullup) Doof halt nur wenn irgendein Programm den Port dann umschaltet und der Atmel dem PI den Saft klaut.
Joachim B. schrieb: > die I2C vom PI sind soweit ich mich erinnere hart verdrahtet nach PI Vcc > aber diese wird ja abgeschaltet oder von welchen I2C pullups ist die > Rede? > pi-seitig oder atmel-seitig? Hab da zuwenig ausgeholt: Der Levelshifter von Adafruit hat eigene 10k pullups (https://www.adafruit.com/products/757). Den schalte ich später zwischen Raspberry und Adruino. Bei der RealTimeClock von ChronoDot (http://docs.macetech.com/doku.php/chronodot_v2.0) musste ich pullups (10k) einlöten, da sonst (jedenfalls im Ausgebauten zustand) der Batterieverbrauch zu hoch ist. Wenn SDA und SCL HIGH sind durch diese pullups den Raspberry rück-speisen, wäre das Problem behoben wenn ich Levelshifter, RTClock und Raspberry + an den gleichen P-MOSFET hänge. Dann wird alles gleichzeitig abgeschalten. Dann bleibt höchstens die Frage ob der LEvelshifter ein Problem hat wenn ich bei dem + auf der 3.3V seite (Raspberry) abhänge. GND (3.3V seite) und + & GND auf der 5V seite (Arduino) anlasse.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.