Qual é o estado dos GPIOs quando a energia é aplicada? por exemplo, Alto, Baixo, Hi-Z?
Além disso, qualquer sistema operacional altera o estado de qualquer GPIO quando é carregado? Espero que não.
Qual é o estado dos GPIOs quando a energia é aplicada? por exemplo, Alto, Baixo, Hi-Z?
Além disso, qualquer sistema operacional altera o estado de qualquer GPIO quando é carregado? Espero que não.
Respostas:
Encontrei a resposta aqui graças a russellstrong . Cito a parte relevante abaixo
Eu tirei conclusões sobre meus resistores pull-up / sensibilidade do meu circuito aos resistores pull-down. O RPi não está configurando o GPIO para a saída quando inicializado. Ele está ligando um resistor pull down por 740 milissegundos.
Eu usei dois resistores de 18K (3v3 -> GPIO -> GND) para analisar exatamente o que está acontecendo com os pinos. Aqui está o traço. Linha azul é potência 3v3, linha amarela é linha GPIO.
Quando começou a usar a distribuição Debian recomendada para RPi, o GPIO está desativado. Você precisa habilitar cada pino individualmente.
Se você estiver fazendo isso via / sys , encontrará "Paths in Sysfs" interessantes (pesquise em http://www.kernel.org/doc/Documentation/gpio.txt ). Em particular, você ativaria um pino "exportando" ele. Todos os comandos abaixo assumem que você está executando com privilégios de root (sudo ou não) ou alterou as permissões / propriedade dos arquivos virtuais que estão sendo modificados.
echo 4 > /sys/class/gpio/export
Isso permite que o pino GPIO # 4, que faz com que / sys / class / gpio / gpio4 exista, que contém vários arquivos virtuais. Esses arquivos incluem "direção", que define se é um pino de entrada ou saída, "valor", que é somente leitura para entrada ou gravável para saída e contém o valor atual e outros.
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
Obviamente, você provavelmente preferirá usar alguma biblioteca preexistente para fazer o GPIO fornecido ou compatível com o idioma de sua escolha. Mas se você está querendo algo simples, basta fazer a interface diretamente com o sysfs para fazer o GPIO muito básico.
cat /sys/class/gpio/gpio4/direction
diz "in". Li na folha de dados que não é possível ler o estado das pullups / pulldowns. Vou tentar medi-los