¿Por qué i2cset está poniendo "recursos ocupados" en mi BeagleBone Black?

3

Después de intentar que el código de ejemplo de la matriz 8x8 LED de Adafruit python funcionara tanto en mi Raspberry Pi como en mi BeagleBone Black, me di cuenta de que probablemente haya algo de malo en el código de Adafruit y no en mí. La matriz está funcionando bien con un Teensy3.1.

Decidí que este es un buen momento para reducir mis pérdidas y aprender a programar i2c.

En mis primeros pasos encontré este útil blog donde alguien hizo esto usando el comando i2cset. Desafortunadamente el dispositivo parece ocupado.

¿Alguna idea?

Segúnunapersona,"UU" en el i2cdetect, podría significar que "Probing fue omitido, porque esta dirección está actualmente en uso por un controlador".

Otros también mencionaron "módulos" que pueden estar ya utilizando el bus i2c, y que uno podría eliminar estos "módulos" e intentarlo de nuevo.

    
pregunta user391339

1 respuesta

3

Terminó siendo el segundo bus i2c que necesitaba usar. Como puede ver a continuación, ¡0x70 es la "dirección del chip" disponible en el bus 2! UU significa algo no disponible u ocupado.

Despuésdeestopudeseguirlasbonitasinstrucciones aquí , pero usando el bus 2.

Específicamente,

i2cset -y 2 0×70 0×21

i2cset -y 2 0×70 0×81

i2cset -y 2 0×70 0xe0

para iniciar el oscilador de multiplexación, habilitar la pantalla sin parpadeo y brillo

Usando esta información, pude modificar el código de Adafruit para el ejemplo matrix8x8_test.py , definiendo explícitamente el bus i2c y la dirección del chip display = Matrix8x8.Matrix8x8(address=0x70, busnum=2) . Esto es en un BeagleBone Black cableado exactamente como dijo Adafruit. Espero que esto ayude a alguien. Definitivamente, aprenderé el punto de inflexión del bus i2c, ya que valdrá la pena en el futuro cuando surjan cosas como esta.

    
respondido por el user391339

Lea otras preguntas en las etiquetas