¿Qué es la dirección de byte bajo y byte alto en PIC I2C? [cerrado]

-3

Estoy trabajando en PIC24F I2C. Solo estoy escribiendo y leyendo datos en el eeeprom. He borrado la dirección del esclavo (por ejemplo: 0xA0), la dirección del modo de escritura (0xA0 | 0x00) y la dirección del modo de lectura (0xA0 | 0x01), pero hay otras dos direcciones de bytes bajos y direcciones de bytes altos. Creo que sin esta dirección de byte bajo y byte alto no puedo escribir y leer los datos. No sé qué dirección debo asignar para la dirección de byte bajo y byte alto? En realidad, ¿cuál es el propósito de estas direcciones?

Gracias ...

    
pregunta user6161

3 respuestas

4

Las direcciones de byte alto y bajo son la dirección física de los datos en del chip EEPROM (no la dirección del chip en sí, que puede ser de 7 o 10 bits y viene primero). Los bytes alto y bajo se combinan para formar la dirección completa (consulte el diagrama a continuación). Por ejemplo, si el chip tiene 1024 bytes de almacenamiento, entonces la dirección máxima es byte alto: 00000011 byte bajo: 11111111. Para almacenar un byte de datos en la ubicación 1, usaría H: 00000000 L: 00000001. Si el chip tiene 256 bytes o menos, entonces solo será necesario el byte bajo.

Echa un vistazo a algunas hojas de datos EEPROM y tutoriales de I2C para conocer todo el tema, aquí está la hoja de datos 24XX01 para Empezar.

    
respondido por el Oli Glaser
2

Esto es una suposición, pero creo que confunde la dirección IIC de EEPROM con las direcciones de las ubicaciones dentro de EEPROM. Envía la dirección IIC en los 7 bits superiores del primer byte del mensaje IIC. El significado de los bytes subsiguientes es entonces definido por la EEPROM. Para leer y escribir bytes de EEPROM, debe indicar de alguna manera a la EEPROM a qué bytes desea acceder. Si la EEPROM contiene más de 256 bytes, requerirá al menos dos bytes para comunicar esta dirección. Eso es probablemente lo que son los bytes de dirección "alta" y "baja".

    
respondido por el Olin Lathrop
2

La EEPROM que está utilizando se direcciona mediante direccionamiento de 16 bits, por ejemplo, 0x1234. y I2C a la vez puede enviar solo 8 bits de datos. Por lo tanto, debe dividir esa dirección de 16 bits en dos partes: "Alta" y "Baja".

Diríjase a 0x1234, primero enviará como "0x12" (alto) y luego "0x34" (bajo).

0xA0 es la dirección de EEPROM en el bus I2C y 0x1234 es la dirección de la ubicación de la memoria en EEPROM.

A menos que y hasta que proporcione la dirección, no puede leer ni escribir porque EEPROM no sabrá de DÓNDE tiene que leer / escribir.

    
respondido por el Swanand

Lea otras preguntas en las etiquetas