Banana Pi i2c

Resultados da primeira exploração do bus i2c no Banana Pi M1, com o debian 9 (armbian), usando um giroscópio e acelerometro MPU6050 como dispositivo de teste.

O MPU6050  tem como x68 endereço no bus i2c.

Instalação e configuração do bus i2c no Banana pi M1

A instalação e configuração necessária para explorar o bus i2c é simples.

Encontra-se uma descrição sucinta dos pinos e do hardware do Banana Pi M1 em http://linux-sunxi.org/LeMaker_Banana_Pi

Pinos para ligações I2C no Banana Pi M1

Os pinos disponíveis no BPI M1 são as exibidas na seguinte imagem:

Algumas notas de correcção aos pinos das UARTS. A indicada como UART1 é a UART3, a UART7 é a UART0 e UART4 é a UART2 (ver imagem no final).

Os pinos do I2C estão a azul no bloco CON3.  Portanto as ligações, usando como exemplo o MPU6050 são as seguintes:

  • bpi 5V > mpu VCC
  • bpi GND > mpu GND
  • bpi SCL > mpu SCL
  • bpi SDA > mpu SDA

Não tem problema de dpp no nível lógico (o BPI é de 3.3) pois a dpp no pino SDA do MPU6050 é sempre 3.3V, mesmo que a alimentação seja de 5V.

Configuração do Hardware I2C do Banana Pi no Armbian

Com o Armbian 5.85 creio que a unica configuração necessária é a instalação do pacote de ferramentas i2c (i2c-tools), pois a partida os pinos do i2c correspondem ao bus 2 do i2c.

Verifique que o bus i2c está disponível com o seguinte comando:

ll /dev/i2c*

Se listar algum bus, é porque o i2c já está activo, e o do gpio será em principio o 3, e deverá proceder a instalação do i2c-tools e verificar os dispositivos disponíveis, conforme instruções mais abaixo..

De qualquer forma deixo aqui umas notas sobre a configuração i2C no Banana Pi.

A configuração do hardware no Linux (mainline) a correr em socs Allwinner A20 (o soc do Banana Pi M1) é efectuada recorrendo a overlays à device tree (dts).

No armbian existe um utilitário que permite efectuar essa configuração por nós. Depois de se certificar que o bpi tem acesso à Internet, basta executar o seguinte comando:

armbian-config

Será exibido um menu, e nesse menu escolher System (eventualmente os elementos e designações do menu podem variar com o tempo)

Seguidamente deve-se escolher a opção Hardware.

Na área de configuração do hardware é exibido o hardware activo, conforme a imagem abaixo.

Nas minhas experiências, não é necessário activar nenhuma das entradas correspondentes ao i2c (i2c1, i2c2, i2c3 e i2c4). O bus i2c fica disponível no bus 2 sem ser necessário activar nenhuma opção aqui (ver também: Source 1).

A exploração do i2c em linux é efectuada recorrendo a comandos disponíveis no pacote i2c-tools que tem de ser instalado com o seguinte comando:

apt install i2c-tools

O pacote i2c-tools tem

Os utilitários importantes incluídos no pacote são o i2cdetect , i2cget e i2cset, que permitem explorar o bus i2c

Recorrendo ao utilitário i2cdetect existem dois comandos a recordar:

  • i2cdetect -l (que presumo indique os bus i2c disponíveis)
  • i2cdetect -y 2 (que indica os dispositivos disponíveis no bus, neste caso no bus 2)

Na imagem abaixo, encontra-se o resultado dos comandos sem activar nenhum overlay do i2c (conforme imagem acima).

Na imagem acima o comando i2cdetect -l o numero de bus i2c listados é de 3, o bus 0, o bus 1 e o bus 2.

Na mesma imagem está o output dos comandos:  i2cdetect -y 2i2cdetect -y 0, que identificam os dispositivos (pelos seus endereços) existentes em cada um dos bus.

No bus 2 é visível o endereço do MPU5060, pelo que se pode considerar concluída a instalação e configuração do i2c no Banana Pi.

Pelas experiências que efectuei com a activação e desactivação dos vários buses i2c na área correspondente do armbian-config, o bus disponível nos pinos varia consoante os i2c(1,2,3,4) que lá estão activos. Cheguei a ter o MPU6050 disponível no bus 4.

Seguinte: Explorar o MPU6050 em Python no Banana PI

 

BPI-M1 GPIO

Banana PI M1 pinout
Banana PI M1 pinout

sources:

  1. http://forum.lemaker.org/forum.php?mod=viewthread&tid=15630