jueves, 11 de agosto de 2011

Curso Electronica industrial y microcontroladores: Bus I2C y memorias seriales EEPROM

El bus I2C es una interfase serial de dos Hilos desarrollada por Philips/Signetis.
Terminologia del Bus I2C:

  • Maestro: Es el dispositivo que inicia y termina una transferencia generando todas las señales.

  • Esclavo: Es el dispositivo direccionado por un maestro

  • Transmisor: Dispositivo que envia los datos al bus.

  • Reseptor: Dispositivo que resive datos del bus.

Propiedades del bus:
  1. Presenta dos lineas biderreccionales llamadas SDA y SCL culla coneccion electrica es de OPEN-COLLECTOR.

  2. Es un bus bidireccional.

  3. Siempre habra un maestro y un esclavo.

  4. Cada dispositivo tendra su propia direccion.

  5. El bus I2C es multimaestro. Es desir que puede haber mas de un maestro.

  6. Transferencia de bits: standar 100Kb/seg full speed 400kb/seg

  7. Maxima capasidad 400pf

  8. SDA es bidireccional.

Tuner de television, Memorias seriales (24cxx), lcd IC's, monitores.

Validez del bit
El bit de datos transferido por la linea SDA debe mantenerse estable durante el periodo en que la seÑal de reloj esta en su nivel alto (1).
La linea de datos SDA solo puede cambiar cuando SCL esta en nivel bajo (0).
En este bus existen dos tipos de condisiones espesiales:
1. condicion de arranque start
(datos) SDA -----____
(clock) SCL ----------
2. condicion de parada stop
(datos) SDA _____-----
(clock) SCL ----------
Estas condisiones son generadas por el maestro asi:
Siempre que comienza una transferencia se genera una condicion de arranque o llamada de START.
Al terminar una transferencia se genera una condicion de parada STOP.
Luego de una transferencia de datos debe generarse una condicion de reconosimiento ACK. dejando libre la linea SDA.
ACK
(datos) SDA __-----
(clock) SCL _____--
Inicio de escritura de un byte
Despues de la condicion de arranque siguen 8 bit's de controlgenerados por el maestro, de los cuales 7 se utilisan para identificar el dispositivo comandado y el 8> bit indica eltipo de operacion a realisar si es '1' indica lectura si es '0' indica escritura.
Para iniciar una operacion de escritura, el maestro genera una condicion de arranque (start) seguida de los 7 bits de la palabra de direccion y el obtavo bit '0' que indica la operacion de escritura el esclavo responde con un acuse de resibido, luego se envian los 8 bits de datos a los cuales el dispositivo direccionado debe responder con un bit de reconosimiento.
START|DIRECCION DEL ESCLAVO|W|ACK|DATOS|ACK|DATOS|STOP|
Para iniciar una operacion de lectura, el maestro genera una condicion de arranque (start) seguida de los 7 bits de la palabra de direccion y el obtavo bit '1' que indica la operacion de lectura el esclavo responde con un acuse de resibido y luego se envian los 8 bits de datos a los cuales el maestro debe responder con una condicion de parada.
Para iniciar una operacion de lectura, el maestro genera una condicion de arranque (start) seguida de los 7 bits de la palabra de direccion y el obtavo bit '1' que indica la operacion de lectura el esclavo responde con un acuse de resibido y luego se envian los 8 bits de datos a los cuales el maestro debe responder con una condicion de parada.
START|DIRECCION DEL ESCLAVO|R|DATOS|START|DIRECCION DEL ESCLAVO|DATOS|STOP|
Memorias seriales EEPROM
Las memorias que bamos a tratar son las mas utilisadas por los que programamos microcontroladores pic me refiero a las 24C01-02-04-08-16.


-SCL: RELOJ
-SDA: DATOS
-WP*: PROTECCION DE ESCRITURA (activo en alto)
-A0,A1,A2: SELECCION DE CHIP O BLOQUE.

Peculiaridades de la programacion de estas memorias:
TABLA DE DIRECCIONAMIENTO.








24C01 1 1/0 1/0 1/0 8 128 word
24C02 1 1/0 1/0 1/0 8 256 word
24C04 2 x 1/0 1/0 4 512 word
24C08 4 x x 1/0 2 1024 word
24C16 8 x x x 1 2048 word



Primero se genera un bit de start luego se envia el bite de control con las siguientes caracteristicas:
START|1 0 1 0 |A2 A1 A0 |R/W |
El codigo 1 0 1 0 identifica a la memoria EEPROM serial
Los bit's A2 A1 A0 seleccionan uno de los 8 chips que se pueden acoplar en paralelo o si no un bloque interno de memoria de 128 0 256 bytes cada uno.
El bit de control 8 es el que indica lectura o escritura.
La memoria debe responder con un bit de reconosimiento luego de resivir cada comando.
En operaciones de lectura es el maestro quien debe generar un bit de reconosimiento despues de cada byte de datos.
OPERACION DE ESCRITURA El maestro debe comensar con una condision de START luego se envia el BYTE de control con el obtavo bit en '0'.
Asi:
START|1 0 1 0 |A2 A1 A0 |0|
La memoria responde con una condision de ACK Luego el maestro envia los 8 bits de la direccion y la memoria responde con un ACK.
Seguidamente el maestro embia los 8 bits de datos y la memo ria responde con un ACK.
Finalmente el maestro genera un STOP. luego de esto la memoria comienza un ciclo de escritura interna que demora 10mSg. durante el cual la memoria no responde a nigun requerimiento del maestro
OPERACION DE LECTURA
El maestro debe comensar con una condision de START luego se envia el BYTE de control con el obtavo bit en '0'.
Asi:
START|1 0 1 0 |A2 A1 A0 |0|
La memoria responde con una condision de ACK Luego el maestro envia los 8 bits de la direccion y la memoria responde con un ACK.
El maestro ahora genera una condision de START luego se envia el BYTE de control con el obtavo bit en '1'.indicando la operacion de lectura.
Asi:
START|1 0 1 0 |A2 A1 A0 |1 |
La memoria responde con un ACK. y luego envia los 8 bits de datos en este momemto el maestro puede generar una condision de stop y terminar con la transferencia o seguir leyendo respondiendo con un ACK tras cada byte resibido.
Bases para programar una memoria serial con PIC
Conecciones basicas:




0 comentarios:

Publicar un comentario