Qual è lo stato dei GPIO quando viene applicata l'alimentazione? ad esempio alta, bassa, alta z?
Inoltre, qualsiasi sistema operativo cambia lo stato di qualsiasi GPIO quando viene caricato? Spero di no.
Qual è lo stato dei GPIO quando viene applicata l'alimentazione? ad esempio alta, bassa, alta z?
Inoltre, qualsiasi sistema operativo cambia lo stato di qualsiasi GPIO quando viene caricato? Spero di no.
Risposte:
Ho trovato la risposta qui grazie a russellstrong . Cito la parte pertinente di seguito
Ho saltato alle conclusioni sui miei resistori pull up / sensibilità del mio circuito ai resistori pull down. L'RPi non sta impostando l'output di GPIO al primo avvio. Sta attivando un resistore pull down per 740 millisecondi.
Ho usato due resistori 18K (3v3 -> GPIO -> GND) per vedere esattamente cosa sta succedendo con i pin. Ecco la traccia. La linea blu è potenza 3v3, la linea gialla è linea GPIO.
Quando si inizia a usare la distro Debian consigliata per RPi, GPIO è disabilitato. Devi abilitare ogni pin singolarmente.
Se lo stai facendo tramite / sys troverai interessanti "Paths in Sysfs" (cerca in http://www.kernel.org/doc/Documentation/gpio.txt ). In particolare, abiliterai un pin "esportandolo". Tutti i comandi sottostanti presuppongono che tu stia eseguendo i privilegi di root (sudo o altro) o che tu abbia cambiato le autorizzazioni / proprietà dei file virtuali da modificare.
echo 4 > /sys/class/gpio/export
Questo abilita il pin GPIO n. 4 che quindi fa sì che / sys / class / gpio / gpio4 esistano, che contiene diversi file virtuali. Questi file includono "direction" che definisce se si tratta di un input o di un pin di output, "value" che è di sola lettura per l'input o scrivibile per l'output e contiene il valore corrente e altri.
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
Naturalmente, probabilmente preferirai utilizzare alcune librerie preesistenti per fare GPIO fornito o compatibile con la tua lingua preferita. Ma se vuoi qualcosa di semplice, puoi semplicemente interfacciarti direttamente con sysfs per fare GPIO di base.
cat /sys/class/gpio/gpio4/direction
dice "in". Ho letto nel foglio dati che non è possibile leggere lo stato dei pullup / pulldown. Proverò a misurarli