Programação GPIO: mudanças entre as edições

De Caninos Loucos
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
Linha 9: Linha 9:
[[File:40pinh.png|image|1000px|caption Mapeamento do header de 40 pinos.]]
[[File:40pinh.png|image|1000px|caption Mapeamento do header de 40 pinos.]]


== Primeiros passos ==
== Interface GPIO do Linux ==
O kernel Linux implementa em si uma solução de acesso à GPIO atraves de um modelo de criação e consumo de GPIO. Os drivers de criação são drivers como o controlador de GPIO que será detalhado nesta página, os consumidores são os drivers como sensores que utilizam estas linhas GPIO.
Dentro do kernel Linux existe uma estrutura de alocação e registradores dos pinos GPIO chamado gpiolib, esta estrutura cobre os drivers em nível de kernel e userspace.
As bibliotecas de espaço de usuário são, até a versão 4.7 do Kernel Linux a <code>sysfs</code> e a partir da versao 4.8 a <code>chardev</code>. Embora a placa Labrador esteja atualmente no Kernel 4.19, ambas ainda são compatíveis e cobriremos o uso das duas interfaces de espaço de usuário.
 
==Interface sysfs==

Edição das 14h39min de 2 de julho de 2020

Esta página explica como programar as saídas GPIO (General Purpose Input/Output) da Labrador, que são basicamente pinos nos quais você pode enviar e receber dados. Para facilitar a programação, a placa Labrador segue a interface padrão para userspace para Linux embarcado. O tutorial desta página funciona tanto com a Labrador 32 quanto 64-bits.

Além disso, a placa Labrador 32-bits é compatível com o formato da Raspberry Pi, e possui a biblioteca wiringK9, baseada na wiringPi, também da Raspberry Pi. Mais detalhes desta biblioteca pode ser encontrado nessa página Wiring K9.

Configuração dos pinos

A configuração de pinos para o cabeçalho de GPIO é a seguinte:

caption Mapeamento do header de 40 pinos.

Interface GPIO do Linux

O kernel Linux implementa em si uma solução de acesso à GPIO atraves de um modelo de criação e consumo de GPIO. Os drivers de criação são drivers como o controlador de GPIO que será detalhado nesta página, os consumidores são os drivers como sensores que utilizam estas linhas GPIO. Dentro do kernel Linux existe uma estrutura de alocação e registradores dos pinos GPIO chamado gpiolib, esta estrutura cobre os drivers em nível de kernel e userspace. As bibliotecas de espaço de usuário são, até a versão 4.7 do Kernel Linux a sysfs e a partir da versao 4.8 a chardev. Embora a placa Labrador esteja atualmente no Kernel 4.19, ambas ainda são compatíveis e cobriremos o uso das duas interfaces de espaço de usuário.

Interface sysfs