Single I2C EEPROM 24C02 usa las ocho direcciones por sí mismo

Estaba buscando una dirección usada por I2C EEPROM (24C02). Contrariamente a mis expectativas, devolvió las ocho direcciones posibles (0x50-0x57) en lugar de la cableada. Pensé que el problema estaba en un chip defectuoso, pero cambiar a uno nuevo no solucionó el problema.

¿Es esta una "característica"? Espero que no, ya que eliminaría el propósito de tener varias EEPROM conectadas al mismo bus I2C. Traté de buscar sobre este tema, pero solo encontré esto: ATMEL 24C02 EEPROM - Problemas para entender cómo funciona el direccionamiento . Lamentablemente, no responde a mi pregunta, así que espero que alguien sepa que está pasando.

La EEPROM que estoy usando tiene marcas ATMEL711 24C02 PU24 D.

Edit1: aquí hay formas de onda de ejemplo cuando intento leer un byte de EEPROM (conectado a 0x50):Direccionamiento de EEPROM en 0x50 (igual que la dirección cableada)

Direccionamiento de EEPROM en 0x53 (dirección no cableada)

Como puede ver, ambas direcciones funcionan (0x50 y 0x53) aunque la dirección cableada sea 0x50.

Edit2: Aquí está el esquema que muestra cómo se conecta la EEPROM. Las resistencias pull-up en las líneas SDA y SCL están presentes pero no se muestran aquí.esquema EEPROM

Para casos como este, necesita un osciloscopio de dos canales para verificar lo que sucede en el bus I2C.
Incluí dos formas de onda en mi pregunta original. Como puede ver, puedo direccionar EEPROM con dirección 0x50 y 0x53, mientras que el cableado es 0x50.
@ cheremk1 - ¿De dónde sacaste las EEPROM que muestran este comportamiento?
Proporcione un esquema. En particular muestra como tienes conectados los pines A0, A1 y A2.
@SamGibson Las EEPROM compradas en AliExpress. Aquí está el enlace: enlace
Se incluye el esquema de @KevinWhite.
El hecho de que mencione a AliExpress y mire la forma de onda, sospecho que le han dado algunos chips de clones I2C extraños. Pueden ser EEPROM I2C pero de una marca diferente y más económica que no admite pines de dirección.
¿Estás seguro de que no es un 24C08? Eso exhibiría el comportamiento que ve: están diseñados para funcionar en un circuito diseñado para el 24C02 sin modificar el circuito o el software, pero actúan como múltiples dispositivos 24C02.
Creo que ambos tienen razón. Hice algunas pruebas con 24C04 y 24C08 del lote que obtuve de AliExpress, y funcionaron como se esperaba. Por ejemplo, 24C08 responde a las direcciones 0x50-0x53 cuando A2 está conectado a GND ya las direcciones 0x54-0x57 cuando A2 está conectado a VCC. Creo que mis 24C02 están mal marcados como 24C16, porque aceptan direcciones 0x50-0x57. Bueno, esto demuestra que nunca debes confiar en AliExpress con componentes electrónicos.

Respuestas (2)

Obtuve exactamente el mismo comportamiento en los módulos eeprom de Banggood. Los chips están marcados ATMEL719 24C02N PU27 D

Las piezas 24C04, también de Banggood, funcionan con normalidad.

Los chips marcados como ATMEL178 24C256 PU27 D también son extraños. Responden a dos direcciones (es decir, 57 y 5f) y los 3 pines de selección de direcciones modificarán el par de direcciones i2c (es decir, 50 a 57 y 58 a 5f).

El chip genuino tiene solo una dirección activa y solo usa los pines A0 y A1, según la hoja de datos.

Emptor de advertencia

Este comportamiento se espera en algunos dispositivos más pequeños, como 24C00. Si echa un vistazo a la sección 5 de la hoja de datos de Atmel 24C00 , Direccionamiento del dispositivo, verá:

La dirección esclava para el 24XX00 consta de un código de dispositivo de 4 bits '1010' seguido de tres bits "no importa".

Tal vez este es un dispositivo comentado que originalmente se vendió como 24C00, pero tiene más memoria EEPROM y los vendedores chinos descubrieron esto como USB en STM32F101.