Professional Documents
Culture Documents
Detalles
ltima actualizacin el Mircoles, 05 Septiembre 2012 18:01 Escrito por Biblioman
En este ejemplo voy a mostrar lo fcil que es leer y grabar datos en una memoria EEPROM Externa desde un PIC utilizando el lenguaje C y el compilador CCS, concretamente la memoria a utilizar ser la 24LC256A fabricada por Microchip. Para empezar vamos a describir algunas caractersticas del nuevo componente que vamos a utilizar y cuyo patillaje tenis en la figura de abajo.
Esta es una memoria que tiene un tamao de 32 Kbytes, su estructura est organizada en palabras de 1 byte (8 bits) de longitud, por lo tanto dispondremos en total de 32x8=256 kbits para almacenar informacin. La caracterstica principal de esta memoria es que implementa el interfaz I2C para su comunicacin serie con otros dispositivos electrnicos. El protocolo I2C fue desarrollado por la empresa Philips, ahora llamada NXP, hace ya bastante tiempo impulsado por la necesidad en el mercado de establecer una interfaz que comunicara entre si varios dispositivos electrnicos y que ahorrara el mximo numero de patillas en los componentes, hay mucha informacin en la red sobre este protocolo por lo que solo voy ha citar a modo de resumen las caractersticas que considero mas relevantes acerca de este protocolo. Al final del artculo pondr los enlaces a varias fuentes para el que quiera profundizar en este protocolo de comunicacin.
Los cuatro primeros bits estn asignados al fabricante del dispositivo y los tres ltimos son configurables por hardware. En el caso de la memoria que estamos viendo el cdigo del fabricante es: 1010, como tenemos tres bits configurables podremos conectar entre si hasta ocho memorias 24LC256 juntas.
La trama de un mensaje simple donde el dispositivo que hace de maestro enva datos para ser escritos en la EEPROM sera el siguiente:
Se enva el bit de inicio (S) Se enva la direccin del esclavo, en este caso la memoria EEPROM Se enva un bit ms junto con la direccin del esclavo (R/W) para indicar que lo que se quiere es leer o escribir. Si este bit es cero el proceso ser de escritura. Despus el maestro manda un pulso de la seal de reloj, durante el cual el esclavo debe contestar con un ACK (seal de reconocimiento), si el maestro no recibe esta seal interrumpe la comunicacin. Despus se envan los bytes de direccin necesarios para identificar el registro de la EEPROM donde queremos realizar el proceso de escritura. Mandamos el dato que se almacenar en la EEPROM Y por ltimo se manda el bit de parada para finalizar la comunicacin.
Adems los pics que soportan este tipo de comunicacin disponen de modulos y registros especficos para facilitar la comunicacin I2C por hardware, lo mismo que tenamos con la comunicacin serie RS232. Como veis esto da pie a muchos ejemplos, ya que hay bastantes dispositivos (Relojes en tiempo real, convertidores A/D, expansin de puertos de E/S, LCDs, etc) que implementan esta interfaz, tambin tenemos la posibilidad de comunicar varios PICs entre si, uno haciendo de maestro y los otros de esclavos.