¿Paso 5: Ocho chips EEPROM en un único bus I²C? ¿Cómo?
Tengo un par de circuitos de 24LC128t EEPROM en mis cajones, pondré a un lado la tarea principal un poco y construir un tablero de prueba, por lo que te puedo mostrar algunos ejemplos, unas tijeras de forma de onda, comportamientos. El procesador que se leer y escribirles será un IMP eléctrico, en un tablero de dev abril.
La hoja de datos de los circuitos EEPROM se utilizará se puede encontrar aquí.
Como se puede ver en los diagramas de pines, tiene 3 de sus bits de dirección de esclavo traídos hacia fuera en los pines 1, 2 y 3. Si conectamos A0 y A1 suelo, A2 a 5V y ver en la figura 5-1 del dataheet, vemos cómo los primeros cuatro bits son duros codificado 0101, el resto son controlados por los pines A0, A1 y A2. Si conecto los pines lo que dije antes, mi dirección de esclavo será b1010100. 8-th es el bit de R/W.
Tres bits libremente modificables en la dirección de esclavo permite conectar 8 EEPROMS al mismo bus sin conflictos. Eso significa 8 veces 16 = 128 kilobytes de espacio. Puede almacenar variables, palabras de configuración, imágenes, todo lo que quieras. Nuestras direcciones de chip de memoria que van desde 0xA0 a 0xA7.
Interconexión de componentes es una materia fácil para hacer, una vez que tengas tus rutinas I²C todo resueltos, funcionando bien. La hoja de datos siempre enumera los registros que pueden ser escritos o leídos. Al igual que lee una EEPROM, puede leer datos de un acelerómetro de I²C, circuito medición corriente y así sucesivamente.
Diseño y construcción de un tablero de prueba de prototipo para la prueba EEPROM
Por supuesto, utiliza Altium para el diseño de la Junta, entonces exporta el diseño como dije antes, planchada la obra de arte a una placa de cobre, lavar el papel, lanzó la placa en cloruro férrico, lo aserrado, apilados lo y lo perforado a.
Para facilitar la interconexión, usé las dimensiones exactas de la Junta de abril, así que mi consejo prueba puede encajar en lo verdaderamente fácil. Energía se toma de los 500 mA CC-CC de las líneas de abril, la SDA y SCL se remonta a los pasadores de I²C de la IMP. Desde abril es open source, los chicos cool de la IMP eléctrico habían cargado los archivos PCB, había convertido en un modelo de paso y dentro de mi diseño del tablero - solamente en capa mecánica.
Los espaguetis de diseño no era difícil de pasar, me tomó unos 30 minutos.
Planchado de hecho, toner adherido al cobre, ahora tenemos que lavar el papel.
Papel comienza a remojo en agua, es este punto, donde empiezo a frotar el papel.
Papel está apagado, podemos empezar a aguafuerte
Una copia instantánea tomada antes de la aguafuerte en cloruro férrico. Los puntos negros son las correcciones que tenía que hacer después de una rápida visual comprobación de la capa de toner.
Y ya está listo. Podemos empezar a taladrar, cortar y rellenar con componentes.
No soldadura de los encabezados para las pastillas que no es necesario, es más fácil despegar en el «caso de incendio».
Comunicarse con la memoria de monstruo que acabamos de crear
Utilizando los patrones específicos con horarios específicos le permitirá acceder a la memoria de estos I²C EEPROM-s con leer o escribir los procedimientos.
• Si uno desea escribir datos en un 24LC128t, que su algoritmo debe seguir este patrón:
1 - enviar Inicio condición
2 - enviar dirección esclava, con el pedacito 8-th bajo (señalización escritura) - 0xA8
3 - enviar dirección de registro de esclavos, este es el "lugar" que queremos nuestro byte de datos a escribir. Todos registrar direcciones y sus nombres pueden encontrarse en la hoja de datos del dispositivo, junto con su propósito.
4 - enviar los bytes que queremos escribir en la dirección que ha especificado antes de
5 - condición de parada de enviar
• Si se desea leer desde el 24LC128t, él o ella debe hacer algo como esto:
1 - enviar Inicio condición
2 - enviar dirección esclava, con el pedacito 8-th bajo (señalización escritura) - 0xA8
4 - enviar registro de dirección de esclavo, de los cuales se leerán datos
5 - enviar Inicio condición (restart)
6 - enviar dirección esclava, con el pedacito 8-th alta (señalización leer) - 0xA9
7 - leer datos de bus
8 - enviar estado de stop
Grabé algunos segmentos de onda crítica, Échales un vistazo! Todo está funcionando como se especifica en la especificación de I²C.
Esta imagen representa la escritura de 0x88 a la dirección 0x00FF del primer chip EEPROM con dirección de esclavo 0xA0.
Aquí puede ver una lectura de 0x00FF dirección del tercer chip EEPROM con dirección de esclavo 0xA2. Los datos devueltos están 0xFF.
Vamos a ver cómo se relaciona la I²C a nuestro proyecto en el siguiente paso.