Si un dispositivo I2C no aparece en i2cdetect, ¿significa que el dispositivo está potencialmente roto?

1

Estoy intentando que una pantalla OLED I2C (128x64) funcione en una BeagleBoneBlack . Desafortunadamente, no importa qué puerto I2C intente, no puedo ver el dispositivo cuando uso la utilidad i2cdetect. Como puede ver a continuación, i2c-0 y i2c-2 se pueden "escanear" con la utilidad, sin embargo, no aparece ningún dispositivo. Los paneles OLED generalmente se muestran a 0x3C o 0x3D (en este caso 0x3C). El panel OLED se controla mediante el controlador SSD1306. Todavía estoy aprendiendo sobre i2c, pero por lo que entiendo, un dispositivo debe tener una dirección única que se mostrará con la utilidad i2cdetect.

Cualquier consejo sobre solución de problemas sería útil. El código c ++ que tengo está bastante involucrado, pero puedo publicarlo si lo considera necesario.

El BeagleBone debería tener 2 puertos I2C disponibles según mis búsquedas en la web. He intentado todos los pares scl y sda listados en el encabezado P9.

Anteriormente,cuandouséunpanelLEDI2C,obtuvelasalidaacontinuaciónypudeescribirenvariospíxelesdelamatriz.Comopuedever,enesecasoteníaundispositivodisponibleen0x70.

ACTUALIZAR :

Le pregunté al autor de la biblioteca y esto es lo que escribió:

Parece que el dispositivo SPI que está utilizando puede no estar habilitado con una superposición del árbol de dispositivos. ¿Puedes intentar ejecutar este comando para mostrar todos los dispositivos SPI?

ls / dev / spi * Según el dispositivo y el puerto, debería ver un dispositivo /dev/spidev1.0. Si no ve ese dispositivo, deberá habilitarlo con una superposición de dispositivos. Consulte la parte inferior de esta página para obtener más información sobre cómo habilitar el dispositivo SPI: enlace

Otra cosa a tener en cuenta, ya que parece que estás usando Ubuntu. Asegúrese de que la versión del kernel sea 3.8.x y no una posterior como 3.14.x. Los kernels posteriores no admiten las superposiciones de árbol de dispositivos, por lo que no pueden agregar puertos SPI dinámicamente, etc. Puede verificar la versión del kernel ejecutando:

uname -r Si es un kernel posterior (como 3.14), intente instalar la imagen oficial de Debian desde allí, ya que todavía usa 3.8: enlace

Parece que / dev / spi * no existe, y que estoy ejecutando una versión posterior de ubuntu (3.14), que podría ser mala. Está un poco más allá de mí por qué Ubuntu 3.14 dejaría de soportar las superposiciones de árbol de dispositivos, y por qué no puedo acceder a estos pines.

    
pregunta user391339

2 respuestas

1

¿Están los autobuses detenidos con resistencias? I2C es un drenaje abierto, y necesita ser levantado.

Desde enlace

    
respondido por el Scott Seidman
0

¿Configuró los pines IO correctamente? Por lo general, en una MCU, debe elegir qué pines desea conectar al periférico. No tengo claro si alguna vez ha conseguido que el puerto I2C funcione antes.

Definitivamente, debería revisar la hoja de datos y ver si hay algo que deba hacer en los módulos OLED para habilitar I2C. A veces, pantallas como esa tendrán múltiples interfaces. También puede haber una señal de habilitación o apagado que se debe configurar correctamente. Si nos indica el número de pieza de la pantalla OLED, podremos ayudarlo más.

    
respondido por el Adam Haun

Lea otras preguntas en las etiquetas