Wie ist der Status der GPIOs beim Einschalten? zB High, Low, Hi-Z?
Ändert auch ein Betriebssystem den Status von GPIOs, wenn es geladen wird? Hoffentlich nicht.
Wie ist der Status der GPIOs beim Einschalten? zB High, Low, Hi-Z?
Ändert auch ein Betriebssystem den Status von GPIOs, wenn es geladen wird? Hoffentlich nicht.
Antworten:
Ich habe die Antwort hier dank russellstrong gefunden . Ich zitiere den relevanten Teil unten
Ich bin zu Schlussfolgerungen über meine Pull-up-Widerstände / Empfindlichkeit meiner Schaltung gegenüber den Pull-down-Widerständen gesprungen. Das RPi stellt das GPIO beim ersten Start nicht auf Ausgabe ein. Es schaltet einen Pull-Down-Widerstand für 740 Millisekunden ein.
Ich habe zwei 18K-Widerstände (3v3 -> GPIO -> GND) verwendet, um genau zu sehen, was mit den Pins los ist. Hier ist die Spur. Blaue Linie ist 3v3-Leistung, gelbe Linie ist GPIO-Linie.
Wenn Sie die empfohlene Debian-Distribution für RPi verwenden, ist GPIO deaktiviert. Sie müssen jeden Pin einzeln aktivieren.
Wenn Sie es über / sys tun, werden Sie "Paths in Sysfs" interessant finden (suchen Sie in http://www.kernel.org/doc/Documentation/gpio.txt ). Insbesondere würden Sie einen Pin aktivieren, indem Sie ihn "exportieren". Alle folgenden Befehle setzen voraus, dass Sie mit Root-Rechten (sudo oder anderweitig) ausgeführt werden oder die Berechtigungen / den Besitz der zu ändernden virtuellen Dateien geändert haben.
echo 4 > /sys/class/gpio/export
Auf diese Weise wird der GPIO-Pin 4 aktiviert, der dann zur Existenz von / sys / class / gpio / gpio4 führt, der mehrere virtuelle Dateien enthält. Diese Dateien enthalten "Richtung", die definiert, ob es sich um einen Eingabe- oder einen Ausgabepin handelt, "Wert", der entweder für die Eingabe schreibgeschützt ist oder für die Ausgabe schreibbar ist und den aktuellen Wert enthält, und andere.
echo out > /sys/class/gpio/gpio4/direction # set it as an output pin
echo 1 > /sys/class/gpio/gpio4/value # set the value to ON
echo 0 > /sys/class/gpio/gpio4/value # set the value to OFF
echo in > /sys/class/gpio/gpio4/direction # set it as input
cat /sys/class/gpio/gpio4/value # get the value
echo 4 > /sys/class/gpio/unexport # disables pin 4 and removes the gpio4 directory
Natürlich werden Sie es wahrscheinlich vorziehen, eine bereits vorhandene Bibliothek zu verwenden, um GPIO zu erstellen, das mit der Sprache Ihrer Wahl geliefert wird oder mit dieser kompatibel ist. Wenn Sie jedoch etwas Einfaches wünschen, können Sie sich direkt mit sysfs verbinden, um ein sehr einfaches GPIO zu erstellen.
cat /sys/class/gpio/gpio4/direction
sagt "in". Ich habe im Datenblatt gelesen, dass es nicht möglich ist, den Zustand der Pullups / Pulldowns zu lesen. Ich werde versuchen, sie zu messen