Tengo un eeprom y no puedo dirigir todo correctamente fuera del rango 0x00-0x1f. Usando la frambuesa, envío el siguiente comando I2C a la eeprom:
"sudo i2cset -y 1 0x50 0x00 0x10 0x29"
Este comando escribe el byte 0x29 en la dirección 0x10 en el eeprom. Puedo ver si funcionó usando el comando "sudo i2cdump -y 1 0x50 i"
Pero si uso el mismo comando que el anterior pero con un segundo valor de dirección más alto (por ejemplo, sudo i2cset -y 1 0x50 0x00 0x80 0x29) y luego intento ver si funcionó con i2cdump no veo ningún cambio. Si cambio el primer valor de dirección de byte (por ejemplo, sudo i2cset -y 1 0x50 0x01 0x10 0x29), el cambio de valor se muestra a 90/0 en la salida de i2cdump.
Aquí hay un ejemplo de salida de i2cdump para que puedas entender mejor lo que quiero decir (no mi salida de i2cdump):
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20: 8a 8b de bb c9 d8 d0 1d ff ff aa c1 9e c1 9e e3
30: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
40: 01 c3 00 00 00 00 40 50 2d 01 01 40 01 95 00 a3
50: 10 01 80 ff ff ff 00 00 11 ff ff ff ff ff ff ff
60: 8a 8b de bb c9 d6 d1 1d ff ff aa c1 9e c1 9e e3
70: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0: 8b 8b de bb c8 d9 d1 1d ff ff ab c1 9e c1 9e e3
b0: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
c0: 01 c3 00 00 00 00 40 50 2d 01 01 40 01 95 00 a3
d0: 10 01 80 ff ff ff 00 00 11 ff ff ff ff ff ff ff
e0: 8a 8a de bb c9 d8 d1 1d ff ff aa c1 9e c1 9e e3
f0: ba cc a8 d8 b2 ed c2 e4 bb 3c 32 e1 e1 e1 00 00
Aquí hay un enlace a la hoja de datos de mi eeprom, dice que una página tiene un tamaño de 32 bytes, creo que eso explica por qué no puedo dirigir nada más grande que 0x1f. ¿Pero no entiendo cómo puedo dirigir la siguiente dirección de byte después de 0x1f?
¿Estoy interpretando mal el i2cdump o tengo que usar otras direcciones de bytes?