Está en la página 1de 6

ITSS- Modulos

MODULOS C y DCI
Paola Lizzet Esparza Godoy e-mail: paoesparzagodoy@hotmail.com Resumen: Este capitulo trata de las caractersticas, estructura y funcionamiento de los mdulos I2C y DCI para las comunicaciones sncronas de tipo serie. Para la comunicacin del modulo I C se utiliza seis registros de 16 bits, y existen dos actuadores llamados maestro y esclavo.
2

Control del Slew Rate para velocidades del bus de 100 KHz y 400 KHz

2. CARACTERSTICAS FUNCIONAMIENTO

DE

1. INTRODUCCIN AL MODULO C
El modulo I2C se utiliza en las comunicaciones sncronas de tipo serie bien sea con microcontroladores o perifricos, tales como memorias EEPROM serie, convertidores A/D, displays, registros de desplazamiento, etc Este modulo puede funcionar de diversas formas: Interfaz C para comunicacin maestro-esclavo Modo esclavo C con direcciones 7 a 10 bits Modo maestro I C con direcciones 7 a 10 bits Puerto C bidireccional para sistemas maestro-esclavo Control de la comunicacin serie mediante el puerto C para sincronizacin serie de reloj Operaciones en sistemas multimaestro. Puede detectar colisiones de bus y controlar el arbitraje de acceso al mismo

El hardware implementa todas las funciones del maestro y del esclavo as como el direccionamiento de 7 y 10 bits. De esta forma, un modulo I2C puede funcionar como esclavo o maestro en un mismo bus. I2C Hay tres tipos de operacin C:

1. Operacin de esclavo con direccionamiento de 7 bits 2. Operaciones de esclavo con direccionamiento de 10 bits 3. Operaciones de maestro con direccionamiento de 7 o 10 bits Para el control de la comunicacin C se utiliza seis registros de 16 bits, de los cuales algunos no tienen funcin alguna. I2CCON e I2CSTART son los registros de control y estado respectivamente. el registro I2CCON es leible y escribible El registro I2CRCV es el registro de recepcin. I2CTRN es el registro del buffer de salida en el cual se escriben los bytes durante ala operacin de transmisin El registro I2CADD contiene la direccin del esclavo. El bit ADD10 indica el modo direccionamiento (7 o 10 bits). El CBRG acta como el valor de la recarga del generador baudios.

ITSS- Modulos
Para las operaciones de recepcin de datos, I2CRSR e I2CRCV forman juntos un buffer receptor doble. Cundo I2CRSR recibe un byte completo, se transfiere a I2CRCV y se genera una interrupcin. Durante la transmisin, el I2CTRN acta como un buffer normal.
I2CBRG 0204 0206 DISSLW Generador de baudios

I2CCON

ACKEN RCEN PEN P S R_W C

ACKDT

STREN

SMEN

GCEN

RSEN RBF

I2CSTAT

0208 GCSTAT

ADD10

IWCOL

I2COV

D_A

Nombre SFR Direc.

Bit 15

Bit 14

Bit 13

Bit 12

Bit 11

Bit 10

I2CRCV 0200

3. LAS DIRECCIONES DEL MODULO C


-

I2CTRN

0202

El registro contiene las direcciones del modulo esclavo. Si el bit de A10M (I2CCON<10>) es 0 la direccin ser interpretada por el modulo como una direccin de 7 bits. Cuando se recibe una direccin se compara a los 7 bits menos significativos del registro I2CADD. Si el bit A10M es 1 la direccin ser de 10 bits y al recibirla, se la comparara con el binario 11110A9A8 (los bits A9 yA8 son los dos mas significativos de I2CADD)

I2CBRG 0204

I2CCON

I2CSIDL

IPMEIN

SCLREL

ACKSTAT I2CSTAT TRSTAT 0208

BCL

A10M

I2CEN

0206

I2CADD

020A

4. FUNCIONAMIENTO EN MODO ESCLAVO CON DIRECCIONAMIENTO DE 7 BITS


Una vez configurado el modulo para trabajar en modo esclavo (I2CEN=1), permanecer sin hacer nada hasta que le llegue un bit de inicio, mientras tanto, el modulo del C esta <<espera>> o Idle Una vez detectado el bit de inicio se carga los siguientes 8 bits en I2CRSR y se comparan con el registro I2CADD. En modo 7-

Nombre SFR Direc. Bit 9

Bit 8

Bit 7

Bit 6

Bit 5

Bit 4 Bit 3 Bit 2

Bit 1

I2CRC V 0200

Registro de recepcin

I2CTR N 0202

Registro de transmisin

Bit 0

I2CAD D 020A

Registro de direcciones

Fig. Mapa de registros del modulo

TBF

SEN

ITSS- Modulos
bit(A1oM=0), los bits I2CADD se comparan con los de I2CRSR y el ultimo bit, I2CRSR, es el bit de R_W(lectura_escritura). Todos los bits que recibe el esclavo se muestra en el flanco de subida de la seal SCL. 4.1 TRANSMISION EN MODO ESCLAVO Para transmitir datos se comienza poniendo el bit R_W a 1. Se enva el reconocimiento ACK en el nombre flanco y despus se mantiene la lnea SCL inactiva hasta que la CPU responda escribiendo I2CTRN. Se enva la seal SCL activando el bit SCLREL y entonces ya que se puede enviar el primer byte. Los bits de datos dejan de ser validos en el flanco de bajada de SCL, de tal forma que SDA es valida mientras SCL esta a nivel alto. 4.2 RECEPCION EN MODO ESCALVO Para recibir el bit de R_W se pone a 0. Lo bits entrantes en el flanco ascendente de CSCKL. Se reciben los primeros 8 bits y si I2CRCV no esta lleno I2COV no se activa, I2CRSR se transfiere a I2CRCV. La seal de reconocimiento ACK se enva en el noveno flanco de reloj. byte de la direccin es idntico para los mensajes de 7 bits y de 10 bits y de 10 bits, pero lo0s bits que se comparan son diferentes.
6. INTERRUPCIONES

El mdulo I2C dispone de dos flags de interrupcin, MI2CIF (flag de interrupcin principal del I2C) y SI2CIF (flag de interrupcin auxiliar). El flag MI2CIF se activa al completar un mensaje del maestro. El flag SI2CIF se activa en la deteccin de un mensaje dirigido al esclavo.

7. SOPORTE DE DIRECCIONAMIENTO DE LLAMADA GENERAL


Cuando se utiliza la direccin de llamada general, todos los dispositivos deben, en teora responder con un reconocimiento. Es una comprobacin general. La direccin de llamada general es una de las ocho direcciones reservadas para los propsitos especficos de los protocolos I2C. Consiste en todo ceros con R_W=0. Se reconoce la direccin de llamada general cuando se activa el bit GCEN que se encuentran en uno de los registros de control (I2CCON<15>=1). Tras la deteccin del bit de comienzo se vuelca un byte en I2CrSr y la direccin se compara con I2CADD, pero adems se compara con la direccin de llamada general, el I2CRSr se transfiere al I2CRCV despus del octavo flanco de reloj, se activa el flag del RBF, y en el noveno flanco (bit del ACK) se activa el flag de interrupcin principal (MI2CIF). Cuando se mantiene la interrupcin la causa se puede ver reflejada en el contenido del I2CRCV, pudiendo determinar si la direccin es de un

5. FUNCIONAMIENTO EN MODO ESCLAVO CON DIRECCIONAMIENTO DE 10 BITS


El funcionamiento bsico en este tipo de direccionamiento es el mismo que en el de 7 bits. Sin embargo, los criterios para la comparacin de la direccin son mas complejas. El bit A10m es el encargado de especificar que la direccin en I2CAD es de 10 bits. Un esclavo necesita dos bytes para determinar su direccin en modo de escritura. El primer

ITSS- Modulos
dispositivo especfico o una direccin de llamada general. igual a 0. La informacin se transmite en grupos de 8 bits. Por cada byte enviado se recibir de reconocimiento ACK. En la recepcin del maestro, el primer byte transmitido contiene la direccin del esclavo (7 bits) y del bit de la direccin de los datos. El bit R_W ser igual a 1. La informacin se recibe en grupos de 8 bits va SDA, mientras q SCL funciona como salida del reloj. Despus de la recepcin de cada byte, se transmite un bit de reconocimiento ACK. Las acciones de inicio y de parada indican el principio y el final de la transmisin. 8.1 TRANSMISIN EN MODO MAESTRO l envi ya sea de un byte de datos, de una direccin 7 bits, o de la segunda mitad de una direccin 10 bits, se lleva a cabo escribiendo en el registro I2CTRN. El usuario solo podr acceder al I2CTRN cuando el mdulo se encuentre en estado Idle. Esta accin activara el flag TBF y permitir el comienzo de la siguiente transmisin. El flag del estado de transmisin TRSTAT, indica que el maestro esta enviando datos.
S Direccin del esclavo Escritura R_W=0 A Dato A Dato A P

8. SOPORTE DEL MAESTRO


Cuando se usa I2C y el dispositivo funciona como maestro soporta seis operaciones. 1. Una condicin de inicio o start en SDA y SCL. 2. Una condicin de RESTART en SDA y SCL. 3. Escribir al registro de I2CTRN que inicia la transmisin de datos/direccin 4. Una condicin de parada o stop en SDA y SCL 5. Configurar el puerto I2C para recibir datos 6. Una condicin de reconocimiento ACK al final del byte recibido Toda comunicacin comienza cuando el maestro enva la condicin de inicio. Se reconoce porque la lnea SCL est a 1 y en la lnea SDA hay un flanco descendente. El final de una transferencia se produce cuando el maestro genera la condicin deparada, consiste en que SCL sea igual al SDA soporte un flanco ascendente. El maestro se ocupa en toda comunicacin de generar los pulsos de reloj y las condiciones de inicio y parada. Una transferencia se termina con una condicin de parada o con una condicin de comienzo repetida. En la transmisin de modo maestro la informacin se enva en serie por la lnea SDA, mientras que SCL lleva la seal de reloj. El primer byte transmitido contiene la direccin del esclavo (7 bits) y el bit de direccin de los datos. En el bit R_W ser
S

Datos transferidos (n bytes +ACK)

Fig. Ejemplo de trasmisin de datos

8.2 RECEPCIN EN MODO MAESTRO Se activa al poner el primer bit RCEN (I2CCON) a 1. El mdulo del I2C deben estar en estado de espera (Idle) antes de fijar este bit. La informacin pasara entonces al registro CRSR y en cada octavo flanco de la SCL se activara el bit de reconocimiento ACK
Direccin del esclavo R_W=1 A Dato A Dato A P

ITSS- Modulos
Soporta hasta 16 ranuras de tiempo para un tamao mximo de la trama de 256 bits.
Escritura Datos transferidos (n bytes +ACK)

Fig Ejemplo de recepcin de datos

11. FUNCIONAMIENTO DEL MODULO DCI


El bit DCIEN de control habilita este modo de operacin. Al poner este bit en 0 se representa el modulo y se pasa a funcionar en DCI. El DCI controla la direccin de los datos por las cuatro patitas de E/S asociada al modulo; de los registros de los puertos, LAT y TRIS para esta patita, se deshabilitan cuando se activa el bit de DCIEN. Los bits WS<3:0> del registro DCICON2 determinan el numero de bits en cada palabra de datos de DCI. Puede ser seleccionada cualquier longitud de los datos hasta 16 bits. El generador de trama sncrona (COFSG) es un contador de 4 bits que determinan la longitud de la trama en palabra de datos. El periodo se selecciona escribiendo en los bits del control de COSFG en el DCICON2 SFR. El periodo de COFSG en ciclos de reloj.

9. FUNCIONAMIENTO DURANTE EL MODO SLLEP Y EL MODO IDLE


Cuando el dispositivo entra en modo sleep todas las fuentes del reloj se detiene. Si el modulo se encuentra en medio de una operacin de trasmisin o de recepcin y entra en modo Sleep, la comunicacin termina y la informacin no es valida. Cuando el sistema funciona en modo Idle el bit de CSIDL selecciona si el modulo C continua o no en marcha lenta

10. MODULO DE LA INTERFAS DEL CONVERTIDOR DE DATOS (DCI)


El modulo de la interfaz del convertidor de datos (DCI) permite la interconexin sencilla de dispositivos como codificadores/decodificadores de audio, de convertidores A/D y D/A. Transferencia de trama de serie sncrona(de uno o varios canales) Interfaz de sonido Inter-IC( S) Modo AC (modo de link conforme).

12. OPERACIN EL LOS MODOS SLEEP E ILDE


El modulo de DCI tiene la capacidad de funcionar en modo SLEEP. El modulo DCI genera una interrupcin asncrona cuando la transferencia del buffer intermedio de DCI haya terminado y la CPU este en modo SLEEP. El bit de control DCI esta a cero, el modulo DCI continuar funcionando normalmente en modo IDLE, y si se activa el bit DCISIDL, el modulo parar durante el modulo IDLE.

El modulo DCI se fundamenta como interfaz de alta calidad de aplicaciones de voz y sonido comprendidas entre 8 y 48KHz y con palabras de 13 a 24 bits para codificadores. Es muy til para telefona y modem, efectos musicales de instrumentacin, reconocimiento de voz, compresin de voz y audio, elimina del eco o de otras perturbaciones sonoras. Soporta los protocolos S (Inter IC sound) y AC97.

ITSS- Modulos
13. BIBLIOGRAFIA:
Microcontroladores avanzados dsPIC, controladores digitales de seales arquitectura programacin y aplicaciones.

También podría gustarte