¿Cómo se puede interconectar la EEPROM I2C del AT24C256 con Arduino?
En este tutorial, interconectamos una EEPROM serial I2C IC AT24C256 con el Arduino. En primer lugar, vamos a ver un poco sobre las EEPROM secuenciales AT24, el esquema de pines y la descripción de pines de la AT24C256, escribir algunas capacidades de LECTURA y ESCRITURA a/desde la EEPROM y, finalmente, averiguar cómo funciona la interfaz de la EEPROM del Arduino AT24C256.
Introducción
La EEPROM, que es la abreviatura de Memoria de Aprendizaje Programable Borrada Eléctricamente, es un tipo de memoria no volátil que conserva su contenido incluso después de apagar la instalación.
Hay dos tipos de EEPROM con respecto a la ubicación del cuerpo. Una es la EEPROM interna, que está incorporada en el microcontrolador y la otra es la EEPROM externa, que está dentro del tipo de un CI y tiene que estar conectada a un microcontrolador a través de una interfaz serie (como I2C o SPI).
Ya mencioné en un tutorial anterior consejos para entrar en la EEPROM interna de Arduino. Para más detalles sobre la EEPROM (y su historia), la memoria inestable y no volátil, y el estudio y la escritura en la EEPROM interna de Arduino, echa un vistazo a "TUTORIAL DE LA EEPROM DE ARDUINO".
Las EEPROMs tienen a veces una medida limitada (normalmente unos pocos kB), pero son considerablemente rápidas porque están en el mismo silicio que el procesador de la MCU. En el caso de Arduino UNO, por ejemplo, la MCU ATmega328P (que es el microcontrolador del UNO) sólo tiene un kB de EEPROM.
Aquí es donde entran en juego los CI de EEPROM externa. Tendrás capacidades de hasta 256 kB (o más) y se pueden interconectar de forma sencilla por I2C o SPI.
Una palabra transitoria del AT24C256
Si hablamos de circuitos integrados EEPROM en serie, se habla mucho de las secuencias AT24 y AT25 de Atmel (ahora Microchip). La secuencia AT24 es I2C, mientras que la secuencia AT25 son circuitos integrados EEPROM SPI.
Para este reto, he seleccionado el CI AT24C256, que es una EEPROM de 256 kbit. Esto interpreta 2.62.144 bits o 32.768 Bytes (32 kB).
Es un CI de 8 pines en paquetes SOIC de 8 carriles, TSSOP de 8 carriles, UDFN de 8 carriles o VFBGA de 8 bolas. El SOIC de 8 carriles está de moda en los módulos de Arduino.
Diagrama de pines
La siguiente imagen muestra el diagrama de pines del CI EEPROM AT24C256.
Descripción de la clavija
Cantidad |
Pin |
Haz |
1 |
A0 | Tackle Enter |
2 | A1 |
Tackle Enter |
3 |
A2 | Tackle Enter |
4 | GND |
Piso |
5 |
SDA | Conocimiento en serie |
6 | SCL |
Reloj de serie |
7 |
WP | Escudo de la escritura |
8 | VCC |
Fuente de alimentación |
Interfaz EEPROM del Arduino AT24C256
Permítenos ahora proceder a la interfaz del CI EEPROM AT24C256 con Arduino UNO. Lo primero que hay que tener en cuenta es que la AT24C256 (o alguna otra EEPROM de secuencia AT24) se comunica a través de I2Interfaz C. Así que utiliza los pines analógicos A4 (SDA) y A5 (SCL) para la comunicación I2C.
Como se trata de una comunicación I2C, queremos resistencias pull-up para las trazas SDA y SCL. He utilizado unas resistencias de 10 kΩ como pull-ups. El resto de las conexiones son bastante sencillas y se demuestran en el esquema del circuito.
Lo siguiente es el cable de la máquina. En caso de que consultes la hoja de datos, obtendrás un diagrama con consejos sobre cómo utilizar los pines Tackle Enter para configurar el System Tackle del CI.
La secuencia "1010" para los 4 primeros MSB es obligatoria para todas las EEPROM I2C de Atmel. Los tres bits siguientes, es decir, A2, A1 y A0 te permiten unir hasta 8 unidades en el mismo Bus I2C.
Como sólo utilizamos un CI AT24C256, los tres pines A2, A1 y A0 de la entrada de la grúa están conectados a tierra para que sus valores correspondientes dentro de la grúa del sistema sean "000".
El último bit (LSB) es el bit de elección para la operación de aprendizaje o escritura. Si es "1", se elige la operación de Aprendizaje y si este bit es "0", se elige la operación de Escritura.
NOTA: Ignoraremos el LSB del mango de la máquina mientras escribimos el código, ya que Arduino Wire (y la biblioteca interna TwoWire) se encarga de ello, confiando en la operación. Así, declararemos el asa como "0x50".
NOTA: Mi CI de EEPROM AT24C256 se compró roto mientras lo enviaba. Puede que utilice un CI AT24C04 más antiguo, que tiene una capacidad de 4 kb (4096 bits o 512 B), para la demostración. El circuito sigue siendo idéntico, ya que cada uno de ellos es un EEPROMS I2C con pines similares y el código requiere muy pocas modificaciones.
Piezas necesarias
- Arduino UNO
- AT24C256 EEPROM IC
- 2 x 10 kΩ de resistencia
- Cableado
- Bandeja para el pan
- Suministro de energía de la placa de pan (no es obligatorio)
Diagrama del circuito
La siguiente imagen muestra el diagrama del circuito de la interfaz EEPROM del Arduino AT24C256.
Código
Para escribir el código, no necesitas conseguir ninguna otra biblioteca, ya que sólo utilizaremos la biblioteca "Wire" (que viene con el IDE de Arduino). Como alternativa al uso de una biblioteca dedicada, tomé la decisión de poner por escrito dos capacidades para las operaciones de aprendizaje y escritura del AT24C256, utilizando la biblioteca "Wire".
Escribir un byte en la EEPROM
Aprender un byte de la EEPROM
Código
Para revelar el funcionamiento del Arduino y de la interfaz externa de la EEPROM IC, escribí un pequeño código que almacena los valores ASCII del 33 ('!') al 126 ('~') utilizando el rendimiento de escritura.
Después de almacenarlos dentro de la EEPROM, los aprendo utilizando el rendimiento de aprendizaje e imprimo los caracteres en el Monitor Serial.
Conclusión
Un sencillo tutorial sobre consejos para interconectar el CI EEPROM AT24C256 con Arduino. Si comprendes cómo funciona la interfaz EEPROM del Arduino AT24C256, podrás implementar cualquier función de adquisición de conocimientos.
Si quieres conocer otros artículos parecidos a ¿Cómo se puede interconectar la EEPROM I2C del AT24C256 con Arduino? puedes visitar la categoría Electricidad Básica.
Deja una respuesta
¡Más Contenido!