Tengo un circuito fácil conectado, con un LED conectado al pin 18 en la referencia BOARD. Ejecuto un programa simple para poner el pin 18 en ALTO, que enciende el LED, y luego, un par de segundos después, pongo el pin 18 en BAJO, y finalmente termino mi programa con GPIO.cleanup ().
En este punto, el LED está apagado, lo que significa que el pin 18 está apagado (BAJO). Ahora reinicio o reinicio mi Raspberry Pi, y cuando se reinicia, el LED del pin 18 se enciende nuevamente, aunque el pin estaba apagado antes de reiniciar el Raspberry Pi.
¿Por qué puede estar pasando esto? ¿Cómo puedo configurar un pin específico, como el pin 18 para que esté apagado cuando se inicie la Raspberry Pi? Y no quiero que ningún pin GPIO esté en ALTO cuando se inicie la Raspberry Pi.
Me preocupa este problema, porque digamos que el pin 18 está conectado a un motor de CC en un robot, y cuando el Raspberry Pi arranca, el motor se encenderá, y esto no es algo que quiera porque eso interfiere con toda la estructura del robot, y algunos motores pueden arrancar y otros no, dependiendo de los pines a los que están conectados. Quiero encender manualmente todos los motores de forma sincronizada.
Otra cosa es que no todos los pines tienen este problema. Algunos se quedan cuando la Raspberry Pi arranca, pero otros no.
/sys/class/gpio
y exporta el pin 18, ¿en qué estado dice el sistema que está si no cambia nada?echo
, que escribe, es decir, establece algo. Después de exportarlo, debe abstenerse de eso y simplemente usarcat
, que se lee, para verificar la dirección y el valor.Respuestas:
Al encenderse, los GPIO se arrastran hacia arriba o hacia abajo a través de las resistencias internas. Si el tirón es alto o bajo para un GPIO en particular se detalla en la página 102 de los periféricos ARM BCM2835 .
A medida que se inicia el kernel de Linux y si el árbol de dispositivos está habilitado (probablemente), reconfigurará los GPIO de acuerdo con la configuración del árbol de dispositivos. Los módulos cargados desde
/etc/modules
también podrían actualizar el estado GPIO.Cualquier otro software que esté ejecutando al inicio podría reconfigurar los GPIO posteriormente a la configuración del árbol de dispositivos y las cargas de módulos.
Es más seguro encontrar una solución de hardware si tiene hardware que podría activarse incorrectamente al iniciar el sistema.
fuente
Cuando el Raspberry Pi arranca, las líneas GPIO se restablecen a los valores predeterminados del chip, entonces el sistema operativo se carga y los restablece a los valores predeterminados del sistema operativo. No hay forma de "recordar" la configuración durante un reinicio. Consulte también ¿Cuál es el estado de encendido de los GPIO? y el estado GPIO después del arranque .
fuente
Sé que es muy tarde. Contestar. Puede escribir un script de Python o un script de bash que establezca manualmente el pin en bajo y programe un trabajo cron para que se ejecute en cada arranque. No necesitará modificar ningún sistema / archivo crítico. Aparte de cron
fuente