¿Cuál es el estado de los GPIO cuando se aplica energía? por ejemplo, alto, bajo, Hi-Z?
¿También algún sistema operativo cambia el estado de cualquier GPIO cuando se carga? Ojalá no.
¿Cuál es el estado de los GPIO cuando se aplica energía? por ejemplo, alto, bajo, Hi-Z?
¿También algún sistema operativo cambia el estado de cualquier GPIO cuando se carga? Ojalá no.
Respuestas:
He encontrado la respuesta aquí gracias a russellstrong . Cito la parte relevante a continuación
He llegado a conclusiones acerca de mis resistencias pull-up / sensibilidad de mi circuito a las resistencias pull-down. El RPi no está configurando la salida de GPIO cuando se inicia por primera vez. Está encendiendo una resistencia desplegable durante 740 milisegundos.
He usado dos resistencias de 18K (3v3 -> GPIO -> GND) para ver exactamente lo que está sucediendo con los pines. Aquí está el rastro. La línea azul es de potencia 3v3, la línea amarilla es la línea GPIO.
Cuando comenzó a usar la distribución de Debian recomendada para RPi, GPIO está deshabilitado. Tienes que habilitar cada pin individualmente.
Si lo está haciendo a través de / sys , encontrará interesantes "Paths in Sysfs" (busque en http://www.kernel.org/doc/Documentation/gpio.txt ). En particular, habilitaría un pin "exportándolo". Cualquiera de los comandos a continuación asume que está ejecutando con privilegios de root (sudo o no) o que ha cambiado los permisos / propiedad de los archivos virtuales que se están modificando.
echo 4 > /sys/class/gpio/export
Esto habilita el pin GPIO # 4 que luego hace que / sys / class / gpio / gpio4 exista, que contiene varios archivos virtuales. Esos archivos incluyen "dirección" que define si se trata de un pin de entrada o de salida, "valor" que es de solo lectura para entrada o de escritura para salida y contiene el valor actual, y otros.
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
Por supuesto, probablemente prefiera usar alguna biblioteca preexistente para hacer GPIO suministrado o compatible con el idioma de su elección. Pero si quiere algo simple, puede simplemente interactuar directamente con sysfs para hacer GPIO muy básico.
cat /sys/class/gpio/gpio4/direction
dice "en". Leí en la hoja de datos que no es posible leer el estado de los pullups / pulldowns. Trataré de medirlos