Quel est l'état des GPIO lorsque l'alimentation est appliquée? Par exemple, Haut, Bas, Hi-Z?
De plus, un système d'exploitation modifie-t-il l'état de tout GPIO lors du chargement? Heureusement non.
Quel est l'état des GPIO lorsque l'alimentation est appliquée? Par exemple, Haut, Bas, Hi-Z?
De plus, un système d'exploitation modifie-t-il l'état de tout GPIO lors du chargement? Heureusement non.
Réponses:
J'ai trouvé la réponse ici grâce à russellstrong . Je cite la partie pertinente ci-dessous
J'ai sauté aux conclusions au sujet de mes résistances de rappel / sensibilité de mon circuit aux résistances de rappel. Le RPi ne configure pas le GPIO en sortie lors du premier démarrage. Il active une résistance de tirage pendant 740 millisecondes.
J'ai utilisé deux résistances de 18K (3v3 -> GPIO -> GND) pour voir exactement ce qui se passe avec les broches. Voici la trace. La ligne bleue correspond à la puissance 3v3, la ligne jaune à la ligne GPIO.
Lorsque vous utilisez la distribution Debian recommandée pour RPi, GPIO est désactivé. Vous devez activer chaque broche individuellement.
Si vous le faites via / sys, vous trouverez "Chemins dans Sysfs" intéressant (recherchez dans http://www.kernel.org/doc/Documentation/gpio.txt ). En particulier, vous activeriez une épingle en la "exportant". Toutes les commandes ci-dessous supposent que vous utilisez des privilèges root (sudo ou autre) ou que vous avez modifié les autorisations / la propriété des fichiers virtuels en cours de modification.
echo 4 > /sys/class/gpio/export
Cela active la broche 4 de GPIO, qui fait alors exister / sys / class / gpio / gpio4, qui contient plusieurs fichiers virtuels. Ces fichiers incluent "direction" qui définit s'il s'agit d'une broche d'entrée ou de sortie, "valeur" qui est en lecture seule pour l'entrée ou en écriture pour la sortie et contient la valeur actuelle, entre autres.
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
Bien sûr, vous préférerez probablement utiliser une bibliothèque préexistante pour faire des GPIO fournis avec ou compatibles avec la langue de votre choix. Mais si vous voulez quelque chose de simple, vous pouvez simplement vous connecter directement à sysfs pour faire du GPIO très basique.
cat /sys/class/gpio/gpio4/direction
dit "dans". J'ai lu dans la fiche technique qu'il n'est pas possible de lire l'état des pullups / pulldowns. Je vais essayer de les mesurer