Firmware RP2040 converte o RPi Pico em uma ponte I2C para USB

Uma reimplementação completa do firmware driver do kernel I2C-Tiny-USB, o Firmware RP2040 converte o RPi Pico em uma ponte I2C para USB.

Sim. O firmware de código aberto rp2040-ic2-interface da Nicolai Electronics para o Raspberry Pi Pico (ou outras placas Raspberry Pi RP2040) converte a placa em uma ponte I2C para USB para conectar qualquer sensor ou módulo I2C a um PC ou outro hardware sem GPIOs.

Firmware RP2040 converte o RPi Pico em uma ponte I2C para USB

Firmware RP2040 converte o RPi Pico em uma ponte I2C para USB
Firmware RP2040 converte o RPi Pico em uma ponte I2C para USB

O I2C ou I²C é um tipo de interface serial utilizada para comunicar com diversos dispositivos, como o acelerômetro MPU 6050.

O firmware RP2040 implementa o protocolo USB esperado pelo driver do kernel I2C-Tiny-USB usado pelo projeto original I2C-Tiny-USB para microcontroladores Microchip ATMega AVR de 8 bits.

O RP2040, no entanto, não é um fork do projeto original, mas sim uma reimplementação completa do firmware.

Você precisará conectar seu sensor I2C, display ou outro módulo aos pinos SDA (GPIO 2) e SCL (GPIO 3) do microcontrolador Raspberry Pi RP2040 e fazer o flash do firmware “pré-lançamento” na placa.

Você o encontrará junto com o código-fonte escrito em linguagem C no GitHub. Observe que o projeto tem um “status de prova de conceito” e mais testes são necessários para garantir que tudo funcione conforme o esperado.

O projeto é melhor usado com um host Linux como parte do kernel i2c-tiny-usb da árvore de origem oficial do kernel.

Você pode carregar o drive facilmente no Ubuntu 20.04 com esse comando:
sudo modprobe i2c-tiny-usb
Para verificar o carregamento, basta usar este comando:
lsmod | grep tiny
E o resultado será essa saída:
i2c_tiny_usb 20480 0

Mas você também encontrará drivers para Windows e macOS e documentação no projeto I2C-Tiny-USB vinculado anteriormente.

Depois de conectar a placa RP2040 ao seu host através de um cabo USB, o sensor/módulo I2C deve estar visível com aplicativos cliente padrão, como os encontrados na estrutura lm_sensors (sensores-detect, sensores, etc…).

Via Hackster.io

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.