4.1          Registros de control y configuración.

 

Cada periférico puerto serie posee ocho registros de 32 bits, ubicados en una zona determinada del mapa de memoria del DSP, que pueden ser accedidos por software en lectura o escritura. En la figura 4.10 se muestra la posición, en el mapa de memoria, de estos registros que son:

 

·        Registro de control global del periférico. Ubicado en la posición 808040H (Puerto Serie0) y en la posición 808050H (Puerto Serie1). Determina el modo de operación del periférico y monitoriza el estado del mismo. En la figura 4.11 se muestra el registro de control global del periférico y en la tabla 4-2 se muestran las funciones de cada bandera de dicho registro.

·        Registro de control de FSX, DX y CLKX. Ubicado en la posición 808042H (Puerto Serie0) y en la posición 808052H (Puerto Serie1). Controla las funciones de las líneas de entrada/salida asociadas a la parte de transmisión del puerto serie. En la figura 4.12 se muestra el registro de control de las líneas FSX, DX y CLKX y en la tabla 4-3 se muestran las funciones de cada bandera o bit de dicho registro.

·        Registro de control de FSR, DR y CLKR. Ubicado en la posición 808043H (Puerto Serie0) y en la posición 808053H (Puerto Serie1). Controla las funciones de las líneas de entrada/salida asociadas a la parte de recepción del puerto serie. En la figura 4.13 se muestra el registro de control de las líneas FSR, DR y CLKR y en la tabla 4-4 se muestran las funciones, de cada bandera o bit, de dicho registro.

·        Registro de control de los dos temporizadores de 16 bits. Ubicado en la posición 808044H (Puerto Serie0) y en la posición 808054H (Puerto Serie1). Es un registro de 32 bits en el que los 12 bits menos significativos se corresponden con el registro de control del temporizador asociado a la parte de transmisión del puerto serie y los 12 bits que le siguen constituyen el registro de control del temporizador asociado a la parte de recepción del puerto serie. En la figura 4.14 se muestra el registro de control de los temporizadores del periférico y en la tabla 4-5 se muestran las funciones de cada bit de dicho registro.

·        Registro contador de los temporizadores de 16 bits. Ubicado en la posición 808045H (Puerto Serie0) y en la posición 808055H (Puerto Serie1). Es un registro de 32 bits constituido por los 16 bits del registro de cuenta del temporizador asociado a la parte de recepción del puerto serie (16 MSBs) y los 16 bits del registro de cuenta del temporizador asociado a la parte de transmisión del puerto serie (16 LSBs).

·        Registro periodo de los temporizadores de 16 bits. Ubicado en la posición 808046H (Puerto Serie0) y en la posición 808056H (Puerto Serie1). Determina el valor de fin de cuenta del registro contador asociado a la recepción (16 MSBs) y a la transmisión (16 LSBs) del puerto serie.

·        Registro de datos en transmisión, DXR. Ubicado en la posición 808048H (Puerto Serie0) y en la posición 808058H (Puerto Serie1). Registro de 32 bits. El usuario escribe en este registro los datos que desea que transmita el periférico puerto serie. El puerto serie dispone de un doble buffer en transmisión: El contenido del registro DXR se vuelca, al iniciar la transmisión del dato por la línea serie, sobre otro registro que se denomina XSR -registro de desplazamiento en transmisión-. El registro XSR es el que se encarga de generar la salida de los bits del dato por la línea DX.

·        Registro de datos en recepción, DRR. Ubicado en la posición 80804CH (Puerto Serie0) y en la posición 80805CH (Puerto Serie1). Registro de 32 bits. El usuario lee en este registro los datos que ha recibido el periférico. El puerto serie dispone de un doble buffer en recepción: Dispone de un registro de desplazamiento en recepción, denominado RSR, que se encarga de capturar los bits del dato que le llega al periférico por la línea DR. Posteriormente, el contenido de RSR se vuelca sobre el registro DRR que es el registro desde el cual el usuario recoge, por software, el dato recibido.

Figura 4.10. Registros del periférico Puerto Serie del DSP.

 

Figura 4.11. Registro Global de configuración y control de los periféricos puertos serie internos del DSP.

 

Bit

Nombre

Valor de Reset

Función que realiza

0

RRDY

0

Si RRDY=1, el buffer de recepción (registro DRR) dispone de datos nuevos listos para ser leídos. El flanco de subida de esta señal, activa RINT. Luego de leer el registro DRR, RRDY se pone a 0. Existe un retraso de 3 ciclos de H1 desde que se llena el registro DRR, hasta que se activa RRDY.

Si RRDY=0, el buffer de recepción (registro DRR) no dispone de datos nuevos listos para ser leídos, luego de la última lectura que se hizo.

1

XRDY

1

Si XRDY=1, el buffer de transmisión (registro DXR) ha puesto el último bit del dato que tenía en el registro de desplazamiento para la transmisión (XSR) y está preparado para recoger un nuevo dato para transmitir. Existe un retraso de 3 ciclos de H1 desde que se envía el último bit desde DXR hacia XSR, hasta que se activa XRDY. El flanco de subida de esta señal, activa XINT.

Si XRDY=0, el buffer de transmisión (registro DXR) no ha puesto el último bit del dato que tenía en el registro de desplazamiento para la transmisión (XSR) y por tanto, no está preparado para recoger un nuevo dato para transmitir

2

FSXOUT

0

FSXOUT=1, configura FSX como pin de salida.

FSXOUT=0, configura FSX como pin de entrada.

3

XSREMPTY

0

Si XSREMPTY=0, indica que el registro de desplazamiento para transmisión, XSR, está vacío. Si XSREMPTY=1, XSR no está vacío.


 

4

RSRFULL

0

Si RSRFULL=1, problemas en recepción (OVERRUN): Tasa de recepción muy alta.

En modo recepción continua, RSRFULL=1 cuando los registros DRR y RSR están llenos. En modo recepción no continua, RSRFULL=1 cuando los registros DRR y RSR están llenos y llega un nuevo FSR (comienza a recibirse un nuevo dato).

Una lectura de este bit, un reset del DSP o un reset de la parte de recepción del periférico, lo ponen a 0.

Si RSRFULL=0, no hay problemas en recepción (OVERRUN).

5

HS

0

HS=1 habilita el modo acuse de recibo.

HS=0, inhabilita el modo acuse de recibo.

6

XCLKSRCE

0

XCLKSRCE=1 habilita el reloj interno como fuente de reloj en transmisión.

XCLKSRCE=0 habilita el reloj externo como fuente de reloj en transmisión.

7

RCLKSRCE

0

RCLKSRCE=1 habilita el reloj interno como fuente de reloj en recepción.

RCLKSRCE=0 habilita el reloj externo como fuente de reloj en recepción.

8

XVAREN

0

Especifica el tiempo de activación de los bits en transmisión, FIJO (XVAREN=0) o VARIABLE (XVAREN=1). Véase modos de transferencia. En modo fijo, FSX permanece activo al menos un ciclo de XCLK para volver a estar inactivo, antes de comenzar una transferencia de datos. En modo variable, FSX permanece activo cuando se están transmitiendo datos (en modo variable, si FSX es externo, los datos empiezan a transmitirse cuando FSX está activo y siguen transmitiéndose hasta completar la transferencia, independientemente del valor de FSX)

9

RVAREN

0

Especifica el tiempo de activación de los bits en recepción, FIJO (RVAREN=0) o VARIABLE (RVAREN=1). Véase modos de transferencia. En modo fijo, FSR permanece activo al menos un ciclo de RCLK para volver a estar inactivo, antes de comenzar una transferencia de datos. En modo variable, FSR permanece activo cuando se están recibiendo datos.

10

XFSM

0

Modo de transmisión síncrona de un conjunto de datos. Configura el modo de operación en transferencia de múltiples datos:

XFSM=1. Modo continuo. El primer dato transmitido genera FSX, los demás, no.

XFSM=0. Modo estándar. Cada dato transmitido genera FSX.

11

RFSM

0

Modo de recepción síncrona de un conjunto de datos. Configura el modo de operación en transferencia de múltiples datos:

RFSM=1. Modo continuo. En la recepción del primer dato se debe generar FSR, en la de los demás, no hace falta para que sean recibidos.

RFSM=0. Modo estándar. En la recepción de cada dato hay que generar FSR.

12

CLKXP

0

Indica la polaridad de CLKX. Si CLKXP=0, CLKX es activo a nivel alto. Si CLKXP=1, CLKX es activo a nivel bajo.

13

CLKRP

0

Indica la polaridad de CLKR. Si CLKRP=0, CLKR es activo a nivel alto. Si CLKRP=1, CLKR es activo a nivel bajo.

14

DXP

0

Indica la polaridad de DX. Si DXP=0, DX es activo a nivel alto. Si DXP=1, DX es activo a nivel bajo.

15

DRP

0

Indica la polaridad de DR. Si DRP=0, DR es activo a nivel alto. Si DRP=1, DR es activo a nivel bajo.

16

FSXP

0

Indica la polaridad de FSX. Si FSXP=0, FSX es activo a nivel alto. Si FSXP=1, FSX es activo a nivel bajo.

17

FSRP

0

Indica la polaridad de FSR. Si FSRP=0, FSR es activo a nivel alto. Si FSRP=1, FSR es activo a nivel bajo.

18-19

XLEN

00

Estos dos bits indican el ancho del dato a transmitir: 00 (8 bits), 01 (16 bits), 10 (24 bits) y 11 (32 bits). Todos los datos se encuentran en transmisión, justificados a derechas en el registro XSR.

20-21

RLEN

00

Estos dos bits indican el ancho del dato a recibir: 00 (8 bits), 01 (16 bits), 10 (24 bits) y 11 (32 bits). Todos los datos se encuentran en recepción, justificados a derechas en el registro RSR.

22

XTINT

0

Habilitación de la interrupción del Temporizador asociado a la parte de transmisión del puerto serie. Si XTINT=1, se habilita la interrupción de fin de cuenta de dicho temporizador.

23

XINT

0

Habilitación de la interrupción de transmisión del puerto serie. Si XINT=1, se habilita la interrupción por dato transmitido por el puerto serie. La interrupción XINT generada por el periférico a la CPU, es la OR-lógica entre las dos posibles fuentes asociadas a la parte de transmisión del puerto serie.


 

24

RTINT

0

Habilitación de la interrupción del Temporizador asociado a la parte de recepción del puerto serie. Si RTINT=1, se habilita la interrupción de fin de cuenta de dicho temporizador.

25

RINT

0

Habilitación de la interrupción de recepción del puerto serie. Si RINT=1, se habilita la interrupción por dato recibido por el puerto serie. La interrupción RINT generada por el periférico a la CPU, es la OR-lógica entre las dos posibles fuentes asociadas a la parte de recepción del puerto serie.

26

XRESET

0

Reset de la parte de transmisión del periférico. Si XRESET=0, la parte de transmisión del puerto serie se encuentra en estado de reset. Para que funcione la parte de transmisión del periférico, hay que poner XRESET=1. Poniendo XRESET=0, no se borra la configuración de la parte de transmisión del puerto serie, se sitúa el transmisor al comienzo de la transferencia de un conjunto de datos y se genera una interrupción por transmisión. La reconfiguración del modo de funcionamiento del periférico en transmisión, se debe hacer con XRESET=0 aunque es posible cambiar el valor de XFSM sin necesidad de que XRESET=0.

27

RRESET

0

Reset de la parte de recepción del periférico. Si RRESET=0, la parte de recepción del puerto serie se encuentra en estado de reset. Para que funcione la parte de recepción del periférico, hay que poner RRESET=1. Poniendo RRESET=0, no se borra la configuración de la parte de recepción del puerto serie y se sitúa el receptor al comienzo de la transferencia de un conjunto de datos. La reconfiguración del modo de funcionamiento del periférico en recepción, se debe hacer con RRESET=0 aunque es posible cambiar el valor de RFSM sin necesidad de que RRESET=0.

28-31

Reservado

0-0

Se lee siempre un cero.

Tabla 4-2. Funciones de los bits del registro de control y configuración de los periféricos temporizadores internos del DSP.

 

Figura 4.12. Registro de control de los pines FSX, DX y CLKX del periférico puerto serie del DSP.

 

Bit

Nombre

Valor de Reset

Función que realiza

0

CLKXFUNC

0

Controla el modo de funcionamiento de CLKX. Si CLKXFUNC=0, CLKX es una línea de entrada o salida de propósito general, independiente del periférico. Si CLKXFUNC=1, CLKX es una línea del periférico.

1

0

Si CLKXFUNC=0, entonces CLKX es una línea de entrada o salida de propósito general. En ese caso, si CLKXI/O=0, CLKX es una línea de entrada de propósito general mientras que si CLKXI/O=1, CLKX es una línea de salida de propósito general.

2

CLKXDATOUT

0

El usuario escribe por software el valor en CLKX cuando se encuentra configurado como salida de propósito general, accediendo en escritura a este bit.

3

CLKXDATIN

x

El usuario lee por software el valor de CLKX cuando se encuentra configurado como entrada de propósito general, accediendo en lectura a este bit.

4

DXFUNC

0

Controla el modo de funcionamiento de DX. Si DXFUNC=0, DX es una línea de entrada o salida de propósito general, independiente del periférico. Si DXFUNC=1, DX es una línea del periférico.


 

5

0

Si DXFUNC=0, entonces DX es una línea de entrada o salida de propósito general. En ese caso, si DXI/O=0, DX es una línea de entrada de propósito general mientras que si DXI/O=1, DX es una línea de salida de propósito general.

6

DXDATOUT

0

El usuario escribe por software el valor en DX cuando se encuentra configurado como salida de propósito general, accediendo en escritura a este bit.

7

DXDATIN

x

El usuario lee por software el valor de DX cuando se encuentra configurado como entrada de propósito general, accediendo en lectura a este bit.

8

FSXFUNC

0

Controla el modo de funcionamiento de FSX. Si FSXFUNC=0, FSX es una línea de entrada o salida de propósito general, independiente del periférico. Si FSXFUNC=1, FSX es una línea del periférico.

9

0

Si FSXFUNC=0, entonces FSX es una línea de entrada o salida de propósito general. En ese caso, si FSXI/O=0, FSX es una línea de entrada de propósito general mientras que si FSXI/O=1, FSX es una línea de salida de propósito general.

10

FSXDATOUT

0

El usuario escribe por software el valor en FSX cuando se encuentra configurado como salida de propósito general, accediendo en escritura a este bit.

11

FSXDATIN

x

El usuario lee por software el valor de FSX cuando se encuentra configurado como entrada de propósito general, accediendo en lectura a este bit.

31-12

Reservado

0-0

Se lee siempre un cero.

Tabla 4-3. Funciones de los bits del registro de control de los pines FSX, DX y CLKX del puerto serie del DSP.

 

Figura 4.13. Registro de control de los pines FSR, DR y CLKR del periférico puerto serie del DSP.

 

Bit

Nombre

Valor de Reset

Función que realiza

0

CLKRFUNC

0

Controla el modo de funcionamiento de CLKR. Si CLKRFUNC=0, CLKR es una línea de entrada o salida de propósito general, independiente del periférico. Si CLKRFUNC=1, CLKR es una línea del periférico.

1

0

Si CLKRFUNC=0, entonces CLKR es una línea de entrada o salida de propósito general. En ese caso, si CLKRI/O=0, CLKR es una línea de entrada de propósito general mientras que si CLKRI/O=1, CLKR es una línea de salida de propósito general.

2

CLKRDATOUT

0

El usuario escribe por software el valor en CLKR cuando se encuentra configurado como salida de propósito general, accediendo en escritura a este bit.

3

CLKRDATIN

x

El usuario lee por software el valor de CLKR cuando se encuentra configurado como entrada de propósito general, accediendo en lectura a este bit.

4

DRFUNC

0

Controla el modo de funcionamiento de DR. Si DRFUNC=0, DR es una línea de entrada o salida de propósito general, independiente del periférico. Si DRFUNC=1, DR es una línea del periférico.

5

0

Si DRFUNC=0, entonces DR es una línea de entrada o salida de propósito general. En ese caso, si DRI/O=0, DR es una línea de entrada de propósito general mientras que si DRI/O=1, DR es una línea de salida de propósito general.

6

DRDATOUT

0

El usuario escribe por software el valor en DR cuando se encuentra configurado como salida de propósito general, accediendo en escritura a este bit.

7

DRDATIN

x

El usuario lee por software el valor de DR cuando se encuentra configurado como entrada de propósito general, accediendo en lectura a este bit.

8

FSRFUNC

0

Controla el modo de funcionamiento de FSR. Si FSRFUNC=0, FSR es una línea de entrada o salida de propósito general, independiente del periférico. Si FSRFUNC=1, FSR es una línea del periférico.

9

0

Si FSRFUNC=0, entonces FSR es una línea de entrada o salida de propósito general. En ese caso, si FSRI/O=0, FSR es una línea de entrada de propósito general mientras que si FSRI/O=1, FSR es una línea de salida de propósito general.

10

FSRDATOUT

0

El usuario escribe por software el valor en FSR cuando se encuentra configurado como salida de propósito general, accediendo en escritura a este bit.

11

FSRDATIN

x

El usuario lee por software el valor de FSR cuando se encuentra configurado como entrada de propósito general, accediendo en lectura a este bit.

31-12

Reservado

0-0

Se lee siempre un cero.

Tabla 4-4. Funciones de los bits del registro de control de las líneas FSR, DR y CLKR del puerto serie del DSP.

 

Figura 4.14. Registro de configuración y control de los temporizadores del periférico interno puerto serie del DSP.

 

Bit

Nombre

Valor de Reset

Función que realiza

0

XGO

0

Reinicializa los 16 LSBs del registro contador del periférico (contador del temporizador de transmisión). Cuando XGO=1 y el temporizador no se encuentra en estado de paro, el contador del temporizador de transmisión se pone a cero. El siguiente flanco de subida del reloj empleado como entrada al periférico sirve para incrementar dicho contador y para poner a cero el bit XGO. XGO=0 no tiene efectos sobre el estado o funcionamiento del periférico.

1

0

Señal de mantenimiento en paro del contador. Cuando XHLD=0, se impide el incremento del registro contador del temporizador de transmisión, que mantiene el valor que tenía antes de que se activase XHLD. El divisor interno por 2 de f(H1) se para. Cuando XHLD=1, el contador sigue por donde iba. Los registros del periférico se PUEDEN leer y escribir mientras el periférico esté en paro. La señal de XRESET tiene prioridad sobre XHLD.

2

0

Control de la forma de onda de XTSTAT: modo pulso o modo reloj. XC/P=1 selecciona el modo reloj, mientras que XC/P=0 selecciona el modo pulso. Análogo al periférico temporizador interno del DSP.

3

XCLKSRC

0

Especifica la fuente de reloj al temporizador. XCLKSRC=1, indica el uso del reloj interno de frecuencia f(H1)/2. XCLKSRC=0, indica el uso del reloj externo (pin CLKX) de frecuencia programable que siempre debe ser menor que f(H1)/2.6 (el reloj externo se sincroniza, latchea, internamente limitándose la frecuencia máxima de dicho reloj a valores estrictamente menores de f(H1)/2).

4

Reservado

0

Se lee siempre un cero.

5

XTSTAT

0

Indica el estado del temporizador de transmisión del periférico. Este bit activa (en un flanco de subida) el correspondiente bit de petición de interrupción a la CPU.

6

RGO

0

Reinicializa los 16 MSBs del registro contador del periférico (contador del temporizador de recepción). Cuando RGO=1 y el temporizador no se encuentra en estado de paro, el contador del temporizador de recepción se pone a cero. El siguiente flanco de subida del reloj empleado como entrada al periférico sirve para incrementar dicho contador y para poner a cero el bit RGO. RGO=0 no tiene efectos sobre el estado o funcionamiento del periférico.


 

7

0

Señal de mantenimiento en paro del contador. Cuando RHLD=0, se impide el incremento del registro contador del temporizador de recepción, que mantiene el valor que tenía antes de que se activase RHLD. El divisor interno por 2 de f(H1) se para. Cuando RHLD=1, el contador sigue por donde iba. Los registros del periférico se PUEDEN leer y escribir mientras el periférico esté en paro. La señal de RRESET tiene prioridad sobre RHLD.

8

0

Control de la forma de onda de RTSTAT: modo pulso o modo reloj. RC/P=1 selecciona el modo reloj, mientras que RC/P=0 selecciona el modo pulso. Análogo al periférico temporizador interno del DSP.

9

RCLKSRC

0

Especifica la fuente de reloj al temporizador. RCLKSRC=1, indica el uso del reloj interno de frecuencia f(H1)/2. RCLKSRC=0, indica el uso del reloj externo (pin CLKR) de frecuencia programable que siempre debe ser menor que f(H1)/2.6 (el reloj externo se sincroniza, latchea, internamente limitándose la frecuencia máxima de dicho reloj a valores estrictamente menores de f(H1)/2).

10

Reservado

0

Se lee siempre un cero.

11

RTSTAT

0

Indica el estado del temporizador de recepción del periférico. Este bit activa (en un flanco de subida) el correspondiente bit de petición de interrupción a la CPU.

31-12

Reservado

0-0

Se lee siempre un cero.

Tabla 4-5. Funciones de los bits del registro de configuración y control de los temporizadores del periférico interno puerto serie del DSP.

 

e-REdING. Biblioteca de la Escuela Superior de Ingenieros de Sevilla.


IMPLANTACIÓN DE UNA RED ASÃNCRONA DE ENSEÑANZA DEDICADA A LA IMPARTICIÓN DE LA ASIGNATURA COPLEMENTOS DE SISTEMAS ELECTRÓNICOS DIGITALES DE 3º CURSO DE INGENIERÃA DE TELECOMUNICACIÓN.

: Oliveros Garrido, Antonio
: Ingeniería Telecomunicación
Contenido del proyecto: