Aclaración sobre la dirección I2C

Estaba revisando el siguiente enlace que describe la "tabla de asignación de direcciones I2C"

http://máquinassimples.it/doc/IC12_97_I2C_ALLOCATION.pdf

Al leer la tabla de información antes mencionada, estaba pensando que la dirección del dispositivo "0x5x", donde "0x5" es la ID de grupo, no se usa para ninguno de los dispositivos I2C.

¿Es posible que me esté refiriendo a una información muy antigua?

Si la respuesta es NO, recientemente me encontré con un producto ST (el enlace a continuación), ¡que tiene la dirección "0x5x"!

http://www.st.com/resource/en/datasheet/vl53l0x.pdf

Yo estoy confundido ahora.

Mi duda es: ¿Es posible asignar un ID de grupo de "0x5" a cualquier dispositivo I2C?

Respuestas (4)

¿Es posible que me esté refiriendo a una información muy antigua?

Sí, la fecha del documento es 1999 y la empresa es Philips Semiconductors, que ahora se conoce como NXP.

NXP asigna las direcciones I2C y pueden asignar cualquier dirección que deseen. NXP ya no publica la lista de direcciones I2C, ya que las empresas que no desean pagar las tarifas de licencia pueden abusar de ella. Por lo tanto, no se garantiza que cualquier lista que encuentre esté actualizada.

La última versión de la especificación I²C dice:

Se reservan dos grupos de ocho direcciones (0000 XXX y 1111 XXX) para los fines que se muestran en la Tabla 3.
[...]
La asignación de direcciones dentro de un sistema local depende del arquitecto del sistema, quien debe tener en cuenta los dispositivos que se utilizan en el autobús y cualquier interacción futura con otros autobuses I²C convencionales. [...] Si se sabe que la dirección reservada nunca se utilizará para el propósito previsto, se puede utilizar una dirección reservada como dirección esclava.

Por lo tanto, es posible asignar cualquier dirección.

Tenga en cuenta que su hoja de datos ST muestra este ID de dispositivo como 0x52 y 0x53. Estas son direcciones de 8 bits, ya que las transacciones del bus I2C siempre tienen una longitud de ocho bits. El bit menos significativo no forma parte de la dirección . Es el bit de "lectura/escritura".
Las direcciones asignadas por NXP a menudo se enumeran como de 7 bits, sin incluir el bit de lectura/escritura. Esto puede causar cierta confusión entre los usuarios, que deben desplazar a la izquierda esta dirección antes de configurar el bit menos significativo para leer o escribir.
Al usar I2C, es aconsejable verificar dos veces si las direcciones se dan como de 7 bits o si se justifican con 8 bits.

Tienes razón. Tanto esa tabla como su versión moderna aquí no enumeran el llamado "grupo" "0101". Sin embargo, no me molestaría mucho a menos que esté diseñando un IC completamente nuevo habilitado para I2C que estará ampliamente disponible para el público. Si lo hace, deberá comunicarse con NXP para obtener una asignación de dirección y le cobrarán una tarifa por eso.

Al diseñar un dispositivo que utiliza el bus I2C, lo único que debe preocuparle es si tiene o no algún conflicto de direcciones I2C en su bus. Y eso se puede resolver fácilmente inspeccionando cuidadosamente las hojas de datos de los circuitos integrados usados ​​y teniendo en cuenta que algunos fabricantes (como ST) usan direcciones de 8 bits y otros usan direcciones de 7 bits.