El periférico DMA dispone de cuatro registros, de 32 bits cada uno, dedicados al control y configuración del mismo y ubicados en una determinada zona del mapa de memoria del DSP. Estos registros pueden ser accedidos en lectura o escritura por el usuario. En la figura 4.27 se muestra la posición en el mapa de memoria de estos registros, que son:
· Registro global de configuración y control del periférico. Ubicado en la posición 808000H. Determina el modo de operación del periférico. Indica, además, el estado en que se encuentra la transferencia DMA. En la figura 4.28 se muestra este registro y en la tabla 4-6, tabla 4-7, tabla 4-8, tabla 4-9 y tabla 4-10 se indican las funciones de cada bandera del registro.
· Registro de la dirección fuente en la transferencia DMA. Ubicado en la posición 808004H. Indica la dirección en la que se encuentra el dato que se va a leer en la transferencia DMA. De los 32 bits del registro sólo tienen interés los 24 LSB (el mapa de memoria del DSP tiene 24 líneas de dirección).
· Registro de la dirección destino en la transferencia DMA. Ubicado en la posición 808006H. Indica la dirección en la que se desea almacenar el dato leído por el periférico DMA. De los 32 bits del registro sólo tienen interés los 24 LSB.
· Registro contador de transferencias DMA. Ubicado en la posición 808008H. Indica el número de transferencias que debe de realizar el periférico (número de datos que se deben reubicar en el mapa de memoria del DSP).
Figura 4.27. Registros del periférico DMA interno del DSP.
Figura
4.28. Registro
Global de configuración y control del periféricos DMA interno del DSP.
Bit |
Nombre |
Valor de Reset |
Función que realiza |
0-1 |
START |
0-0 |
Controlan el estado en el que la DMA arranca y
para. Ver tabla 4-7. |
2-3 |
STAT |
0-0 |
Indican el estado de la DMA. Cambian cada ciclo
máquina. Ver tabla 4-8. |
4 |
INCSRC |
0 |
Si INCSRC=1, la posición del registro fuente para
la transferencia DMA se incrementa después de cada lectura DMA. |
5 |
DECSRC |
0 |
Si DECSRC=1, la posición del registro fuente para
la transferencia DMA se decrementa después de cada lectura DMA. |
6 |
INCDST |
0 |
Si INCDST=1, la posición del registro destino para
la transferencia DMA se incrementa después de cada lectura DMA. |
7 |
DECDST |
0 |
Si DECDST=1, la posición del registro destino para
la transferencia DMA se decrementa después de cada lectura DMA. |
8-9 |
SYNC |
0-0 |
Indican la forma de lanzar los eventos DMA (lecturas DMA y/o escrituras DMA). Ver tabla 4-9 y figura 4.29. |
10 |
TC |
0 |
Afecta a la operación del contador de
transferencias DMA. Si TC=0, las transferencias DMA no concluyen cuando el
contador de transferencias alcance el valor 0. Si TC=1, las transferencias
DMA concluyen al alcanzar el contador de dichas transferencias el valor cero. |
11 |
TCINT |
0 |
Si TCINT=1, cuando el contador de transferencias
DMA alcance el valor 0, se activa la petición de interrupción DMA. Si
TCINT=0, no se activa la petición de interrupción DMA al pasar a valer 0 el
contador de transferencias DMA. |
31-12 |
Reservado |
0-0 |
Se lee siempre un cero. |
Tabla 4-6. Funciones de los bits del registro de control y configuración del periférico DMA interno del DSP.
START |
Función que realiza |
0-0 |
Valor de Reset. Los ciclos de lectura o escritura
DMA que aún no hayan terminado, se completan. La DMA no realiza más
transferencias y se resetea, de manera que cuando se lance un nuevo evento
DMA, comienza una nueva transferencia DMA. |
0-1 |
Si se ha efectuado o ha comenzado un evento de
lectura o escritura DMA cuando aparece este valor, se completa dicho evento
antes de pararse la DMA. Si no ha comenzado ningún evento, la DMA se vuelve
inactiva. |
1-0 |
Si ha comenzado una transferencia DMA, se completa
(incluyendo los eventos de lectura y escritura DMA) antes de pararse. Si no
ha comenzado ninguna transferencia, la DMA se vuelve inactiva. |
1-1 |
La DMA arranca desde el reset o desde el estado
previo en que estaba. |
Tabla 4-7. Inicio de eventos DMA. Funciones de los bits START del registro de control y configuración del periférico DMA interno del DSP.
STAT |
Función que realiza |
0-0 |
Valor de Reset. La DMA está parada al final de una
transferencia DMA (entre un evento de escritura y otro de lectura). |
0-1 |
La DMA está parada en la mitad de una transferencia
DMA (entre un evento de lectura y otro de escritura). |
1-0 |
Reservado. |
1-1 |
La DMA está ocupada, está realizando un evento de
lectura, uno de escritura o está esperando la llegada de una petición de
interrupción para lanzar el(los) evento(s) programado(s). |
Tabla 4-8. Estado del periférico DMA. Funciones de los bits STAT del registro de control y
configuración del periférico DMA interno del DSP.
SYNC |
Función que realiza |
0-0 |
SIN SINCRONIZACIÓN. Valor de Reset. La
sincronización de los eventos DMA con la petición de interrupciones, está
inhabilitada. |
0-1 |
SINCRONIZACIÓN DE LA FUENTE. La sincronización de
los eventos de lectura de la DMA se realiza con la petición de
interrupciones. La DMA genera un evento de lectura (completando una
transferencia completa DMA) cuando se produzca la petición de una
interrupción habilitada para la DMA. |
1-0 |
SINCRONIZACIÓN DEL DESTINO. La sincronización de
los eventos de escritura de la DMA se realiza con la petición de
interrupciones. La DMA genera un evento de escritura (completando una
transferencia completa DMA e iniciando otra) cuando se produzca la petición
de una interrupción habilitada para la DMA. |
1-1 |
SINCRONIZACIÓN DE LA FUENTE Y DEL DESTINO. La
sincronización de los eventos de lectura y escritura de la DMA se realiza con
la petición de interrupciones. La DMA genera un evento de lectura o escritura
(según corresponda) cuando se produzca la petición de una interrupción
habilitada para la DMA. La transferencia completa DMA está garantizada cuando
se produzcan dos peticiones de interrupciones habilitadas para la DMA. |
Tabla 4-9. Modo de funcionamiento del periférico DMA: Sincronización de los eventos. Funciones de los bits SYNC del registro de control y configuración del periférico DMA interno del DSP.
TCINT-TC |
Función que realiza |
0-0 |
La CPU no es notificada cuando se completa una
transferencia DMA (el registro contador de la transferencia pasa a valer
cero). Se continúan realizando transferencias DMA cuando pasa a valer cero el
registro contador de transferencias DMA. |
0-1 |
La CPU no es notificada cuando se completa una
transferencia DMA (el registro contador de la transferencia pasa a valer
cero). Se dejan de realizar transferencias DMA cuando pasa a valer cero el
registro contador de transferencias DMA. |
1-0 |
La CPU es notificada, vía activación de la bandera
de petición de interrupción asociada al periférico DMA, cuando se completa
una transferencia DMA (el registro contador de la transferencia pasa a valer
cero). Se continúan realizando transferencias DMA cuando pasa a valer cero el
registro contador de transferencias DMA. |
1-1 |
La CPU es notificada, vía activación de la bandera
de petición de interrupción asociada al periférico DMA, cuando se completa
una transferencia DMA (el registro contador de la transferencia pasa a valer
cero). Se dejan de realizar transferencias DMA cuando pasa a valer cero el
registro contador de transferencias DMA. |
Tabla 4-10. Petición de interrupciones por parte del periférico DMA.