Está en la página 1de 59

20.

1 INTRODUCCIN
El mdulo de interfaz convertidor de datos (DCI) permite sencilla interfaz entre los
dispositivos dsPIC33E y dispositivos de audio, tales como codificadores / decodificadores
(codecs de audio), convertidores de analgico a digital (ADC) y convertidores de digital a
analgico (DAC).
Nota: El mdulo de ICD no est disponible en dispositivos PIC24H.
Las siguientes interfaces estn soportadas:

Transferencia sncrona serial de enmarcado (monocanal o multicanal).


Interfaz de sonido Inter-IC (I2S).
Modo AC-Link Compliant.

Muchos codecs destinados a ser utilizados en aplicaciones de audio compatibles con


frecuencias de muestreo entre 8 kHz y 48 kHz, y el uso de uno de los protocolos de
interfaz mencionados anteriormente. El mdulo DCI maneja automticamente la
sincronizacin de interfaz asociado con estos codecs. No se requiere ninguna sobrecarga
de la CPU hasta que la cantidad de datos solicitada ha sido transmitida y/o recibida por el
mdulo de DCI.
La longitud de la palabra de datos para el mdulo DCI es programable hasta 16 bits para
que coincida con el tamao de los datos de la aplicacin de audio. Sin embargo, muchos
codecs tienen la palabra de datos con tamaos mayores de 16 bits. El mdulo DCI puede
soportar largas longitudes de palabra de datos. El mdulo de DCI est configurado para
transmitir/recibir la palabra larga en mltiples ranuras de tiempo de 16 bits. Esta
operacin es transparente para la aplicacin asignado por el usuario. La palabra de datos
de largo se almacena en lugares de registro consecutivos.
El mdulo DCI puede soportar hasta 16 intervalos de tiempo en una trama de datos, para
un tamao mximo de trama de 256 bits. Los bits de control para cada ranura de tiempo
en la trama de datos determinan si el mdulo DCI transmite/recibe durante la ranura de
tiempo.
El mdulo dsPIC33E/PIC24E DMA permite la transferencia directa de datos entre la
memoria RAM y los registros de transmisin y recepcin del DCI.
20.2 DESCRIPCIN DE LOS REGISTROS DE CONTROL
Muchos codecs destinados a ser utilizados en aplicaciones de audio compatibles con
frecuencias de muestreo entre 8 kHz y 48 kHz, y el uso de uno de los protocolos de
interfaz mencionados anteriormente. El mdulo DCI maneja automticamente la
sincronizacin de interfaz asociado con estos codecs. No se requiere ninguna sobrecarga

de la CPU hasta que la cantidad de datos solicitada ha sido transmitida y/o recibida por el
mdulo de DCI.
El DCI tiene cinco registros de control y un registro de estado:

DCICON1: Registro de control 1 del mdulo de interfaz convertidor de datos


Este registro controla los bits de habilitacin y modo del mdulo DCI
DCICON2: Registro de control 2 del mdulo de interfaz convertidor de datos
Este registro controla la longitud de la palabra, longitud de la trama de datos, y el
buffer de configuracin del mdulo DCI
DCICON3: Registro de control 3 del mdulo de interfaz convertidor de datos
Este registro controla el bit mdulo de configuracin del generador de reloj DCI
DCISTAT: Registro de estado del mdulo de interfaz convertidor de datos
Este registro contiene la informacin de estado del mdulo DCI
RSCON: Registro de habilitacin de la ranura de recepcin
Este registro permite el control franja horaria marco activo para la recepcin de
datos
TSCON: Registro de habilitacin de la ranura de transmisin
Este registro permite el control franja horaria marco activo para la transmisin de
datos

Adems de estos registros de estado y control, hay cuatro registros de transmisin,


desde TXBUF0 hasta TXBUF3, y cuatro registros de recepcin, desde RXBUF0 hasta
RXBUF3.

Registro 20-1:

DCICON1: Registro de control 1 del mdulo de interfaz convertidor de datos

Leyenda:
R = bit legible
-n = Valor en POR

bit 15

bit 14

W = bit escribible
'1'= Bit se ajusta

U = Bit no implementado, ledo como '0 '


'0'= Bit se limpia
x = Bit es desconocido

DCIEN: Bit de habilitacin del mdulo DCI


1 = mdulo est habilitado
0 = mdulo est desactivado
No implementado: Leer como '0 '

bit 13

bit 12
bit 11

bit 10

bit 9

bit 8

bit 7

bit 6

bit 5

bits 4-2
bits 1-0

DCISIDL: Bit de control de parada del DCI en Idle


1 = Mdulo detiene en el modo inactivo de la CPU
0 = Mdulo sigue funcionando en el modo inactivo de la CPU
No implementado: Leer como '0 '
DLOOP: bit de control de modo de bucle digital
1 = modo de bucle digital est activado, pines CSDI y CSDO conectados
internamente
0 = modo de bucle digital se inhabilita
CSCKD: bit de control de direccin de muestra del reloj
1 = pin CSCK es una entrada al mdulo DCI est habilitado
0 = pin CSCK es una salida cuando el mdulo DCI est habilitado
CSCKE: bit de control Muestra de Reloj de bordes
1 = Los cambios de datos en flanco de bajada del reloj de serie, muestra el flanco
ascendente de reloj en serie
0 = Los cambios de datos en el flanco ascendente de reloj en serie, muestra el
flanco de bajada del reloj de serie
COFSD: Marco de la direccin de sincronizacin de bits de control
1 = COFS pin es una entrada al mdulo DCI est habilitado
0 = COFS pin es una salida cuando el mdulo DCI est habilitado
UNFM: bit de modo Underflow
1 = transmitir ltimo valor registrado en el registro de transmisin en un
desbordamiento de transmisin
0 = transmitir '0 's en un desbordamiento de transmisin
CSDOM: bit de modo Serie Salida de datos
1 = pin CSDO se tri-declar durante los intervalos de tiempo de transmisin
discapacitados
0 = pin CSDO impulsa '0 's durante los intervalos de tiempo de transmisin
discapacitados
DJST: DCI datos poco Justificacin de control
1 = la transmisin/recepcin de datos comienza en el mismo ciclo de reloj de serie
que el marco pulso de sincronizacin
0 = la transmisin/recepcin de datos se inicia un ciclo de reloj de serie despus
del pulso de sincronizacin de trama
No implementado: Leer como '0 '
COFSM <1:0>: Bits Frame Sync Mode
11 = 20 bits modo AC-Link
10 = 16 bits modo AC-Link
01 = Modo Sync Frame I2S
00 = Modo Sync Frame multicanal

Registro 20-2:

DCICON2: Registro de control 2 del mdulo de interfaz convertidor de datos

Leyenda:
R = bit legible
-n = Valor en POR

bits 15-12
bits 11-10

bit 9
bits 8-5

bit 4
bits 3-0

W = bit escribible
'1'= Bit se ajusta

U = Bit no implementado, ledo como '0 '


'0'= Bit se limpia
x = Bit es desconocido

No implementado: Leer como '0 '


BLEN <1:0>: bits de control Longitud de bfer
11 = cuatro palabras de datos se almacenan entre las interrupciones
10 = Tres palabras de datos se almacenan temporalmente entre las interrupciones
01 = Dos palabras de datos se almacenan entre las interrupciones
00 = Una palabra de datos se almacena en bfer entre interrupciones
No implementado: Leer como '0 '
COFSG <3:0>: Marco bits de control de sincronizacin del generador
1111 = marco de datos tiene 16 palabras

0010 = marco de datos tiene tres palabras


0001 = marco de datos tiene dos palabras
0000 = marco de datos tiene una palabra
No implementado: Leer como '0 '
WS <3:0>: los bits de datos de Word DCI
1111 = tamao de Palabra de datos es de 16 bits

0100 = tamao de palabra de datos es cinco bits


0011 = tamao de palabra de datos es cuatro bits
0010 = Seleccin invlida. No utilice, pueden producirse resultados inesperados.
0001 = Seleccin invlida. No utilice, pueden producirse resultados inesperados.
0000 = Seleccin invlida. No utilice, pueden producirse resultados inesperados.

Registro 20-3:

DCICON2: Registro de control 3 del mdulo de interfaz convertidor de datos

Leyenda:
R = bit legible
-n = Valor en POR

bits 15-12
bits 11-10

DCISTAT: Registro de estado del mdulo de interfaz convertidor de datos

Leyenda:
R = bit legible
-n = Valor en POR

bits 7-4
bit 3

bit 2

U = Bit no implementado, ledo como '0 '


'0'= Bit se limpia
x = Bit es desconocido

No implementado: Leer como '0 '


BCG<11:0>: bits de control del generador de reloj del DCI

Registro 20-4:

bits 15-12
bits 11-8

W = bit escribible
'1'= Bit se ajusta

W = bit escribible
'1'= Bit se ajusta

U = Bit no implementado, ledo como '0 '


'0'= Bit se limpia
x = Bit es desconocido

No implementado: Leer como '0 '


SLOT <3:0>: Bits DCI Slot Estado
1111 = Ranura 15 est activo actualmente

0010 = ranura 2 est activo actualmente


0001 = La ranura 1 es activo en ese momento
0000 = La ranura 0 est activo actualmente
No implementado: Leer como '0 '
ROV: Recibir Desbordamiento bit de estado
1 = A recibir desbordamiento se ha producido por lo menos un registro de
recepcin
0 = A recibir no se ha producido desbordamiento
RFUL: Bfer de recepcin Bit de estado completa

bit 1

bit 0

1 = Nueva informacin disponible en los registros de recepcin


0 = Los registros de recepcin tienen datos antiguos
TUNF: Transmit Buffer Underflow bit de estado
1 = Un subdesbordamiento de transmisin se ha producido por lo menos un
registro de transmisin
0 = No se ha producido un desbordamiento de transmisin
TMPTY: Transmit Buffer Bit de estado vaca
1 = Los registros de transmisin se vaca
0 = Los registros de transmisin no estn vacas

Registro 20-5:

RSCON: Registro de habilitacin de la ranura de recepcin

Leyenda:
R = bit legible
-n = Valor en POR

bit 15

U = Bit no implementado, ledo como '0 '


'0'= Bit se limpia
x = Bit es desconocido

RSE15:RSE0: bits de habilitacin de las 15 ranuras de recepcin


1 = datos CSDI se recibe durante el tiempo individual ranura n
0 = datos CSDI se ignora durante el tiempo individual ranura n

Registro 20-6:

TSCON: Registro de habilitacin de la ranura de transmisin

Leyenda:
R = bit legible
-n = Valor en POR

bit 15

W = bit escribible
'1'= Bit se ajusta

W = bit escribible
'1'= Bit se ajusta

U = Bit no implementado, ledo como '0 '


'0'= Bit se limpia
x = Bit es desconocido

TSE15:TSE0: bits de habilitacin de las 15 ranuras de transmisin


1 = los contenidos del buffer de transmisin se envan durante el tiempo individual
ranura n
0 =el pin CSDO es tri-indicado o impulsado a 0 durante el tiempo individual de la
ranura n, dependiendo del estado del bit CSDOM.

20.3 CONCEPTOS Y NOCIONES BASICAS DE LA INTERFAZ DE CODEC


En cualquier aplicacin de cdec es, como mnimo, un controlador y un dispositivo de
cdec. Los protocolos de interfaz soportados por el mdulo de DCI requieren el uso de
una sincronizacin de trama de la seal (FS) (COFS en dispositivos dsPIC33E/PIC24E) para
iniciar la transferencia de datos entre los dos dispositivos. En la mayora de los casos, el
flanco ascendente de FS inicia una nueva transferencia de datos. Cualquier dispositivo
puede producir FS. El dispositivo que genera FS es el dispositivo maestro.
Conceptualmente, el dispositivo maestro no requiere ser el dispositivo
transmisor/receptor.
La figura 20-1 ilustra los ejemplos de conexin. La frecuencia de la seal de FS es por lo
general el frecuencia de muestreo del sistema, fs.
Figura 20-1:

Ejemplos de conexin de cdec

20.3.1 Reloj de transferencia serial


Todas las interfaces tienen un reloj de transferencia serial, SCK (pin CSCK en dispositivos
dsPIC33E/PIC24E). La seal de SCK puede ser generada por cualquiera de los dispositivos
conectados o se puede aportar desde el exterior. En algunos sistemas, SCK tambin se
conoce como el reloj de bits. Para codecs que ofrecen alta fidelidad de la seal, es comn
para la seal de SCK para ser derivado del oscilador de cristal en el dispositivo de cdec.
El protocolo define el borde de SCK en el que se muestrea datos. El dispositivo maestro
genera el FS sealar con respecto a SCK.
El perodo de la seal de FS delinea un marco de datos. Este perodo es el mismo que la
muestra de datos perodo. El nmero de ciclos de SCK que se producen durante la trama
de datos depende del tipo de cdec seleccionada. La relacin de la frecuencia de SCK a la
frecuencia de muestreo del sistema se expresa como una proporcin de n, donde n es el
nmero de perodos de SCK por trama de datos.
20.3.2 Transferencia de datos e intervalos de tiempo
Los datos se transfieren a travs de la salida de datos en serie (SDO) y Serial Introduccin
de datos (IDE) seales (CSDO y pins CSDI en dispositivos dsPIC33E/PIC24E). Una ventaja
de usar una interfaz de enmarcado protocolo es que varias palabras de datos se pueden
transferir durante cada perodo de la muestra, o el marco de datos. Por ejemplo,
considere un codec de 16 bits con cuatro canales de entrada. El cdec necesita transmitir
cuatro palabras de 16 bits dentro de un perodo de FS. Esto se traduce en ciclos de 64
SCK por perodo de FS y n = 64.
Los intervalos de tiempo pueden usarse para mltiples canales de datos de cdec /
informacin de control. Adems, mltiples dispositivos pueden ser multiplexados en los
mismos pines de datos en serie. Cada dispositivo esclavo programado para colocar sus
datos en la conexin de datos en serie durante la ranura de tiempo correcta. La salida de
cada dispositivo esclavo se tri-declar en todas las otras veces para permitir que otros
dispositivos para utilizar el bus serial.
Algunos dispositivos permiten que la seal FS que hayan de ser conectados en cadena a
travs de la sincronizacin del marco Output (FOE) pins. La figura 20-1 ilustra una
configuracin tpica en cadena margarita. Cuando el la transferencia desde el primer
dispositivo esclavo es completa, un pulso de FS se enva al segundo dispositivo en el
cadena a travs de su eje de FSO. Este proceso contina hasta que el ltimo dispositivo
de la cadena enva datos. El controlador (maestro) del dispositivo debe ser programado
para un tamao de cuadro de datos que tiene capacidad para la mayor de las palabras de
datos a transferir.
20.3.2.1 TRANSFERENCIA DE DATOS DE DISTRIBUCION
La figura 20-2 ilustra la temporizacin para una transferencia de datos tpico. La mayora
de los protocolos de comenzar la transferencia de datos se detecta un ciclo SCK despus
de la seal FS. En este ejemplo se utiliza un reloj de 16 Fs (fs es la frecuencia de
muestreo) y las transferencias de cuatro palabras de datos de 4 bits por trama.

Figura 20-2:

Ejemplos de transferencia de datos enmarcados

La figura 20-3 ilustra la temporizacin para una transferencia de datos tpica con
dispositivos conectados en cadena. En este ejemplo se utiliza una frecuencia de 16-fs SCK
y transfiere dos palabras de datos de 8 bits por trama. Despus se detecta el pulso FS, el
primer dispositivo en las transferencias de la cadena de la primera palabra de datos de 8
bits y genera la seal de FOE al final de la transferencia. La seal de FOE comienza la
transferencia de la segunda palabra de datos desde el segundo dispositivo de la cadena.

Figura 20-3:

Ejemplos de transferencia de dispositivos conectados en cadena

20.3.3 Pulso FS
El pulso FS tiene un tiempo activo mnimo de un perodo de SCK, de modo que el
dispositivo esclavo puede detectar el inicio de la trama de datos. El ciclo de trabajo del
pulso FS puede variar dependiendo del protocolo especfico utilizado para marcar ciertos
lmites en la trama de datos.
Como un ejemplo, el protocolo de I2S utiliza una seal de FS que tiene un ciclo de trabajo
del 50%. El protocolo de I2S est optimizado para la transferencia de dos canales de
datos (a la izquierda y la informacin de audio del canal derecho). Los bordes de la seal
de FS marcan los lmites de las palabras de datos de los canales izquierdo y derecho.
Como otro ejemplo, el protocolo AC-Link utiliza una seal FS que es alta durante 16 SCK
perodos y bajo durante 240 periodos de SCK. Los bordes de la seal de CA-Link FS
marcan los lmites de la informacin de control y datos en la trama.

20.4 FUNCIONAMIENTO DEL DCI


La figura 20-4 ilustra el diagrama de bloques simplificado del mdulo de DCI. El mdulo
consiste en un registro de desplazamiento de transmisin/recepcin conectado a una
pequea gama de buffers de memoria a travs de una unidad de control de memoria
intermedia. Esta disposicin permite que el mdulo de DCI para apoyar diversos
protocolos de serie de codecs. El registro de desplazamiento DCI es de 16 bits de ancho.
Los datos se transmiten y se reciben por el bit ms significativo DCI ms (MSB) primero.
Figura 20-4:

Diagrama de bloques del mdulo DCI

20.4.1 Pines del DCI


Cuatro pines I / O (CSCK, CSDO, CSDI y COF) se asocian con el mdulo DCI. El mdulo de
DCI, cuando est activado, controla la direccin de datos de cada uno de los cuatro
pasadores.
20.4.1.1 CSCK PIN.
El pasador CSCK proporciona la conexin del reloj de serie para la DCI. El pasador CSCK se
puede configurar como una entrada / salida mediante el bit de control CSCKD (DCICON1
<10>).

Cuando el pasador CSCK est configurado como una salida (CSCKD = 0), el reloj de serie
se deriva de la fuente de reloj del sistema dsPIC33E/PIC24E y se suministra a los
dispositivos externos por el ICD.
Cuando el pasador CSCK se configura como una entrada (CSCKD = 1), el reloj de serie
debe ser proporcionado por un dispositivo externo.
20.4.1.2 CSDO PIN
La salida de datos en serie (CSDO) pin es configurado como un pin de salida slo cuando
el mdulo est habilitado. El pasador CSDO conduce el bus de serie siempre que los
datos deben ser transmitidos. El pasador CSDO puede ser tri-declar o conducido a '0'
durante periodos de reloj de serie cuando los datos no se transmite, en funcin del
estado de la serie de bits de control Modo de salida de datos, CSDOM (DCICON1 <6>). La
opcin de los tres estados permite que otros dispositivos puedan multiplexar en la
conexin CSDO.
20.4.1.3 CSDI PIN
El pin de serie de datos de entrada (ICDS) es configurado como un pin de entrada slo
cuando el mdulo est habilitado.
20.4.1.4 COFS PIN
La sincronizacin de trama (COFS) pin se utiliza para sincronizar la transferencia de datos
que se producen en los pines CSDO y CSDI. El pasador COFS es bidireccional y puede
configurarse como una entrada / salida. La direccin de datos para el pasador COFS se
determina por el bit de control de COFSD (DCICON1 <8>):
Cuando se borra el bit COFSD, el pasador COFS es una salida. El mdulo DCI genera
pulsos de sincronizacin de trama para iniciar una transferencia de datos. La DCI es el
dispositivo maestro para esta configuracin.
Cuando se ajusta el bit COFSD, el pasador COFS convierte en una entrada. Seales de
sincronizacin de entrada al mdulo de iniciar la transferencia de datos. El ICD es un
dispositivo esclavo cuando se establece el bit de control COFSD.
20.4.2 Mdulo de habilitacin
El mdulo DCI se activa/desactiva mediante el establecimiento/despeje del mdulo DCI
Activar bit de control, DCIEN (DCICON1 <15>). Borrado del bit de control DCIEN
restablece el mdulo. Todos los contadores asociados a la generacin de serie del reloj,
sincronizacin de trama, y la lgica de control de memoria intermedia se restablecen.
Para obtener informacin adicional, consulte la seccin 20.5.1.1 "DCI Puesta en marcha y
datos Buffering" y 20.5.1.2 "DCI Desactivar".

Cuando est activada, la DCI controla la direccin de datos para el CSCK, CSDI, CSDO y
pines COFS E/S asociados con el mdulo. Los valores de los registros PORT, LAT y TRIS
para estos pines de E/S no prevalezca el mdulo DCI cuando se establece el bit DCIEN
(DCICON1 <15>).
20.4.3 Bit Generador de reloj.
El mdulo DCI tiene una base de tiempo de 12 bits dedicado que produce el reloj de bits.
La tasa de reloj de bit (punto) es establecido por escrito un valor distinto de cero de 12
bits para el bit DCI bits de control del generador de reloj, BCG <11:0> (DCICON3 <11:0>).
Cuando los bits de BCG se ponen a '0', el reloj de bit est desactivado.
Cuando el pasador CSCK es controlado por el mdulo de ICD, el puerto correspondiente,
LAT y valores de registro de control de TRIS para el pasador CSCK se invalida y la
direccin de datos para el pasador CSCK es controlado por el bit de control de CSCKD
(DCICON1 <10>).
Si el reloj de serie de la DCI es proporcionada por un dispositivo externo, establezca la
BCG <11:0> pedacitos (DCICON3 <11:0>) a '0' y el bit CSCKD a '1'.
Si el reloj de serie es generado por el mdulo de DCI, establezca la BCG <11:0> bits de
control (DCICON3 <11:0>) a un valor distinto de cero (vase la Ecuacin 20-1) y ajuste el
control CSCKD bit (DCICON1 <10>) a '0'.
Ecuacin 20-1 ofrece la frmula para la frecuencia de reloj de bit.
Ecuacin 20-1: Valor de los bit de generador de reloj del DCI

La frecuencia de reloj de bits requerida est determinada por la velocidad de muestreo


del sistema y tamao del marco. Frecuencias tpicas de reloj de bit van desde 16x a 512x
la velocidad de muestreo del convertidor, en funcin del convertidor de datos y el
protocolo de comunicacin utilizado.
Como ejemplo, considere un dispositivo dsPIC33E/PIC24E funcionando a 40 MIPS. Se
requiere que el mdulo de ICD para interactuar con un cdec de 16 bits, que est
configurado para una velocidad de muestreo de 8 kHz. Por lo tanto, el marco del perodo
de sincronizacin = 1/8 kHz = 125 ms.
El cdec enva dos palabras de 16 bits en cada trama y la trama tiene lugar en la toma de
muestras frecuencia. Dos palabras de 16 bits en un marco requiere el periodo de bit para
ser (125 ms / (2 x 16)) = 3.960625 ms. Por lo tanto, la frecuencia de reloj para este codec
es FCSCK = (1/3.960625 ms) = 256 kHz.

El Bit Generador de reloj (BCG) valor del mdulo DCI utilizando la ecuacin 20-1 es BCG =
(40000000 / (2 x 256.000)) - 1 = 77.
20.4.4 Seleccin de muestra de flaco de reloj
La Muestra de bit de control de flanco de reloj, CSCKE (DCICON1 <9>), determina el
borde de muestreo de la seal de reloj de serie.
Si el bit CSCKE se borra (por defecto), los datos se toman en el extremo descendente de
la seal CSCK. Los protocolos de AC-Link y la mayora de los formatos multicanal
requieren que los datos se toman en el extremo descendente de la seal CSCK.
Si el bit CSCKE est establecido, los datos se toman en el flanco ascendente de CSCK. El
protocolo I2S requiere que los datos se toman en el flanco ascendente de la seal de
reloj de serie.
20.4.5 bits de control de modo de sincronizacin de cuadros
El tipo de protocolo de interfaz soportado por el mdulo DCI se selecciona utilizando el
marco del modo de sincronizacin (COFSM) bits de control (DCICON1 <01:0>). Tabla 20-1
proporciona los diversos modos de funcionamiento.
Tabla 20-1:

Modalidades de servicio.

20.4.6 Palabra de tamao Bits de seleccin


Los bits de seleccin de palabras de tamao WS (DCICON2 <03:00>) determinan el
nmero de bits en cada palabra de datos de DCI. Esta es la longitud de cada ranura de
tiempo en el marco. Cualquier longitud de los datos de cuatro a 16 bits pueden
seleccionarse. Tamao de palabra mayor que 16 bits se puede procesar al permitir que
mltiples ranuras de tiempo. Para obtener ms detalles, consulte 20.5.3 "Embalaje datos
para Long soporte de Word Data".
20.4.7 Marco de sincronizacin del generador (FSG)
El generador de sincronizacin de trama (FSG) es un contador de 4 bits que define la
longitud de trama en palabras de datos. El plazo para la FSG es fijado por la escritura de
los bits de control de sincronizacin generador de trama, COFSG <3:00> (DCICON2
<8:05>). Ecuacin 20-2 proporciona el perodo de FSG (en ciclos de reloj en serie).

Ecuacin 20-2: longitud de cuadros, En Ciclos CSCK

Una trama de datos puede incluir ranuras de tiempo durante el cual no se transfiere
datos. Como un ejemplo, un cdec de 16 bits requiere una palabra de control para ser
recibido 16 ciclos de reloj (Time Slot 2) despus de recibir la palabra de datos de 16 bits
(Time Slot 0). El cdec tambin transmite una palabra de datos en su lnea de produccin
en Time Slot 0 (consulte la Figura 20-5).
La longitud total del marco es de tres ciclos de reloj words/48 (16 ciclos de reloj por
palabra x tres palabras). Para comunicarse con este codec, estos bits de registro DCICON
deben configurarse de la siguiente manera:
Tamao Palabra: WS <3:00> (DCICON2 <3:0) = 1111 (16-bit).
Generador de sincronizacin del marco: COFSG <3:00> (DCICON2 <08:05>) = 0.010
(tres palabras).
A pesar de que no se transmiten datos durante la ranura de tiempo 1, la longitud de
trama debe adaptarse a la ranura de tiempo desactivado (un intervalo de tiempo
durante el cual no se transmiten datos o recibido).
Cuadro con longitudes de hasta 16 palabras de datos pueden ser seleccionados. La
longitud de trama en periodos de reloj de serie variar hasta un mximo de 256
dependiendo del tamao de la palabra seleccionada.
Figura 20-5:

Sincronizacin de DCI con WS<3:0> = 1111 y COFSG<3:0> = 0010

20.4.8 Registros de Transmisin y Recepcin


El DCI tiene cuatro registros transmitir, a travs TXBUF0 TXBUF3, y cuatro Recibir
registros, RXBUF0 travs RXBUF3. Todos los de la transmisin y recepcin registros son
asignados a la memoria.

20.4.8.1 ALINEACIN DE BUFFER DE DATOS.


Los valores de datos se almacenan siempre justifican a la izquierda en los registros
TXBUFx y RXBUFx, ya que los datos de audio PCM se representa como un nmero
fraccionario a 2 con signo complemento. Si el tamao de la palabra DCI programada sea
inferior a 16 bits, los bits no utilizados menos significativo (LSB) en los registros, son
fijadas a '0 'por el mdulo. El mdulo ignora los bits menos significativos no utilizados en
el registro de transmisin.
20.4.8.2 BUFFERS DE TRANSMISION Y RECEPCION.
La transmisin y recepcin registros cada uno tiene un conjunto de buffers que no son
accesibles por el software de usuario. Efectivamente, cada lugar de transmisin y
recepcin del bfer es de doble bfer. El mdulo DCI transmite los datos de los bferes
de transmisin y escribe los datos recibidos para los bferes de recepcin. Los buffers
permiten que el software del usuario para leer y escribir los registros RXBUFx y TXBUFx,
mientras que la DCI utiliza los datos de los buffers.
20.4.9 Unidad de Control del Buffer de DCI.
El mdulo DCI contiene una unidad de control de memoria intermedia que transfiere
datos entre la memoria intermedia y el registro de desplazamiento en serie. La unidad de
control de memoria intermedia tambin transfiere datos entre la memoria tampn y los
registros TXBUFx y RXBUFx. La unidad de control de memoria intermedia permite la DCI a
la cola de la transmisin y recepcin de varias palabras de datos sin sobrecarga de la
CPU.
El mdulo DCI genera una interrupcin cada vez que una transferencia entre la memoria
intermedia y los registros TXBUFx y RXBUFx llevan a cabo. El nmero de palabras de
datos almacenados en el bfer entre interrupciones est determinada por los bits de
control de longitud de bfer, BLEN <1:0> (DCICON2 <11:10>). El tamao de la
transmisin y recepcin de amortiguacin pueden variar de 1 a 4 palabras de datos
utilizando el BLEN <1:0> bits de control.
Cada vez que una transferencia de datos tiene lugar entre el registro de desplazamiento
de DCI y la memoria tampn, la unidad de control de memoria intermedia ICD se
incrementa para apuntar a la siguiente ubicacin de memoria intermedia. Si el nmero
de palabras de datos transmitidos o recibidos es igual a la BLEN <1:0> valor + 1, ocurre lo
siguiente:
1. La unidad de control de memoria intermedia se resetea para que apunte a la primera
ubicacin de memoria intermedia.
2. Los datos recibidos se celebr en el bfer de recepcin se transfiere a los registros
RXBUFx.
3. Los datos en los registros TXBUFx se transfiere a la memoria intermedia.

4. Se genera una interrupcin de la CPU.


La unidad de control de memoria intermedia DCI accede siempre a la misma posicin
relativa en la transmisin y recepcin buffers. Por ejemplo, si el ICD est transmitiendo
datos desde TXBUF3, cualquier dato recibido durante ese intervalo de tiempo se escribe
en RXBUF3.
Figura 20-6:

Unidad de control del buffer del DCI

20.4.10 Bits de habilitacin de ranura de transmisin.


El registro de habilitacin de la ranura de transmisin (TSCON) posee los bits de control
que activan la ranura de transmisin, TSE15: TSE0 (TSCON <15:0>), que puede permitir a
un mximo de 16 ranuras de tiempo para la transmisin. El tamao de cada intervalo de
tiempo es determinado por el WS bits de seleccin de tamao <3:0> palabra (DCICON2
<03:0>) y puede variar hasta 16 bits.
Si un intervalo de tiempo de transmisin se activa a travs de uno de los bits TSEx (TSEx =
1), el contenido de la ubicacin de memoria intermedia de transmisin de corriente se
carga en el registro CSDO Shift y los incrementos de una unidad de control de tampn de
ICD para apuntar a la siguiente ubicacin de memoria intermedia. Al menos una ranura
de tiempo de transmisin debe ser habilitada para datos a transmitir. Si se encuentra

una franja horaria con discapacidad, los incrementos de puntero de bfer sin transmisin
del contenido del correspondiente registro TXBUFx.
No todos los bits de control TSEx afectar al funcionamiento del mdulo, si el tamao del
fotograma seleccionado tiene menos de 16 ranuras de datos. No se utilizan los bits de
control ms significativo TSEx. Por ejemplo, si COFSG <03:00> = 0111 (ocho ranuras de
datos por trama), a travs de TSE8 TSE15 no tienen ningn efecto sobre el
funcionamiento del ICD.
20.4.10.1 CONTROL DE MODO CSDO
Durante los intervalos de tiempo de transmisin con discapacidad, el pasador CSDO
puede conducir 0 de o puede ser tri-declar, dependiendo del estado del bit CSDOM
(DCICON1 <6>). Una ranura de tiempo de transmisin dada est desactivada si el bit
correspondiente TSEx se borra en el registro TSCON.
Si el bit CSDOM (DCICON1 <6>) se elimina (por defecto), los CSDO unidades de pasador
de 0 en el pasador CSDO durante los perodos de intervalo de tiempo minusvlidos. Este
modo se utiliza cuando slo hay dos dispositivos (un maestro y un esclavo) conectados al
bus serial.
Si el bit CSDOM (DCICON1 <6>) se establece, el pasador CSDO es tri-declar durante
periodos de intervalo de tiempo no utilizado. Este modo permite que varios dispositivos
dsPIC33E/PIC24E compartan la misma lnea CSDO en una aplicacin de multiplexado.
Cada dispositivo en la lnea CSDO est configurado de manera que transmite datos slo
durante los intervalos de tiempo especficos. No hay dos de ellos podrn transmitir datos
durante el mismo intervalo de tiempo.
20.4.11 Bits de habilitacin de la ranura de recepcin
El registro de habilitacin de la ranura de recepcin (RSCON) bits de habilitacin para
activar la ranura de recepcin, RSE15: RSE0 (RSCON <15:0>), que se utiliza para permitir
que hasta 16 ranuras de tiempo para la recepcin. El tamao de cada ranura de tiempo
de recepcin se determina por el WS <3:0> bits de control (DCICON2 <3:0>) y puede
variar de cuatro a 16 bits.
Si la hora de recibir la ranura est activada a travs de uno de los bits RSEx (RSEx = 1), el
contenido del registro de desplazamiento se escriben en el actual ICD ubicacin de
recepcin de amortiguamiento y los avances de la lgica de control de memoria
intermedia a la siguiente ubicacin de bfer disponible. Por lo menos un intervalo de
tiempo de recepcin debe ser habilitado para que los datos sean recibidos. Si se
encuentra una ranura de tiempo desactivado, los incrementos de puntero de memoria
intermedia sin recibir el contenido del registro de RXBUFx correspondiente.

Los datos no se embala en las ubicaciones de almacenaje de memoria recibira si el


tamao de la palabra seleccionada es menor a 16 bits. Cada palabra de datos de la
ranura recibida se almacena en una ubicacin temporal 16 bits. Los datos siempre se
almacena en un formato justificado a la izquierda en la memoria intermedia de
recepcin. Por lo tanto, si el tamao de la palabra es de 8 bits, los datos recibidos se
almacena en el bit 15 a travs de bit 8 del registro RXBUFx.
20.4.12 Unidad de control de Buffer Operacin del DCI
El mdulo DCI permite operaciones de lectura y escritura mientras est en el proceso de
transmisin/recepcin de datos. Los datos se escriben a los registros TXBUFx y leer a
partir de los registros RXBUFx. A continuacin se muestra un ejemplo de interno DCI
operacin de lectura / escritura, para el caso de BLEN <1:00> = 01 (longitud de bfer = 2).
La figura 20-7 ilustra cuando el mdulo DCI est desactivado, no se reciben
datos/transmisin.
Figura 20-7:

Modulo DCI deshabilitado

La figura 20-8 ilustra el estado de los registros de transmisin despus de la aplicacin ha


escrito datos en los registros TXBUF0 y TXBUF1.
Figura 20-8:

Aplicacin asignado por el usuario escribe a TXBUF0 y TXBUF1

Cuando el mdulo DCI est activada, la CPU recibe la interrupcin DCI despus de tres
ciclos de reloj. Cuando esto ocurre, los datos en TXBUF0 se desplaza hacia el registro de
desplazamiento y los datos en TXBUF1 se desplaza a la memoria intermedia de
transmisin (consulte la Figura 20-9). El mdulo DCI se iniciar el cambio de datos sobre
el pasador CSDO.
El contenido de los bferes de recepcin se desplazan a la RXBUFx recibir registros. Dado
que no se recibieron datos cuando se ha desactivado el mdulo, estos valores se lee
como '0 '. Los registros RXBUFx '0 'hasta la siguiente interrupcin, por lo que los datos de
tiempo de los bferes de recepcin se transfiere a estos registros. El mdulo empezar a
sobrescribir los datos en el bfer de recepcin con los datos recibidos en el pin CSDI.
Figura 20-9: Modulo DCI habilitado

La solicitud asignado por el usuario escribe datos nuevos en TXBUF0 y TXBUF1. Tenga en
cuenta que la escritura de datos en el registro TXBUFx no afecta a la operacin de
transmisin actual. La segunda palabra de datos se desplaza al registro de
desplazamiento. La figura 20-10 ilustra nueva palabra de datos que es recibido por la
lnea CSDI en los bferes de recepcin.
Figura 20-10:

Aplicacin asignado por el usuario escribe a TXBUF0 y TXBUF1, Mdulo DCI comienza a
transmitir Segunda Palabra

El mdulo ha terminado de transmisin / recepcin de operaciones BLEN + 1 palabras, lo


que provoca una interrupcin. Los datos en los bferes de recepcin se copian en los
registros RXBUFx. La figura 20-11 ilustra los datos de la TXBUF0 se desplaza al registro de
desplazamiento y el contenido del registro TXBUF1 se copia en el bfer de transmisin.
Este ciclo se repite con cada DCI Interrupcin.
Figura 20-11:

Mdulo DCI de transmisin/recepcin dos palabras

20.4.13 Funcionamiento de TSCON y RSCON con la unidad de control de bfer


La ranura de bits de habilitacin en el TSCON y registros RSCON funcionar de manera
independiente, con la excepcin de la lgica de control de memoria intermedia. Para
cada intervalo de tiempo en una trama de datos, la ubicacin del bfer es avanzado si
bien la TSEx o el bit RSEx se establece para el intervalo de tiempo actual. Es decir, la
unidad de control de memoria intermedia sincroniza la transmisin y recepcin de
tamponamiento, de modo que la transmisin y recepcin de almacn intermedio es
siempre la misma para cada ranura de tiempo en la trama de datos.
Si el bit TSEx y el bit RSEx son tanto conjunto para cada ranura de tiempo utilizado en la
trama de datos, el ICD transmitir y recibir la misma cantidad de datos.
En algunas aplicaciones, el nmero de palabras de datos transmitidas durante un marco
puede no ser igual al nmero de palabras recibido. Consideremos un ejemplo donde el
DCI est configurado para una trama de datos 2-palabra, con intervalo de transmisin 0
habilitada (TSCON = 0x0001) y recibir las ranuras 0 y 1 habilitada (RSCON = 0x0003). El
mdulo de ICD est configurado para interrumpir en cuatro palabras (BLEN <01:0> = 11).
El tamao de la trama se establece en dos palabras de datos por trama (COFSG = 0,001) y
el tamao de la palabra de datos se establece en 8 bits (WS <3:0> = 0.111). Figura 20-12
ilustra el diagrama de temporizacin para este ejemplo, y la figura 20-13 se muestra la
operacin tampn DCI correspondiente. Esta configuracin permite que la DCI para
transmitir una palabra de datos por trama y recibir dos palabras de datos por trama.
Puesto que dos palabras de datos se reciben por cada palabra de datos transmitidos, el
software de usuario se escribe en todas las dems localidades bfer de transmisin.
Especficamente, slo TXBUF0 y TXBUF2 se utilizan para transmitir datos.

El control de tampn restablece para que apunte a la primera posicin del buffer cuando
BLEN <1:0> + 1 buffers se escriben y se genera una alarma de la CPU, o TXBUF3 y RXBUF3
son procesados y el puntero de memoria intermedia debe saltar a la primera posicin del
buffer.
El control de tampn incrementa el puntero de memoria intermedia cuando se han
procesado todos los bits en una ranura de tiempo permitido / los bits en la ranura de
tiempo exceden de 16 bits. El puntero a los incrementos de registro TXBUFx en
sincronizacin con el puntero RXBUFx.
20.4.14 Funcionamiento de TSCON y RSCON con DMA
El mdulo de DMA en dispositivos dsPIC33E/PIC24E se puede configurar para transferir
datos directamente entre la memoria RAM y la DCI TXBUF0 y registros RXBUF0, sin
intervencin de la CPU. El BLEN <1:0> bits (DCICON2 <11:10>) debe fijarse a '0 'para un
funcionamiento correcto. Aunque el DCI mdulo utiliza slo TXBUF0 y RXBUF0 para el
funcionamiento en este modo, todava es posible tener marcos de varias palabras y
mltiples ranuras de tiempo. La solicitud asignada por el usuario debe asegurarse de que
la los datos almacenados en la memoria corresponde a las ranuras de tiempo permitido.
La Figura 20-12 es un ejemplo de la comunicacin cdec mdulo de DCI. Aqu, el mdulo
de DCI tiene un intervalo de tiempo de transmisin (TS0) habilitado, y dos reciben los
intervalos de tiempo (RS0 y RS1) habilitado. La longitud de palabra es de 8 bits (WS <3:0>
= 0111) y el tamao del marco es de dos palabras (COFSG <3:0> = 0001).
Con BLEN <1:0> = 0, las peticiones de mdulo DCI para una transferencia DMA en cada
palabra. El mdulo DCI est configurado para el tamao de palabra de 8 bits y transmite
los datos MSB primero. Por lo tanto, los datos en la RAM deben organizarse de tal forma
que los datos de 8 bits a transmitir se colocan en el Byte ms significativo (MSB) de la
palabra de 16 bits. Para cumplir con los criterios de tiempo que se muestran en la figura
20-12, la transmisin memoria de datos en la RAM, adems, debe ser organizada de tal
manera que cada palabra representa datos a transmitir.

Transferencia 1
El mdulo de DMA coloca el contenido de la memoria RAM en TXBUF0 y el
contenido de RXBUF0 en la RAM. TXBUF0 y datos RXBUF0 corresponde al intervalo
de tiempo 0. El puntero del DMA se incrementa. Dado que el tamao de la palabra
de datos es de 8 bits, los datos recibidos se almacenan en los 8 bits superiores de
la palabra de RAM (consulte la Figura 20-14).

Transferencia 2
El mdulo de DMA copia el contenido de la memoria RAM en TXBUF0 y el
contenido de RXBUF0 en la memoria RAM. Estos datos corresponden al intervalo

de tiempo 1. Desde la ranura de tiempo de transmisin 1 est desactivado, el


Mdulo DCI no transmitir los datos. Sin embargo, debido recibir tiempo ranura 1
est habilitada, el RXBUF0 registro contendr los datos recibidos en el pin CSDI
(consulte la Figura 20-15). Los datos estn colocado en la memoria RAM y el
puntero de DMA se incrementar.

Transferencia de 3
Dado que la longitud de la trama es de dos palabras, el mdulo DCI afirmar la
seal COFS. La DMA mdulo coloca el contenido de la memoria RAM en TXBUF0 y
el contenido de RXBUF0 en la memoria RAM. TXBUF0 y datos RXBUF0 corresponde
al intervalo de tiempo 0. El puntero del DMA se incrementar. Dado que el tamao
de la palabra de datos es de 8 bits, los datos recibidos se almacenan en los 8 bits
superiores de RAM palabra (consulte la Figura 20-16).

Transferencia 4
El mdulo de DMA coloca el contenido de la memoria RAM en TXBUF0 y el
contenido de RXBUF0 en RAM. Estos datos corresponden al intervalo de tiempo 1.
Desde la ranura de tiempo de transmisin 1 est desactivado, la DCI mdulo no
transmitir los datos. Sin embargo, debido recibir tiempo ranura 1 est habilitada,
el Registro RXBUF0 contendr los datos recibidos en el pin CSDI (consulte la Figura
20-17). Los datos estn colocados en la memoria RAM y el puntero de DMA se
incrementar.

20.4.15 Bits de Estado de Recepcin


Los dos reciben los bits de estado, bfer de recepcin completa, RFUL (DCISTAT <2>), y
recepcin de desbordamiento, ROV (DCISTAT <3>), indican el estado slo para las
ubicaciones de registro que estn habilitadas para el uso del mdulo. Esta es una funcin
de la BLEN <1:00> bits de control (DCICON2 <> 11:10). Si la longitud del bfer se
establece en menos de cuatro palabras, las ubicaciones de almacenaje no utilizados no
afectan a los bits de estado de recepcin.
El bit de estado RFUL (DCISTAT <2>) es de slo lectura e indica que los nuevos datos se
encuentran disponibles en la Recibir registros. El bit RFUL se borra automticamente
cuando todos los registros RXBUFx en uso han sido ledos por el software de usuario.
El bit de estado ROV (DCISTAT <3>) es de slo lectura y se indica que un desbordamiento
de recibir tiene producido por al menos una de las ubicaciones de recepcin de registro.
Un desbordamiento de recibir ocurre cuando el RXBUFx registrarse ubicacin no es ledo
por el software de usuario antes de que los nuevos datos se transfieren desde la
memoria tampn. Cuando se produce un desbordamiento de recibir, los contenidos
previos del registro son sobrescritos. El bit de estado ROV se borra automticamente
cuando el registro que caus el desbordamiento se lee.

20.4.16 Bits de Estado de Transmisin


Los dos bits de estado de transmisin, transmisin de bfer vaco (TMPTY) y Transmit
Buffer Rebase por defecto (tunf), indican el estado slo para las ubicaciones de registro
que son utilizados por el mdulo. Por ejemplo, si la longitud del bfer se establece en
menos de cuatro palabras las ubicaciones de registro no utilizados no hacen afectar a los
bits de estado de transmisin.
El bit TMPTY (DCISTAT <0>) es de slo lectura y se establece cuando el contenido de la
TXBUFx activo los registros se transfieren a los registros de memoria intermedia de
transmisin. El bit TMPTY se puede consultar en el software para determinar cundo los
registros Transmit se pueden escribir. El bit TMPTY se borra automticamente por el
hardware cuando se produce una escritura en cualquiera de los registros TXBUFx en uso.
El bit tunf (DCISTAT <1>) es de slo lectura y se indica que se ha producido un
desbordamiento de transmisin durante al menos uno de los registros transmitir de uso.
El bit tunf se establece cuando el registro TXBUFx contenido se transfiere a la memoria
tampn de transmisin y el software de usuario no escribieron todos la TXBUFx registra
en uso desde la ltima transferencia del bfer. El bit de estado tunf borra
automticamente cuando el TXBUFx registr que underflowed est escrito por el
software de usuario.
20.4.17 Bits de estado del SLOT
La ranura de bits de <3:0> de estado (DCISTAT <11:8>) indica el intervalo de tiempo
activo actual en los datos marco. Estos bits son tiles cuando ms de cuatro palabras por
trama de datos necesitan ser transferidos.
El software de usuario puede sondear estos bits de estado cuando una interrupcin
ocurre DCI para determinar a qu hora datos de la ranura de la ltima recibida y la que
los datos de intervalos de tiempo deben ser cargados en los registros TXBUFx.
20.4.18 Modo de Bucle Digital
Modo de bucle digital se habilita activando el bit de control de modo de bucle digital,
DLOOP (DCICON1 <11>). Cuando se establece el bit DLOOP, el mdulo se conecta
internamente la seal CSDO a CSDI. La entrada de datos reales sobre el pasador CSDI se
ignora en el modo de bucle digital.
20.4.19 Bit de Control Modo Underflow
Cuando se produce un desbordamiento de transmisin, una de dos acciones pueden
ocurrir dependiendo del estado de la Rebase por bit de control de modo, UNFM
(DCICON1 <7>).

Si el bit UNFM se borra (por defecto), el mdulo transmite '0 's en el pin CSDO
durante el intervalo de tiempo activo para el puesto de almacn intermedio. En
este modo de funcionamiento, el dispositivo cdec adjunta a el mdulo DCI es
simplemente introduce el "silencio" digital.

Si el bit de control de UNFM est establecido, el mdulo transmite los ltimos


datos escritos en el bfer ubicacin. Este modo de funcionamiento permite que el
software de usuario para enviar un valor de datos contina al dispositivo de cdec
sin consumir sobrecarga de software.

20.4.20 Datos Justificacin de control


En la mayora de las aplicaciones, la transferencia de datos se inicia un ciclo de reloj en
serie despus de que se muestrea la seal FS activo (consulte la Figura 20-18). Este es el
mdulo predeterminado DCI.

Un alineamiento de datos alternativa se puede seleccionar al establecer el bit de control


DJST (DCICON2 <5>). Cuando DJST = 1, las transferencias de datos comienzan durante el
mismo ciclo de reloj en serie como la seal FS (consulte a la figura 20-19).

20.4.21 Interrupciones Mdulo DCI


La frecuencia de las interrupciones de mdulos DCI depende de los bits de control BLEN.
Una interrupcin es generada cuando se ha alcanzado la longitud del bfer. Si las
interrupciones estn habilitadas antes de la DCI mdulo est activado, se genera una
interrupcin de tres ciclos CSCK despus de que el mdulo est habilitado.

El mdulo DCI tambin cuenta con una interrupcin de error. El error de interrupcin si
est activado hace que la CPU interrumpir cuando se produce un desbordamiento de
transmisin o de un evento de recepcin de desbordamiento.
20.5

USO DEL MDULO DCI


En esta seccin se explica cmo configurar y utilizar el mdulo de DCI con tipos
especficos de datos convertidores.
20.5.1 Cmo transmitir y recibir datos mediante el DNI Buffers, Bits de estado e
Interrupciones
El mdulo DCI puede proteger hasta cuatro palabras de datos entre las interrupciones de
la CPU en funcin de la ajuste de los bits de control BLEN. Los datos almacenados pueden
ser transmitidos y recibidos en una sola trama de datos, o en varias tramas de datos,
dependiendo de los ajustes de los registros TSCON y RSCON. A continuacin se presentan
cuatro ejemplos de configuracin.
1.

Asumir BLEN <1:0> = 00 (tampn una palabra de datos por interrupcin) y TSCON
= RSCON = 0x0001. Esta configuracin especfica representa la configuracin ms
bsica y hace que el mdulo de DCI para transmitir/recibir una palabra de datos en
el comienzo de cada trama de datos. La CPU se interrumpe despus de cada
palabra de datos transmitidos / recibidos desde BLEN <1:0> = 00. Para obtener
ms informacin, consulte la Figura 20-20.

2.

Supongamos BLEN <01:00> = 11 (tampn cuatro palabras de datos por


interrupcin) y TSCON = RSCON = 0x0001. Esta configuracin hace que el mdulo
de ICD transmita o reciba una palabra de datos en el comienzo de cada trama de
datos. Se genera una interrupcin de la CPU despus se transmiten cuatro
palabras de datos / recibido. Esta configuracin es til para el procesamiento de

bloques, donde se procesan las mltiples muestras de datos a la vez. Para obtener
ms informacin, consulte la figura 20-21.

3.

Supongamos BLEN <01:00> = 11 (tampn cuatro palabras de datos por interrupcin)


y TSCON = RSCON = 0x000F. Esta configuracin hace que el mdulo de ICD a
transmitir/recibir cuatro palabras de datos en el comienzo de cada trama de datos.
Una interrupcin de la CPU es genera cada trama de datos en este caso porque el
mdulo de ICD se cre para amortiguar cuatro palabras de datos en una trama de
datos. Esta configuracin representa un tpico de amortiguacin de mltiples
canales configuracin. Para obtener ms informacin, consulte la Figura 20-22.

4.

El mdulo de ICD tambin puede ser configurado para amortiguar ms de cuatro


palabras de datos por trama. Por ejemplo, supongamos BLEN <1:00> = 11 (tampn
cuatro palabras de datos por interrupcin) y TSCON = RSCON = 0x00FF. En esta
configuracin, el mdulo de ICD transmite / recibe ocho palabras de datos por
trama de datos. Una interrupcin se genera dos veces por trama de datos. Para
determinar qu parte de los datos se encuentra en el transmitir o recibir registros
en cada interrupcin, el programa de usuario debe comprobar el SLOT pedacitos

<3:0> de estado (DCISTAT <11:8>) en la rutina de servicio de interrupcin (ISR)


para determinar la posicin del marco de datos actual. La Figura 20-23 ilustra un
ejemplo de 4 bits para este caso.

La transmisin y recepcin registros son de doble almacenamiento intermedio, por lo


que el mdulo DCI puede trabajar en un conjunto de transmisin y recepcin de datos,
mientras que el software de usuario est manipulando el otro conjunto de datos. Debido
a los dobles tampones, se necesitan tres perodos de interrupcin para recibir el, proceso
de datos que los datos, y transmitir los datos tratados. Para cada interrupcin DCI, la CPU
procesa una palabra de datos recibida durante un perodo de interrupcin antes y genera
una palabra de datos transmitida durante el prximo periodo de interrupcin. El tiempo
de procesamiento y el almacenamiento en bfer de datos del dispositivo dsPIC inserta un
perodo de dos alarma de retardo en los datos procesados. En la mayora de los casos,
este retraso de datos es insignificante.
Los indicadores de estado de DCI y de interrupcin de la CPU indican que una
transferencia de bfer se ha producido y que es hora de que la CPU para procesar ms
datos. En una aplicacin tpica, ocurre lo siguiente cada vez que los datos de DCI es
procesada:
1.

Registros RXBUFx son ledos por el software de usuario.

2.

RFUL bit de estado (DCISTAT <2>) es fijado por el mdulo para indicar que los
registros de recepcin contienen datos nuevos.

3.

Poco RFUL se borra automticamente despus de que se hayan ledo todos los
registros de recepcin activas.

4.

Software del usuario procesa los datos recibidos.

5.

TMPTY bit de estado (DCISTAT <0>) se establece para indicar que los registros
Transmitir estn listos para ms datos a escribir.

6.

Hay datos procesados se escribe en los registros TXBUFx.

Para las aplicaciones que estn configuradas para transmitir y recibir datos (TSCON y
RSCON son no-cero), el RFUL (DCISTAT <2>) y TMPTY (DCISTAT <0>) bits de estado se
puede consultar en el software del usuario para determinar cuando un buffer DCI
transferencia.

Si el DNI se utiliza nicamente para transmitir datos (RSCON = 0), el bit TMPTY se
puede consultar para indicar una transferencia de bfer

Si el DNI se configura para slo recibir datos (TSCON = 0), el bit RFUL se puede
consultar para indicar una transferencia de bfer

El bit de estado DCIIF (IFS3 <9>) se establece cada vez que una transferencia de bfer DCI
lleva a cabo y genera una interrupcin de la CPU, si est habilitado. El bit de estado DCIIF
es generado por la operacin O lgica de la RFUL (DCISTAT <2>) y TMPTY (DCISTAT <0>)
bits de estado.
20.5.1.1 DCI PUESTA EN MARCHA Y almacenamiento intermedio de datos
Para la puesta en marcha del DCI, primero inicializar el registro de control del DCI para el
modo de funcionamiento deseado. La transferencia de datos se inicia estableciendo el
bit de control DCIEN (DCICON1 <15>). Consulte 20.5.4 "Multi-Canal de uso", 20.5.5 "I2S
operacin", y 20.5.6 "AC-Link Operacin".
La figura 20-24 ilustra un diagrama de tiempos para el inicio de la DCI. En este ejemplo, el
ICD est configurado para una palabra de datos de 8 bits (WS <03:0> = 0111) y una trama
de datos de 8 bits (COFSG <03:0> = 0000). La longitud de bfer se establece en un buffer
(BLEN = 00), el intervalo de tiempo de transmisin 0 se habilita (TSCON = 0x1), y el recibir
intervalo de tiempo 0 se habilita (RSCON = 0x1). Adems, se utiliza el modo multicanal
(COFSM <1:0> = 00). Los pasos necesarios para transmitir y recibir datos se describen
como sigue:
1.

Carga previa de los registros TXBUFx con los primeros datos a transmitir antes de
habilitar el mdulo. Si los datos de transmisin se basan en los datos recibidos
desde el codec, el software del usuario puede simplemente borrar los registros
TXBUFx. Esto transmite "silencio" digitales hasta que los datos se recibi por
primera vez en el RXBUFx registra desde el codec.

2.

Habilitar el mdulo DCI estableciendo el bit DCIEN (DCICON1 <15>). Si la DCI es el


dispositivo maestro, los datos en los registros TXBUFx se transfiere a los bferes de
transmisin y la transmisin de la primera trama de datos comienza. De lo
contrario, los datos TXBUFx se mantienen en los buffers de transmisin hasta que
se recibe una seal de sincronismo de trama del dispositivo maestro.

3.

El bit TMPTY (DCISTAT <0>) se establece tres ciclos de reloj despus de que el
mdulo est habilitado y se genera una alarma de DCI, si est habilitado. En este
momento, el mdulo est listo para la TXBUFx registra que volver a cargar los
datos a transferir en la segunda trama de datos. No se han recibido datos por el
mdulo, por lo que los registros se borran TXBUFx de nuevo si la transmisin datos
se calcula a partir de los datos recibidos. Si se habilitan las interrupciones,
desactive el bit de estado DCIIF en el software de usuario.

4.

Despus se transfiere la primera trama de datos, el bit de TMPTY (DCISTAT <0>)


est establecido, el bit de estado RFUL se establece, y una interrupcin de ICD se
produce, si est activado. Esta es la primera palabra de datos recibido desde el
dispositivo conectado a la DCI.

5.

El software de usuario lee el registro de recepcin, la limpieza automticamente el


bit de estado RFUL. El software de usuario tambin procesa los datos recibidos.

6.

El registro de transmisin est escrito con datos a transmitir durante la siguiente


trama de datos. El bit de estado TMPTY (DCISTAT <0>) se borra automticamente
cuando se produce la escritura. La escritura los datos se pueden calcular a partir de
los datos recibidos en la interrupcin anterior.

7.

La siguiente interrupcin DCI ocurre y el ciclo se repite.

20.5.1.2 Deshabilitacin del DCI


El mdulo DCI est deshabilitado en la limpieza del bit de control DCIEN (DCICON1 <15>).
Cuando se desactiva el bit DCIEN, el mdulo termina la transferencia de tramas de datos
en curso. Se genera una interrupcin si la transmisin / recepcin tampones necesitan
ser escrito o ledo antes de que el final de la trama.
El bit de DCIEN debe ser limpiado al menos tres ciclos de CSCK antes de que el final de la
trama para el mdulo de estar deshabilitado en ese marco. Si la broca no se borra con el
tiempo, el mdulo est desactivado en el cuadro siguiente.
Una vez desactivado, el DCI no generar impulsos de sincronismo de trama adicionales,
ni va a responder a un impulso de sincronismo de trama entrante. Cuando el generador
de sincronizacin de trama ha alcanzado el intervalo de tiempo final en la trama de
datos, todas las mquinas de estado asociados con el ICD se restablecen a se libera de su
estado y control de los pines de E / S asociados con el mdulo de ralent. El software de
usuario puede sondear el SLOT <3:0> bits de estado (DCISTAT <11:8>) despus del poco
DCIEN (DCICON1 <15>) se borra para determinar cuando el mdulo est inactivo. El ICD
est inactivo cuando SLOT <3:0> = 0000 y DCIEN = 0.
Cuando el mdulo entra en un estado inactivo, todos los datos en los registros de
recepcin de sombra se transfiere a los registros RXBUFx, y los bits de estado RFUL y ROV
se ven afectados en consecuencia.

20.5.2 Funcionamiento Maestro vs Esclavo


El ICD se puede configurar para el funcionamiento maestro / esclavo. El dispositivo
maestro genera el marco sincronizar la seal para iniciar la transferencia de datos. El
modo de funcionamiento (maestro o esclavo) es seleccionado por el Bit de control
COFSD (DCICON1 <8>).

Cuando el mdulo DCI est funcionando como un dispositivo maestro (COFSD = 0), el
modo COFSM pedacitos (DCICON1 <01:0>) determinan el tipo de impulso de sincronismo
de trama que se genera por el sincronismo de trama lgica generadora. Se genera una
nueva seal de sincronizacin de trama cuando el generador de sincronismo de trama
reestablece y es la salida en el pin COFS.
Cuando el mdulo DCI est funcionando como un esclavo de sincronizacin de trama
(COFSD = 1), las transferencias de datos son controlado por el dispositivo conectado al
mdulo de DCI. Los bits COFSM <1:0> de control (DCICON1 <1:0>) controla cmo el
mdulo DCI responde a las seales FS entrantes.
En el modo multi-canal, una nueva transferencia de tramas de datos se inicia un ciclo de
reloj de serie despus de la COFS pin se muestrea alta. El pulso en el pin COFS restablece
la lgica generadora de sincronismo de trama. En el modo de I2S, una nueva palabra de
datos se transfiere un ciclo de reloj en serie despus de un bajo-a-alto o una transicin
de alto a bajo se toma en el pin COFS. Un flanco ascendente o descendente en que se
restablezca el pin COFS la lgica del generador de sincronismo de trama.
En el modo AC-Link, la ranura de la etiqueta y las ranuras de datos subsiguientes para la
siguiente trama se transfiere una ciclo de reloj en serie despus de que el pin COFS se
muestrea alta. El COFSG <3:0> (DCICON2 <8:5>) y WS <3:00> (DCICON2 <3:0>) bits deben
estar configurados para proporcionar la longitud de trama esperada cuando el mdulo
est funcionando en modo esclavo. Una vez que una trama vlida pulso de
sincronizacin es muestreada por el mdulo en el pasador COFS, una transferencia de
toda trama de datos se lleva a cabo. El mdulo no responder a ms impulsos de
sincronismo de trama hasta que la transferencia actual trama de datos tiene plenamente
completado.
20.5.3 Paquete de Datos para Soporte de Datos de Palabra Larga
Muchos cdecs tienen longitudes de palabra de datos en exceso de 16 bits. El mdulo
soporta nativamente DCI palabra longitudes de hasta 16 bits, pero las longitudes de
palabras ms largas se pueden apoyar al permitir mltiples de transmisin y recepcin
las franjas horarias y los datos de embalaje en mltiples de transmisin y recepcin de
almacn intermedio.
Por ejemplo, supongamos que un cdec particular, transmite o recibe palabras de datos
de 24-bits. Estos datos podran ser transmitida y recibida mediante el establecimiento de
BLEN <1:0> = 01 (dos palabras de datos por interrupcin) y el establecimiento de TSCON
= 0x0003 y RSCON = 0x0003. Esto permite la transmisin y recepcin durante las dos
primeras ranuras de tiempo de la trama de datos. Los 16 bits ms significativos de los
datos de transmisin se escriben en TXBUF0.

Los 8 bits menos significativos de los datos de transmisin se escriben de izquierda


justificado TXBUF1, como se muestra en la Figura 20-26.
El valor de los 8 bits menos significativos de TXBUF1 se puede escribir a '0'. Los datos de
24 bits recibidos del codec se cargan en RXBUF0 y RXBUF1 con el mismo formato que los
datos de transmisin. En este caso, se genera la seal de sincronizacin de trama en los
intervalos de 32-bits.
Cualquier combinacin de tamao de palabra y ranuras de tiempo permitido pueden ser
utilizado para transmitir y recibir palabras de datos en mltiples registros de transmisin
y recepcin. Por ejemplo, el ejemplo de la palabra de datos de 24 bits se muestra en la
Figura 20-26 se podra transmitir / recibir en tres registros consecutivos estableciendo
WS <3:00> = 0111 (tamao palabra = 8 bits), BLEN <1:00> = 10 (tampn tres palabras
entre interrupciones), y TSCON = RSCON = 0x0007 (transmitir o recibir durante los tres
primeros intervalos de tiempo de la trama de datos).
Cada transmisin y recepcin registro contendra 8 bits de la palabra de datos (ver Figura
20-27). Si COFSG <1:00> = 0010 (tres palabras por cuadro), la seal de sincronismo de
trama se genera en Intervalos de 24 bits.

20.5.4 Operacin Multi-canal


El modo multicanal (COFSM <1:0> = 00) se utiliza para los codecs que requieren un pulso
de sincronismo de trama que es impulsada alta para un periodo de reloj de serie para
iniciar una transferencia de datos. Uno ms palabras / datos pueden ser transferidos en
el marco de datos. El nmero de ciclos de reloj entre impulsos de sincronismo de tramas
sucesivas depende del dispositivo conectado al mdulo de ICD. La figura 20-28 ilustra el
diagrama de tiempos de la seal de sincronismo de trama en el modo multi-canal. Figura
20-2 es un ejemplo de temporizacin que indica una transferencia de datos de palabra
de 4 bits.

20.5.4.1 Detalles de Configuracin Multi-canal


Esta seccin proporciona los pasos necesarios para configurar el mdulo de DCI para un
codec usando el modo multicanal. Este modo de funcionamiento se puede usar para
cdecs con uno / ms canales de datos. La configuracin es similar, independientemente
del nmero de canales.
Para este ejemplo de configuracin, se asume un cdec hipottico. El cdec de canal
nico utilizado para este ejemplo de configuracin utiliza un 256 fs la frecuencia de reloj
en serie con una palabra de datos de 16-bit transmitido en la a partir de cada trama. Los
pasos necesarios para la instalacin y funcionamiento se describen a continuacin.
1.

Determinar la frecuencia de muestreo y el tamao de la palabra de datos que


requiere el codec. Una velocidad de muestreo de 8 kHz se asume para este
ejemplo.

2.

Determinar la frecuencia de reloj de transferencia de serie requerido por el codec.


La mayora de los cdecs requieren una seal de reloj de serie que es un mltiplo
de la frecuencia de muestreo. El ejemplo cdec requiere una frecuencia que es de
256 fs, o 1.024 MHz. Por lo tanto, un impulso de sincronizacin de trama debe ser
generado cada 256 ciclos de reloj de serie para iniciar una transferencia de datos.

3.

Configure la DCI para el reloj de la transferencia en serie.

Si la seal CSCK es generado por la DCI, desactive el bit de control CSCKD


(DCICON1 <10>), escriba un valor para DCICON3 que produce la frecuencia
de reloj correcta (consulte 20.4.3 "Bit Generador de reloj").

Si la seal CSCK es generado por el codec u otra fuente externa, establezca


el bit de control CSCKD y borrar el registro DCICON3.

4.

Borrar los bits COFSM <1:0> control (DCICON1 <1:0>) para ajustar la seal de
sincronizacin de trama al modo Multicanal.

5.

Si el DCI est generando la seal de sincronismo de trama (maestro), desactive el


bit de control COFSD (DCICON1 <8>). Si el DNI est recibiendo la seal de
sincronismo de trama (esclavo), establezca el bit de control COFSD.

6.

Borre el bit de control CSCKE (DCICON1 <9>) para probar los datos de entrada en el
flanco de bajada de CSCK. Esta es la configuracin tpica para la mayora de los
cdecs. Consulte la hoja de datos de codec para asegrese de que se utiliza el
borde de muestreo correcta.

7.

Escribe los bits de control WS (DCICON2 <3:0>) para el tamao de la palabra de


datos deseado. El ejemplo cdec requiere WS <3:0> = 1.111 para un tamao de
palabra de datos de 16 bits.

8.

Escribe los bits de control COFSG (DCICON2 <8:5>) para el nmero deseado de
palabras de datos por trama. El WS <3:0> y COFSG <3:0> bits de control
determinan la longitud de la trama de datos en ciclos CSCK (consulte 20.4.7
"Marco de sincronizacin del generador (FSG)"). COFSG <3:0> = 1111 se utiliza
para proporcionar la trama de datos de 256 bits requerida por el cdec de
ejemplo.

9.

Ajuste el modo de salida para el pasador CSDO usando el bit de control CSDOM
(DCICON1 <6>). Si solo un dispositivo est conectado a la DCI, CSDOM se puede
borrar. Esto obliga al pin CSDO a '0' durante los intervalos de tiempo de datos no
utilizados. Puede que tenga que establecer CSDOM si hay varios dispositivos
conectados al pin CSDO.

10.

Escriba los TSCON y RSCON registros para determinar qu segmentos de tiempo de


datos en el marco han de ser transmitida y recibida, respectivamente. Para este
cdec de un solo canal, utilizar TSCON = RSCON = 0x0001 para permitir la
transmisin y recepcin durante la primera ranura de tiempo de 16 bits de la
trama de datos.

11.

Establecer los bits de control BLEN (DCICON2 <11:10>) para amortiguar la cantidad
deseada de palabras de datos. Para el cdec de un solo canal, BLEN <1:0> = 00
proporciona una interrupcin en cada trama de datos. Un valor ms alto de BLEN
podra ser utilizado para este codec para amortiguar mltiples muestras entre
interrupciones.

12.

Si las interrupciones se van a utilizar, desactive el bit de estado DCIIF (IFS3 <9>) y
establecer el bit de control DCIIE (IEC3 <9>).

13.

Comienza la operacin como se describe en 20.5.1.1 "DCI Puesta en marcha y


datos Buffering".

20.5.4.2 Configuracin Multi-canal con DMA


La configuracin multicanal DCI del mdulo con DMA es similar a la configuracin
descrita en 20.5.4.1 "multicanal Configuracin Detalles" con las siguientes excepciones:

BLEN <1:0> debe ser '00'. Ajuste BLEN a cualquier otro valor resulta en un
comportamiento impredecible

Los canales DMA se deben configurar para leer / escribir en los registros
RXBUF0/TXBUF0. Para ms detalles sobre la configuracin del mdulo DMA,
consulte la "Seccin 22. Acceso directo a memoria (DMA)" (DS70348) del
"dsPIC33E/PIC24E Family Manual de referencia". Para utilizar el DMA:

Un canal DMA debe estar configurado para leer desde la memoria RAM y escribir
en el registro TXBUF0.

Un segundo canal DMA est configurado para leer desde RXBUF0 registro y escribir
en la memoria RAM.

Los canales DMA deben activar antes de habilitar el mdulo DCI. Esto asegura que
la primera ICD de interrupcin es procesada por el mdulo de DMA.
Figura 20-29 ilustra organizacin RAM para este ejemplo. Los datos de 16 bits a
transmitir se deben almacenar en lugares consecutivos en la memoria RAM, ya
que slo una ranura de tiempo est activada en el mdulo de DCI. Los datos
recibidos se almacenan en la ubicacin consecutiva en la memoria RAM.

20.5.5 Funcionamiento I2S


El modo de funcionamiento de I2S se utiliza para los codecs que requieren una seal de
sincronizacin de trama que tiene un ciclo de trabajo del 50%. El perodo de la seal de
sincronismo de trama de I2S en ciclos de reloj de serie se determina por el tamao de la
palabra del codec conectado al mdulo de DCI. Figura 20-30 ilustra el inicio de una
palabra nuevo lmite est marcado por un borde de transicin alto-bajo/bajo-alto en el
pasador COFS. Codecs I2S son generalmente estreo / dispositivos de dos canales, con
una palabra de datos transferidos durante la baja temporal de la seal de sincronizacin
de trama y la otra palabra de datos transmitidos durante la hora. Para obtener ms
informacin sobre el protocolo I2S y terminologa relacionada, consulte "I2S Bus
Specification", que est disponible en Philips Semiconductors.

El mdulo DCI est configurado para el modo I2S escribiendo un valor de 0x01 a la
COFSM <1:0> bits de control en el DCICON1 SFR. Cuando se opera en el modo de I2S, el
mdulo DCI genera seales de sincronizacin de trama con un ciclo de trabajo del 50%.
Cada borde de la seal de sincronizacin de trama marca el lmite de una nueva
transferencia de la palabra de datos. El mdulo DCI transmitir los datos del canal
derecho primero (seal COFS ser alto), seguido por los datos del canal izquierdo (seal
COFS ser baja). El software de usuario tambin debe seleccionar la longitud de la trama
y el tamao de la palabra de datos utilizando el COFSG <3:0> y WS <3:0> bits de control
en el registro DCICON2.
Nota: El mdulo DCI enva los datos del canal derecho primero, seguido por el carril
izquierdo.
20.5.5.1 Detalles de Configuracin para I2S
Esta seccin proporciona los pasos necesarios para configurar el DCI para un codec I2S.
Para este ejemplo, se supone un cdec I2S hipottica. El cdec I2S en este ejemplo de
configuracin utiliza un 64 fs serial frecuencia de reloj, con dos palabras de datos de 16
bits durante la trama de datos. Por lo tanto, la longitud de trama es de 64 ciclos CSCK,
con la seal de alta COFS para 32 ciclos y bajo para 32 ciclos. La primera palabra de datos
se transmite un ciclo CSCK despus de que el flanco ascendente de COFS, y la segunda
palabra de datos se transmite un ciclo CSCK despus de que el flanco de bajada de COFS.
1.

Determinar la frecuencia de muestreo que utiliza el codec para determinar la


frecuencia CSCK. Se supone en este ejemplo que fs es 48 kHz.

2.

Determinar la frecuencia de reloj de transferencia de serie requerido por el codec.


El ejemplo cdec requiere una frecuencia que es de 64 fs, o 3.072 MHz.

3.

El DNI debe estar configurado para el reloj de la transferencia en serie. Si la seal


CSCK es generado por la DCI, desactive el bit de control CSCKD (DCICON1 <10>),
escriba un valor para DCICON3 que produce la frecuencia de reloj correcta
(consulte 20.4.3 "Bit Generador de reloj"). Si la seal CSCK es generado por el
codec u otra fuente externa, establezca el bit de control CSCKD y borrar el registro
DCICON3.

4.

Establecer COFSM <1:00> = 01 para configurar la seal de sincronizacin de trama


en el modo I2S.

5.

Si el DCI est generando la seal de sincronismo de trama (maestro), desactive el


control COFSD bits (DCICON1 <8>). Si el DNI est recibiendo la seal de
sincronismo de trama (esclavo), ajuste el COFSD bit de control.

6.

Establecer el bit de control CSCKE (DCICON1 <9>) para muestrear datos de entrada
en el flanco ascendente de CSCK. Esta es la configuracin tpica para la mayora de
cdecs de I2S.

7.

Escribe los bits de control WS (DCICON2 <3:0>) para el tamao de la palabra de


datos deseado. Para el ejemplo cdec, utilizar WS <3:0> = 1111 para un tamao de
palabra de datos de 16 bits.

8.

Escribe los bits de control COFSG (DCICON2 <8:5) para el nmero deseado de
palabras de datos por trama. El WS <3:0> y COFSG <3:0> bits de control
determinan la longitud de la trama de datos en ciclos CSCK (consulte 20.4.7
"Marco de sincronizacin del generador (FSG)"). Para este ejemplo codec,
establezca COFSG <3:0> = 0001.

Nota: En el modo de I2S, los bits COFSG se fijan a la longitud de la mitad de la trama de
datos. Para este ejemplo codec, establezca COFSG <3:0> = 0001 (dos palabras de datos
por trama) para producir una trama de 32 bits. Esto produce una trama de datos I2S que
es de 64 bits de longitud.
9.

Ajuste el modo de salida para el pasador CSDO usando el bit de control CSDOM
(DCICON1 <6>). Si un nico dispositivo est conectado a la DCI, CSDOM se puede
borrar. Puede que tenga que establecer CSDOM si hay varios dispositivos
conectados al pin CSDO.

10.

Escriba los tscon y RSCON registros para determinar qu segmentos de tiempo de


datos en el marco han de ser transmitida y recibida, respectivamente. Para este
cdec, establezca TSCON = 0x0001 y RSCON = 0x0001 para permitir la transmisin
y recepcin durante la primera ranura de tiempo de 16 bits de la trama de datos
de 32 bits. Ranuras de tiempo adyacentes pueden estar habilitadas para
amortiguar palabras de datos de ms de 16 bits.

11.

Ajuste el BLEN <1:0> bits de control (DCICON2 <11:10>) para amortiguar la


cantidad deseada de los datos palabras. Para un codec I2S de dos canales, BLEN
<1:0> = 01 genera una interrupcin despus de la transferencia dos palabras de
datos.

12.

Si las interrupciones se van a utilizar, desactive el bit de estado DCIIF (IFS3 <9>) y
ajuste el control DCIIE bits (IEC3 <9>).

13.

Comienza la operacin como se describe en 20.5.1.1 "DCI Puesta en marcha y


datos Buffering". En la I2S Modo maestro, el pasador COFS es impulsado alta
despus de que el mdulo est activado y comienza la transmisin de los datos
cargados en TXBUF0.

20.5.5.2 Ejemplos de Configuracin I2S

Considere el caso en el que el mdulo DCI debe interactuar con un cdec de audio
estreo utilizando I2S autobs. La velocidad del reloj de bits requerida es de 1/32 FS y el
tamao de la palabra requerida es de 16 bits. El mdulo DCI es espera que genere la
sincronizacin de trama y la seal de reloj. Esta configuracin se puede lograr mediante
el establecimiento de COFSG = 0 (una palabra por trama de datos) y WS = 0xF (16 bits
por palabra). Los TSCON y RSCON registros estn establecidos en 0x1 para utilizar una
ranura de tiempo de transmisin (TSE0) y uno reciben ranura de tiempo (RSE0),
respectivamente. La Figura 20-31 ilustra los resultados de esta configuracin.

Consideremos un caso en el que el mdulo de ICD debe interactuar con un cdec estreo
de 24 bits usando el I2Sbus. La velocidad del reloj de bits requerida es 1/64 de fs. El
tamao de la palabra requerida es de 24 bits. El mdulo DCI es espera que genere la
sincronizacin de trama y la seal de reloj. Un mtodo para lograr esto es establecer
COFSG = 1 (dos palabras por trama) y WS <03:00> = 0xF (16 bits por palabra). El TSCON y
Registros RSCON se establecen tanto para 0x3. Esto permite transmitir ranuras TSE0 y
Tsei y recibir ranuras RSEO y RSEI. Durante la transmisin de datos de 24 bits, los datos
se organizan en dos palabras de 16 bits. Si BLEN = 01, a continuacin, dos bferes de
transmisin pueden utilizarse para transmitir datos. TXBUF1 transmitir bits de 7 a bit 0
de la palabra de datos de 24 bits. Esto se muestra en la figura 20-32.

Tenga en cuenta que al escribir los datos a TXBUF1, el byte de datos se debe dejar
desplazado de manera que los bits 7 a travs de bit 0 de la palabra de datos de 24 bits
ocupan el byte superior de TXBUF1. Esto es porque el mdulo de ICD se iniciar la
transmisin de los datos MSB primero. Figura 20-33 ilustra los resultados de esta
configuracin.

20.5.5.3 Configuracin de I2S con DMA


La configuracin I2S DCI con DMA es similar a la configuracin descrita en 20.5.5.1
"Detalles de configuracin I2S" con las siguientes excepciones:

BLEN <1:0> debe ser '00'. Ajuste BLEN a cualquier otro valor resulta en un
comportamiento impredecible

Los canales DMA se deben configurar para leer o escribir en los registros
RXBUF0/TXBUF0. Para ms detalles sobre la configuracin del mdulo DMA,
consulte la "Seccin 22. Acceso directo a memoria (DMA)" (DS70348) del
"dsPIC33E/PIC24E Family Manual de referencia". Para utilizar el DMA:

Un canal DMA debe estar configurado para leer desde la memoria RAM y escribir
en el registro TXBUF0

Un segundo canal DMA est configurado para leer desde RXBUF0 registro y escribir
en la memoria RAM

Los canales DMA deben activar antes de habilitar el mdulo DCI. Esto asegura que
la primera ICD de interrupcin es procesada por el mdulo de DMA.

La figura 20-34 ilustra organizacin RAM para esta configuracin. Los datos de
transmisin se organiza como la primera palabra de datos (que se transmite en el flanco
descendente de la seal de COFS) seguido de la palabra de datos de segundo (que se
transmite en el flanco ascendente de la seal de COFS).

20.5.5.4 CMO DETERMINAR LA ALINEACIN DEL CANAL I2S


La mayora de los codecs I2S admiten dos canales de datos, y el nivel de la seal de
sincronizacin de trama indica el canal transferido durante la mitad de la trama de datos.
El pasador COFS se puede consultar en el software utilizando su registro puerto asociado
para determinar el nivel actual en el pasador en el DCI ISR. Esto indica que los datos
estn en la Reciba registren y que los datos deben ser escritos en el registro de
transmisin para la transferencia en el siguiente fotograma.
20.5.5.5 JUSTIFICACIN DE DATOS I2S
Segn la especificacin I2S, una transferencia de la palabra de datos de forma
predeterminada se inicia un ciclo de reloj de serie tras una transicin de la seal de
sincronizacin de trama. Una opcin "MSB justificado a la izquierda" se puede
seleccionar mediante el bit de control DJST (DCICON1 <5>).
Si DJST = 1, las transferencias de datos I2S son MSB justificado a la izquierda. El MSB de
la palabra de datos se presenta en el pin CSDO durante el mismo ciclo de reloj de serie
que el flanco de subida o de bajada de la seal FS. Despus de la palabra de datos ha sido
transmitida, el estado del pin CSDO est dictado por la CSDOM que (DCICON1 <6>).

20.5.6 Funcionamiento AC-Link


En esta seccin se describe cmo utilizar el mdulo de DCI en los modos AC-Link. Los
modos de AC-Link se comunican con dispositivos de cdec compatibles con AC-'97.
20.5.6.1 TRAMA DE DATOS AC-LINK
La trama de datos AC-Link es de 256 bits subdivididos en una ranura de control de 16
bits, seguido de doce ranuras de datos de 20 bits. La figura 20-36 ilustra el cdec AC-97
proporciona normalmente a la transferencia en serie seal de reloj, que se deriva de un
oscilador de cristal.
El controlador recibe el reloj de serie y genera la seal de sincronismo de trama. La
velocidad de fotogramas de datos predeterminados es 48 kHz. La seal de sincronizacin
de trama utilizada para sistemas AC-Link es alta durante 16 perodos CSCK al comienzo
de la trama de datos y baja de 240 perodos CSCK.
Figura 20-37 ilustra el control y ranuras de tiempo de datos en la CA-Link han definido
usos en el protocolo. La figura 20-38 ilustra la transferencia de datos comienza un
perodo CSCK despus del flanco ascendente de la seal de sincronismo de trama. Los
datos se muestrea por el dispositivo receptor en el flanco descendente de CSCK.

El mdulo de ICD consta de dos modos de funcionamiento para el protocolo AC-Link para
dar cabida a los intervalos de tiempo de datos de 20-bits. Estos modos de operacin se
seleccionan utilizando el control COFSM <1:00> los bits (DCICON1 <1:00>).
Para seleccionar el primer modo AC-Link, llamado modo AC-Link 16 bits, establezca
COFSM <1:00> = 10
Para seleccionar el segundo modo AC-Link, llamado modo AC-Link 20 bits, establezca
COFSM <1:00> = 11
20.5.6.2 MODO AC-LINK 16-BIT
En el modo de AC-Link 16 bits, transmitir y recibir longitudes de palabra de datos se
restringen a 16 bits para adaptarse a la DCI de transmisin y recepcin registros. Esta
restriccin slo afecta a los intervalos de tiempo de datos de 20 bits del protocolo AC-

Link. Para intervalos de tiempo recibidos, los datos de entrada se trunca a 16 bits. Para
intervalos de tiempo salientes, el mdulo establece los 4 bits menos significativos de la
palabra de datos a '0'. Este modo de funcionamiento simplifica la trama de datos AC-Link
mediante el tratamiento de cada ranura de tiempo como un intervalo de tiempo de 16
bits. El generador de sincronismo de trama mantiene la alineacin de los lmites de la
ranura de tiempo.
20.5.6.3 MODO AC-LINK 20-BIT
El modo AC-Link 20-bit permite que todos los bits en los intervalos de tiempo que los
datos se transmiten y se reciben, pero no mantiene la alineacin de datos a los lmites de
la ranura de tiempo especficos definidos en el protocolo AC-Link.
Las funciones de 20-bit de modo AC-Link de manera similar al modo de varios canales del
mdulo de ICD, excepto para el ciclo de trabajo de la seal de sincronizacin de trama
que se produce. La seal de sincronizacin de trama AC-Link debera permanecer alta
durante 16 ciclos de reloj y debe ser baja para los 240 ciclos siguientes. El modo de 20
bits trata cada bit de trama 256-AC-Link como diecisis intervalos de tiempo de 16 bits.
En el modo AC-Link 20-bit, opera el mdulo como si COFSG <3:0> = 1111 y WS <3:0> =
1111. Los datos alineacin de ranuras de datos de 20 bits no se mantiene en este modo
de funcionamiento. Por ejemplo, una de 256 bits de trama de datos AC-Link entero
puede ser transmitida y recibida en forma empaquetada estableciendo todos los bits en
los tscon y RSCON registros. Dado que la longitud total del buffer disponible es de 64
bits, se necesitan cuatro interrupciones consecutivas para transferir el marco AC-Link. El
software de aplicacin debe llevar un registro de segmento actual marco AC-Link
mediante el control de la ranura para los bits de estado <3:00> (DCISTAT <11:08>).
20.5.6.4 DETALLES DE INSTALACIN AC-LINK
Para activar el modo AC-Link, escriba 0x10 o 0x11 para la COFSM <1:00> bits de control
en el DCICON1 SFR. Los bits de seleccin de tamao de palabra (WS <03:00>) y los bits
del generador de sincronizacin de trama (COFSG <03:00>) no tienen ningn efecto para
los modos AC-Link de 16 bits y 20 bits desde los tamaos de marco y de palabras son
establecido por el protocolo. La mayora de los codecs '97 AC generan la seal de reloj
que controla la transferencia de datos. Por lo tanto, el bit de control CSCKD se establece
en el software. El bit de control COFSD se borra porque la DCI genera la seal FS de la
seal de reloj entrante. El bit CSCKE se borra para que los datos se tomen en el flanco de
subida. El usuario debe decidir qu intervalos de tiempo en la trama de datos AC-Link
debe ser respaldado y establece los bits de control de las EET y la RSE en el software
correspondiente. Como mnimo, es necesario amortiguar la transmisin y recepcin
ranuras TAG. Por lo tanto, establecer las TSCON <0> y RSCON <1> bits de control de
software.

Nota: Slo el TSCON <12:00> bits de control y la SCON <12:00> bits de control tienen un
efecto en el modo AC-Link de 16 bits, ya que un marco AC-Link tiene 13 ranuras de
tiempo.
Para configurar el mdulo para el modo AC-Link:
1. Configure la DCI para aceptar el reloj de transferencia de serie del codec AC '97.
Establezca el bit de control CSCKD y borrar el registro DCICON3.
2. Ajuste los bits COFSM <1:00> control (DCICON1 <01:00>) para '10 'o '11' para
establecer el modo de sincronizacin del marco AC-Link deseado.
3. Borre el bit de control COFSD (DCICON1 <8>), por lo que el DCI enva la seal de
sincronizacin de trama.
4. Borre el bit de control CSCKE (DCICON1 <9>) para probar los datos de entrada en el
flanco de bajada de CSCK.

5. Borre el bit de control CSDOM (DCICON1 <6>).


6. Escriba los tscon y RSCON registros para determinar qu segmentos de tiempo de
datos en el marco han de ser transmitida y recibida, respectivamente. Esto depende de
lo que se utiliza ranuras de tiempo de datos en el protocolo AC-Link. Como mnimo, se
requiere una comunicacin en la ranura 0 (Slot Tag). Para obtener informacin adicional,
consulte la discusin en 20.5.6.2 "16 bits AC-Link Mode", 20.5.6.3 "AC-Link modo de 20
bits".
7. Establecer los bits BLEN <1:00> control (DCICON2 <11:10>) para amortiguar la
cantidad deseada de palabras de datos. Para el cdec de canal nico, estableciendo BLEN
= 00 proporciona una interrupcin en cada trama de datos. Un valor ms alto de BLEN
<1:00> bits de podra ser utilizado para este codec para amortiguar mltiples muestras
entre interrupciones.
8. Si las interrupciones se van a utilizar, desactive la DCIIF bit de estado IFS3 <9>) y
establecer el bit de control DCIIE (IEC3 <9>).
9. Comienza la operacin como se describe en 20.5.1.1 "DCI Puesta en marcha y datos
Buffering".
20.6 DCI CONFIGURACIN CDIGO EJEMPLO
En esta seccin se describe la configuracin del mdulo DCI para el funcionamiento en
modo esclavo con un cdec de 16 bits. Figura 20-39 ilustra el diagrama de tiempos para
el cdec. Los registros de control de la cdec se pueden acceder mediante la

introduccin de una palabra de control, 16 ciclos de reloj despus de que se reciba la


palabra de datos. El cdec tambin emite una palabra de estado, 16 ciclos de reloj
despus de la palabra de datos es transmitida. El codec est configurado para ser un
maestro e impulsar los pins COFS y CSCK del mdulo DCI.

Dado que los transmite codec y recibe el mismo nmero de intervalos de tiempo en una
trama (TSCON = RSCON), la solicitud asignado por el usuario puede escribir en sucesivas
TXBUFx registra para transmitir datos y leer los registros RXBUFx sucesivas. Ejemplo 20-1
muestra el ejemplo de cdigo para configurar el mdulo de DCI para interactuar con este
cdec. En el ejemplo de cdigo configura el mdulo DCI para interrumpir, a intervalos de
dos palabras (BLEN <1:00> = 11). La solicitud debe escribir en dos buffers o leer dos
memorias intermedias por interrupcin en este esquema. Alternativamente, la solicitud
asignado por el usuario podra configurar el mdulo para interrumpir a intervalos de una
sola palabra (BLEN <1:00> = 00).
Esto resulta en dos interrupciones por trama y requiere la aplicacin asignado por el
usuario para procesar un solo tampn por interrupcin.
Ejemplo 20-1: DCI Configuracin de cdigo de ejemplo
#include p33Exxxx.h
/* Device configuration registers */
_FGS(GWRP_OFF & GCP_OFF);
_FOSCSEL(FNOSC_PRIPLL);
_FOSC(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_XT);
_FWDT(FWDTEN_OFF);
int main(void)
{
RSCONbits.RSE2=1; /* Enable Receive Time Slot 2 */

RSCONbits.RSE0=1; /* Enable Receive Time Slot 0 */


TSCONbits.TSE2=1; /* Enable Transmit Time Slot 2 */
TSCONbits.TSE0=1; /* Enable Transmit Time Slot 0 */
DCICON1bits.COFSM = 0; /* Multichannel Frame Sync mode */
DCICON1bits.DJST = 0; /* Data TX/RX is begun one serial clock cycle after frame sync
pulse */
DCICON1bits.CSCKE = 0; /* Data changes on rising edge sampled on falling edge of CSCK
*/
DCICON1bits.COFSD = 1; /* Frame sync driven by codec*/
DCICON1bits.CSCKD = 1; /* Clock is input to DCI from codec */
DCICON2bits.BLEN = 1; /* Two data words will be buffered between interrupts */
DCICON2bits.COFSG = 2; /* Data frame has 3 words */
DCICON2bits.WS = 15; /* Data word size is 16 bits*/
DCICON3 = 0; /* BCG value is zero since clock is driven by codec */
IPC15bits.DCIIP=6; /* Enable the interrupts */
IFS3bits.DCIIF=0;
IEC3bits.DCIIE=0;
TXBUF0= 0x0001; /* This is the data word */
TXBUF1= 0x0002; /* This is the control word */
DCICON1bits.DCIEN = 1;/* Enable the module*/
while(1);
}
void __attribute__((__interrupt__, no_auto_psv)) _DCIInterrupt(void)
{
int dataWord;
int statusWord;

IFS3bits.DCIIF = 0;
TXBUF0 = 0x0001; /* Write some data*/
TXBUF1 = 0x0002; /* This is the control word*/
dataWord = RXBUF0; /* Read the data word*/
statusWord = RXBUF1; /* Read the status word*/
}

20.7 TRANSFERENCIA DE DATOS A DCI MDULO BUFFERS USO DMA


El mdulo de acceso directo a memoria (DMA) en los dispositivos sPIC33E/PIC24E se
puede utilizar para transferir datos desde la memoria RAM a los bferes de mdulo DCI
sin intervencin aplicacin asignado por el usuario. Se necesitaran al menos dos canales
DMA para este propsito. Un canal DMA lee datos de los registros de recibir mientras el
otro canal escribe datos en los registros de transmisin. Ambos canales DMA tienen la
Transferencia DCI Hecho interrupcin.
Dado que los registros DCI RXBUFx y TXBUFx son registros de 16 bits, los canales DMA
deben crearse para la transferencia de textos. Para escribir valores de byte al mdulo
DCI, software usuario debe primero a la izquierda-la incorporacin de aquellos byte
superior de la palabra.
El ejemplo 20-2 muestra el cdigo que configura el DMA para el modo de memoria
intermedia de ping-pong continua. La figura 20-40 ilustra el diagrama de tiempos de la
comunicacin codec DCI.
En el modo de memoria intermedia de ping-pong, el mdulo DMA alterna las posiciones
de memoria donde se almacenan las tramas de datos. Este mecanismo facilita el
procesamiento en una trama de datos, mientras que una trama de datos procesados se
transmite y se recibe una nueva trama de datos. El mdulo DCI pide al mdulo de DMA
para una transferencia en cada interrupcin de transferencia completa. Para ms
detalles sobre el mdulo de DMA, consulte la Seccin 22. "Acceso directo a memoria
(DMA)" (DS70348) en el "Manual dsPIC33E/PIC24E familia de referencia".

Example 20-2: Data Transfer to DCI Module Buffers Using DMA Code Example
#include p33Exxxx.h
/* Device configuration registers */
_FOSCSEL(FNOSC_PRIPLL);
_FOSC(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMD_XT);
_FWDT(FWDTEN_OFF);
#define FCY 60000000
#define CODEC_SAMPLE_RATE 8000
#define DCI_BCG_VALUE ( ( (FCY/32) / CODEC_SAMPLE_RATE ) - 1 )
#define FRAME 80
/* Note that the DMA module on the dsPIC33E/PIC24E devices can transfer data
between any RAM
location and peripheral register. RAM location need not specifically be in DPSRAM. The
address()
attribute can be used to place the array specifically in DPSRAM. */
__eds__int txBufferA[FRAME]__attribute__((space(eds)));
__eds__int txBufferB[FRAME] __attribute__((space(eds)));
__eds__int rxBufferA[FRAME] __attribute__((space(eds)));
__eds__int rxBufferB[FRAME] __attribute__((space(eds)));
volatile int rxBufferIndicator = 0;

unsigned long address;


void DCIInit(void);
void processRxData(int * sourceBuffer, int * targetBuffer);
void DMAInit(void);
int main (void)
{
CLKDIV = 0; /* Set up for 40 MIPS*/
PLLFBD = 30;
while (!OSCCONbits.LOCK);
DMAInit();
DCIInit();
while(1);
}
void DCIInit(void)
{
TSCON = 0x0001; /* Only one transmit time slot*/
RSCON = 0x0001; /* Only one receive time slot*/
DCICON1 = 0;
DCICON1bits.DCIEN = 1; /* Module is enabled*/
DCICON1bits.DCISIDL = 0; /* Continue operation in idle*/
DCICON1bits.DLOOP = 0; /* Loopback mode is disabled*/
DCICON1bits.CSCKD = 0; /* DCI is master - CSCK is output*/
DCICON1bits.CSCKE = 0; /* Data is sampled on falling edge*/
DCICON1bits.COFSD = 0; /* DCI is master - COFS is output*/
DCICON1bits.UNFM = 0; /* Transmit zeroes on TX underflow*/
DCICON1bits.CSDOM = 0; /* Transmit 0 on disabled time slots*/

DCICON1bits.DJST = 1; /* COFS and CSDO start together*/


DCICON1bits.COFSM = 0; /* DCI mode is multi-channel FS mode*/
DCICON2 = 0;
DCICON2bits.BLEN = 0; /* Interrupt on one buffer*/
DCICON2bits.COFSG = 0; /* Data frame has one word*/
DCICON2bits.WS = 0xF; /* Word size is 16 bits*/
DCICON3 = DCI_BCG_VALUE;
_DCIIE = 0; /* Disabled since DMA is used*/
}
void DMAInit(void)
{
/* DMA 0 - DPSRAM to DCI*/
DMA0CONbits.SIZE = 0; /* Word transfers*/
DMA0CONbits.DIR = 1; /* From RAM to DCI*/
DMA0CONbits.AMODE = 0; /* Register Indirect with post-increment mode*/
DMA0CONbits.MODE = 2; /* Continuous ping pong mode enabled*/
DMA0CONbits.HALF = 0; /* Interrupt when all the data has been moved*/
DMA0CONbits.NULLW = 0;
DMA0REQbits.FORCE = 0; /* Automatic transfer*/
DMA0REQbits.IRQSEL = 0x3C;/* Codec transfer done*/
address =__builtin_edsoffset(txBufferA) & 0x7FFF;
address +=__builtin_edspage(txBufferA) << 15;
DMA0STAL = address & 0xFFFF;
DMA0STAH = address >>16;
address =__builtin_edsoffset(txBufferB) & 0x7FFF;
address +=__builtin_edspage(txBufferB) << 15;

DMA0STBL = address & 0xFFFF;


DMA0STBH = address >>16;
DMA0PAD = (int)&TXBUF0;
DMA0CNT = FRAME-1;
/* DMA 2 - DCI to DPSRAM*/
DMA2CONbits.SIZE = 0; /* Word transfers*/
DMA2CONbits.DIR = 0; /* From DCI to DPSRAM */
DMA2CONbits.HALF = 0; /* Interrupt when all the data has been moved*/
DMA2CONbits.NULLW = 0; /* No NULL writes - Normal Operation*/
DMA2CONbits.AMODE = 0; /* Register Indirect with post-increment mode*/
DMA2CONbits.MODE = 2; /* Continuous mode ping pong mode enabled*/
DMA2REQbits.FORCE = 0; /* Automatic transfer*/
DMA2REQbits.IRQSEL = 0x3C;/* Codec transfer done*/
address =__builtin_edsoffset(rxBufferA) & 0x7FFF;
address +=__builtin_edspage(rxBufferA) << 15;
DMA2STAL = address & 0xFFFF;
DMA2STAH = address >>16;
address =__builtin_edsoffset(rxBufferB) & 0x7FFF;
address +=__builtin_edspage(rxBufferB) << 15;
DMA2STBL = address & 0xFFFF;
DMA2STBH = address >>16;
DMA2PAD = (int)&RXBUF0;
DMA2CNT = FRAME-1;
_DMA2IP = 5;
_DMA2IE = 1;
DMA0CONbits.CHEN = 1; /* Enable the channel*/

DMA2CONbits.CHEN = 1;
}
void processRxData(int * sourceBuffer, int * targetBuffer)
{
/* This procedure loops back the received data to the*/
/* the codec output. The user application could process*/
/* this data as per application requirements.*/
int index;
for(index = 0;index < FRAME;index ++)
{
targetBuffer[index] = sourceBuffer[index];
}
}
void __attribute__((__interrupt__,no_auto_psv)) _DMA2Interrupt(void)
{
_DMA2IF = 0; /* Received one frame of data*/
if(rxBufferIndicator == 0)
{
processRxData(int *)rxBufferA, (int*)txBufferA);
}
else
{
processRxData(int *)rxBufferB, (int*)txBufferB);
}
rxBufferIndicator ^= 1; /* Toggle the indicator*/
}

20.8 FUNCIONAMIENTO EN MODO AHORRO DE ENERGA


20.8.1 CPU Modo inactivo
El mdulo DCI puede opcionalmente seguir funcionando mientras la CPU est en modo
inactivo. El bit de control DCISIDL (DCICON1 <13>) determina si el mdulo DCI funciona
cuando la CPU est en modo inactivo.
Si el bit de control DCISIDL se borra (por defecto), el mdulo sigue funcionando con
normalidad en el modo inactivo.
Si el bit DCISIDL est establecido, el mdulo se detiene cuando la CPU pasa al modo de
espera.
20.8.2 Modo de reposo
El mdulo DCI no funcionar mientras el dispositivo est en modo de reposo si la seal
CSCK se deriva del reloj de instrucciones del dispositivo, TCY. Sin embargo, el mdulo DCI
puede operar en el modo de sueo y despertar a la CPU cuando la seal CSCK es
suministrada por un dispositivo externo (CSCKD = 1). La DCI interrumpir bit de
habilitacin, DCIIE (IEC3 <9>), debe ser configurado para permitir un evento para
despertar del modo de suspensin. Cuando la bandera de interrupcin DCI, DCIIF (IFS3
<9>), se establece, el dispositivo se activa desde el modo Sleep. Si el nivel de prioridad de
interrupcin DCI es mayor que la actual prioridad de la CPU, la ejecucin del programa se
reanuda desde el DCI ISR.
De lo contrario, la ejecucin contina con la instruccin siguiente a la instruccin
PWRSAV que anteriormente entr en modo de suspensin.
20.8.3 Modo Doze
El mdulo de ICD no se ve afectada por el modo Doze. Sin embargo, el procesador puede
no tener suficiente tiempo para responder a una interrupcin de la DCI en el modo Doze.

20.9

Mapa de registros

Tabla 20-2 lista los registros asociados con el mdulo de DCI.