Tengo una gran cantidad de placas desplegadas con un microcontrolador TI CC3200 y una variedad de sensores para una aplicación de monitoreo industrial. He estado teniendo un problema desde hace algún tiempo, en algunas de las placas, donde no se puede leer un sensor de temperatura infrarrojo, el TMP007 de TI. Esto incluye cualquier registro de ID de fabricante / dispositivo. Se comunican a través de I2C, y hay 10k pullups en ambas líneas.
He estado observando las líneas en un alcance, y descubrí que cuando se comunica con el TMP007, los voltajes solo se reducen aproximadamente a la mitad que cuando se comunican con algunos de los otros sensores I2C que funcionan. Sin embargo, parece que aún cumple con la especificación I2C, y el TMP007 parece ACK cuando escribo su registro de ID de fabricante.
Mi pregunta en concreto es si alguien ha tenido problemas similares antes en los que los diferentes dispositivos son llevados a diferentes niveles y las posibles causas que esto podría tener. Por ejemplo, ¿podría ser un problema con el hardware o podría ser que otro dispositivo I2C esté tratando de controlar las líneas al mismo tiempo?
Edit: Creo que Ali Chen ha señalado acertadamente un problema de falta de alimentación, apagar algunos de los otros sensores I2C cuando se lee desde el TMP007 parece haber resuelto el problema.