M24LR16-E I2C EEPROM no detectada durante el dispositivo de escaneo I2C

1

Estoy utilizando la EEPROM M24LR16-E que es un dispositivo I2C:

enlace

Estoy utilizando la Junta de Desarrollo Nordic nRF52 para que se implemente la EEPROM.

En el SDKv12 de Nordic, hay una aplicación de ejemplo que utiliza TWI para buscar dispositivos I2C conectados con el microcontrolador. Consulte el fragmento de código a continuación para ver el procedimiento de escaneo.

Cuando ejecuto esto, el M24LR16-E no puede ser detectado. Sin embargo, cuando conecto un sensor de presión barométrica de Bosch (BMP180) al bus I2C, se detectan ambos y se imprimen los códigos de selección de dispositivo correctos.

¿Por qué sucede esto? Sin embargo, las funciones de lectura y escritura que escribí para el M24LR16-E están funcionando. ¿Tiene esto algo que ver con los problemas de tiempo?

Gracias de antemano.

Escaneando el procedimiento del dispositivo I2C:

for (address = 1; address <= 127; address++)
{
   err_code = nrf_drv_twi_rx(&m_twi, //twi config structure
                             address, //device select code 
                             &sample_data,sizeof(sample_data));
   if (err_code == NRF_SUCCESS)
   {
       detected_device = true;
       NRF_LOG_INFO("TWI device detected at address 0x%x.\r\n", address);
   }
   NRF_LOG_FLUSH();
}

if(!detected_device)
{
    NRF_LOG_INFO("No device was found.\r\n");
    NRF_LOG_FLUSH();
}

También vea la imagen de las salidas (EEPROM y sensor de presión conectados al bus I2C):

    

1 respuesta

1

I2C requiere resistencias pull-up en las líneas SCL y SDA. Al leer la descripción del tablero de ruptura BMP180, aunque no encontré una mención explícita, parece que tiene los dominios en ese tablero ya que muestra el cableado directamente a un Aduino.

Intente conectar dos resistencias de 4.7Kohm, una de SCL a Vcc y otra de SDA a Vcc.

    
respondido por el DoxyLover

Lea otras preguntas en las etiquetas