Así que estoy investigando cómo interactuar con un chip EEPROM a través de I2C con un AVR (todavía estoy aprendiendo mucho de la interfaz).
De todos modos, el AT24C16 por ejemplo (o esa familia de EEPROM) parece bastante popular. Miré la hoja de datos y, en su mayoría, tenía sentido, además de una parte:
Asíquecreoquemiconfusiónestáenlas"Direcciones" de dónde escribir. ¿O tal vez estoy confundiendo la dirección del dispositivo? Si solo tuviera 1 eeprom conectado ... ¿sería solo cero? ¿Supongo que esto es solo si tuviera más de un chip en la línea i2c?
De todos modos, simulemos que tengo 1, necesitaría seguir estos pasos desde mi entendimiento (corríjame si me equivoco):
- Inicializar I2C
- Enviar el bit de inicio
- Enviar la dirección del dispositivo (¿cuál supongo que sería 0x00?, esta supuesta escritura en R / W es 0, por supuesto, ya que es el LSB)
- Espere a que ACK vuelva de la EEPROM (¿Esto sería literalmente un 0 que regresa o qué?)
- Escriba la palabra Dirección (no entiendo cómo un chip puede tener 1024 ubicaciones, por ejemplo, si hay 8 bits para una ubicación. ¿El valor máximo para 8 bits es 255?)
- Espere a que ACK vea si esa es una dirección válida
- Enviar mis datos hasta que envíe un bit de detención (supongo que la EEPROM "sabe" que se debe mover a la siguiente dirección después de cada byte de datos, ¿o tiene que actualizar la dirección de la palabra cada vez?)
Gracias! solo un poco confundido por el funcionamiento interno.