Beruflich Dokumente
Kultur Dokumente
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:
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:
Registro 20-1:
Leyenda:
R = bit legible
-n = Valor en POR
bit 15
bit 14
W = bit escribible
'1'= Bit se ajusta
bit 13
bit 12
bit 11
bit 10
bit 9
bit 8
bit 7
bit 6
bit 5
bits 4-2
bits 1-0
Registro 20-2:
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
Registro 20-3:
Leyenda:
R = bit legible
-n = Valor en POR
bits 15-12
bits 11-10
Leyenda:
R = bit legible
-n = Valor en POR
bits 7-4
bit 3
bit 2
Registro 20-4:
bits 15-12
bits 11-8
W = bit escribible
'1'= Bit se ajusta
W = bit escribible
'1'= Bit se ajusta
bit 1
bit 0
Registro 20-5:
Leyenda:
R = bit legible
-n = Valor en POR
bit 15
Registro 20-6:
Leyenda:
R = bit legible
-n = Valor en POR
bit 15
W = bit escribible
'1'= Bit se ajusta
W = bit escribible
'1'= Bit se ajusta
Figura 20-2:
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:
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.
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
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.
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:
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.
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 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
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.
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.
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
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.
bloques, donde se procesan las mltiples muestras de datos a la vez. Para obtener
ms informacin, consulte la figura 20-21.
3.
4.
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.
5.
TMPTY bit de estado (DCISTAT <0>) se establece para indicar que los registros
Transmitir estn listos para ms datos a escribir.
6.
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.
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.
5.
6.
7.
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.
2.
3.
4.
Borrar los bits COFSM <1:0> control (DCICON1 <1:0>) para ajustar la seal de
sincronizacin de trama al modo Multicanal.
5.
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.
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.
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.
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.
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.
2.
3.
4.
5.
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.
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.
11.
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.
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.
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).
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.
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 */
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*/
}
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;
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.9
Mapa de registros