🛠 Interroger un capteur I2C sur le connecteur 40 broches
Objetivos
Conectar un sensor o dispositivo I2C (OLED SSD1306, BME280, sensor de CO2…) al conector de 40 pines de la ROCK 3B y detectarlo con i2c-tools. La documentación oficial enumera 3 controladores I2C en el conector (tabla de funciones del header); los pines exactos dependen del muxing de su revisión de hardware — el número de funciones varía entre la ficha de lanzamiento CNX y la documentación actual, por lo que se debe verificar en la placa.
Material
- Radxa ROCK 3B con Radxa OS (o mainline ≥ 6.11 con overlays activados)
- Sensor I2C a 3,3 V (SSD1306 en 0x3c, BME280 en 0x76/0x77)
- 4 cables Dupont: 3,3 V, GND, SDA, SCL (identificados por el código de colores del conector, plano oficial en docs.radxa.com)
Código completo
sudo apt install i2c-tools
# Activer le contrôleur I2C du connecteur (Radxa OS : outil rsetup)
sudo rsetup # Interface/Overlay settings -> activer l'I2C du header, reboot
sudo modprobe i2c-dev
i2cdetect -l # lister les contrôleurs i2c-0, i2c-1...
# Identifier le bus du connecteur via le device tree :
for d in /sys/bus/i2c/devices/i2c-*; do
echo "$d : $(cat $d/of_node/fullname 2>/dev/null)"; done
sudo i2cdetect -y N # N = bus du connecteur repéré ci-dessus
sudo i2cget -y N 0x76 0xd0 # exemple : ID du BME280 -> 0x60
Verificación esperada
i2cdetect -y N muestra una cuadrícula donde aparece la dirección del sensor (3c, 76, 77…); i2cget devuelve un valor coherente (0x60 para el BME280). No debe aparecer UU si ningún controlador del kernel ya reclama el módulo.
Errores frecuentes
- Escanear el bus equivocado: el PMIC RK809 (audio/alimentación) se encuentra en un bus interno, no en el conector — utilice
of_node/fullnamepara encontrar el bus conectado al header. - I2C desactivado por defecto: sin overlay activado (rsetup en Radxa OS,
&i2c2 status="okay"en mainline),i2cdetect -lno muestra nada correspondiente al conector. - Confiar en un esquema de pines heredado del ROCK Pi 4 o de un wiki antiguo: la propia documentación de Radxa ha evolucionado entre revisiones (página Revision Details) — verifique el esquema V1.51 de su placa.
- Alimentar un módulo de 5 V cuyos pines lógicos no son tolerantes a 5 V: permanezca en 3,3 V en esta placa.
- Dos módulos con la misma dirección: prevea un multiplexor TCA9548A o desplace la dirección (ADR).
Otros tutoriales para esta placa
- Faire clignoter une LED via le GPIO avec libgpiod
- Lire un bouton poussoir en Python avec python3-libgpiod
- Premier réseau : Ethernet double gigabit, Wi-Fi optionnel et SSH
- Installer et booter le système sur un SSD NVMe (M.2 M-Key)
- Surveiller température et fréquence CPU, piloter le ventilateur PWM
- Routeur / passerelle réseau double Gigabit avec OpenWrt et PoE
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash