Escribiendo para registrarse en el dispositivo I2C, devuelve el dispositivo ocupado

3

Estoy tratando de escribir datos en un registro en un chip I2C de la Raspberry Pi, cuando uso i2cdetect obtengo UU, lo que entiendo es un error.

sudo i2cdetect -y 1

   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- UU 
70: -- -- -- -- -- -- -- --                         

Cuando intento usar el módulo SMbus Python para escribir en el registro deseado, aparece el siguiente error:

bus.write_byte_data(DEVICE_ADDRESS, CONTROL_REG, CON_VAL)
IOError: [Errno 16] Device or resource busy

¿Hay alguna razón habitual para esto o para probar algo?

    
pregunta holmeswatson

2 respuestas

3

Esto generalmente significa que ya ha cargado un controlador que está accediendo a este dispositivo.

Descargue el controlador utilizando, por ejemplo, Rmmod y deberías ser bueno para ir.

Solo para mencionarlo: también puedes usar i2cset y i2cget para establecer y obtener valores directamente a través de Python.

    
respondido por el Tom L.
0

Aunque es muy tarde para responder esto, recientemente tuve un problema similar con el módulo i2c axp209 (IC de administración de energía) de mi chip de $ 9.

Por defecto, el módulo i2-tools / py-smbus no proporciona una opción para abrir a la fuerza una dirección de dispositivo i2c (por razones de seguridad). Pero el comando i2get da la opción '-y' para leer / escribir.

Así que he bifurcado i2c-tools / py-smbus en github para permitir que el código Python también tenga una opción similar. He cambiado 3 líneas en el código del módulo python.

Se puede ver un ejemplo de mi código de módulo de Python modificado en github py-smbus .

Estos módulos py-smbus modificados también se pueden usar para la frambuesa

    
respondido por el mahadevan gss

Lea otras preguntas en las etiquetas