I2 C
Protocolo de comunicação I2C, porque usar e em que circunstancias é implementado.
O protocolo I2C (Inter-Integrated Circuit) é um protocolo destinado a permitir que vários circuitos integrados digitais "periféricos" ("chips") se comuniquem com um ou mais chips "controladores". Como a Interface Periférica Serial (SPI), destina-se apenas a comunicações de curta distância em um único dispositivo. Como as interfaces seriais assíncronas (como RS-232 ou UARTs), ele requer apenas dois fios de sinal para trocar informações.
Raspberry com múltiplos dispositivos I2C
Ao olhar para a placa do raspberry pode criar alguma frustração a impossibilidade de usar vários dispositivos I2C, porém, não há necessidade de usar "multiplexers" mais lentos quando os últimos kernel do RPi permite vários barramentos usando os pinos GPIO.
Se não tiver instalado podemos instalar executando
Neste caso não temos dispositivos I2C conetados, mas se existissem vários, seria um problema. O barramento I2C pode lidar com múltiplos dispositivos mas, para funcionarem, têm de ter endereços i2c diferentes. Alguns têm "jumpers" para definir o endereço, mas outros não, nesse caso, pode-se usar um "multiplexer"(hardware) para comutar o SDA i2c(Data) e SCL (Clock) ou criar um barramento adicional.
Vamos criar dois BUS adicionais BUS 3 e BUS 4
sudo nano /boot/config.txt ou sudo nano /boot/firmware/config.txt em função da localização do config.txt
Adicione a seguinte linha de código, de preferência na secção em que spi e i2c estão ativados.
Esta linha criará um barramento i2c adicional (barramento 4) no GPIO 23 como SDA e GPIO 24 como SCL (GPIO 23 e 24 é o padrão)
Adicione também a seguinte linha para criar o barramento i2c 3
GPIO 17 será o SDA e GPIO 27 será o SCL para o barramento 4 i2c.
Toque no controle X para sair.
Nota sobre a numeração e pedido do BUS:
Nunca usar os barramentos 0 e 2, ele é usado para outras coisas no tabuleiro, como eeprom em "hats", etc.
Nas "board" RPi abril de 2019:
Deve sempre começar com o barramento mais alto (barramento 4, neste caso) no config.txt e seguir até o barramento mais baixo (barramento 3).
O BUS mais baixo deve ser sempre o BUS 3
Se for preciso 5 BUS extras, os BUS devem estar por ordem de 7, 6, 5, 4, 3
O problema com a ordenação do BUS apenas surgiu após a atualização do kernel.
Para verificar os vários BUS