ECB-BF532/schematic/com/SPORT
Contents |
Serial Ports (SPORTs) 0/1
El procesador incorpora 2 puertos seriales sincrónicos de canal-dual para comunicaciones seriales y multiprocesadores.
- Capacidad para operar I2S Bidireccional. Cada Sport tiene 2 conjuntos de pines de transmisión/recepción, permitiendo ocho canales de audio I2S estéreo.
- Puertos de Buffer para transmisión/recepción.
- Clocks. Cada puerto de transmisión/recepción puede utilizar un clock serial externo ó generar el propio internamente en un gran rango de frecuencias
- Longitud de Palabra de Datos. Cada puerto serial soporta palabras de datos de 3- a 32-bits, transmitiendo al inicio tanto el bit más significativo (MSB) como el bit menos significativo (LSB).
- Entramado: Cada puerto de transmisión/recepción puede usar o no la sincronización por trama para cada palabra de dato. Las tramas de sincronización pueden ser generadas de manera interna o externa, activo en alto o en bajo, y con cualquiera de los dos anchos de pulso y la sincronización de tramas temprana o tarde.
- Compansión Hardware: Para cada Sport se puede implementar compansión por ley A o ley u de acuerdo con la recomendación ITU G.711. La compansión puede ser elegida en el canal de recepción y/o transmisión del Sport sin latencias adicionales.
- Operaciones DMA con sobrecarga en 1 solo ciclo: Cada puerto puede automáticamente recibir y transmitir multiples buffers de memoria de datos. El procesador puede enlazar o encadenar secuencias de transferencias DMA entre los Sports y la memoria
- Interrupciones: Cada puerto de TX/RX genera una interrupción al completar la transferencia de una palabra de datos o después de transferir un buffer(es) completo(s) de dato(s) hacia DMA
- Capacidad Multicanal: Los Sport soportan 128 canales de salida por medio de una ventana de 1024 canales y es compatible con H.100, H.110, MVIP-90 y HMVIP
- Frecuencia: Ya sea por medio de CLK externo o interno, el Sport puede llegar a frecuencias de operación como máximo de SCLK/2
- Los 2 Sports tienen las mismas capacidades de operación y son programados de la misma manera. Cada Sport tiene su propio set de registros de control y buffers de datos.
Registros de Control y Estado
SPORT0
| Dirección Mapeada en Memoria | Nombre del Registro SPORT0 |
|---|---|
| 0XFFC0 0800 | SPORT0_TCR1 |
| 0XFFC0 0804 | SPORT0_TCR2 |
| 0XFFC0 0808 | SPORT0_TCLKDIV |
| 0XFFC0 080C | SPORT0_TFSDIV |
| 0XFFC0 0810 | SPORT0_TX |
| 0XFFC0 0818 | SPORT0_RX |
| 0XFFC0 0820 | SPORT0_RCR1 |
| 0XFFC0 0824 | SPORT0_RCR2 |
| 0XFFC0 0828 | SPORT0_RCLKDIV |
| 0XFFC0 082C | SPORT0_RFSDIV |
| 0XFFC0 0830 | SPORT0_STAT |
| 0XFFC0 0834 | SPORT0_CHNL |
| 0XFFC0 0838 | SPORT0_MCMC1 |
| 0XFFC0 083C | SPORT0_MCMC2 |
| 0XFFC0 0840 | SPORT0_MTCS0 |
| 0XFFC0 0844 | SPORT0_MTCS1 |
| 0XFFC0 0848 | SPORT0_MTCS2 |
| 0XFFC0 084C | SPORT0_MTCS3 |
| 0XFFC0 0850 | SPORT0_MRCS0 |
| 0XFFC0 0854 | SPORT0_MRCS1 |
| 0XFFC0 0858 | SPORT0_MRCS2 |
| 0XFFC0 085C | SPORT0_MRCS3 |
SPORT1
| Dirección Mapeada en Memoria | Nombre del Registro SPORT1 |
|---|---|
| 0XFFC0 0900 | SPORT1_TCR1 |
| 0XFFC0 0904 | SPORT1_TCR2 |
| 0XFFC0 0908 | SPORT1_TCLKDIV |
| 0XFFC0 090C | SPORT1_TFSDIV |
| 0XFFC0 0910 | SPORT1_TX |
| 0XFFC0 0918 | SPORT1_RX |
| 0XFFC0 0920 | SPORT1_RCR1 |
| 0XFFC0 0924 | SPORT1_RCR2 |
| 0XFFC0 0928 | SPORT1_RCLKDIV |
| 0XFFC0 092C | SPORT1_RFSDIV |
| 0XFFC0 0930 | SPORT1_STAT |
| 0XFFC0 0934 | SPORT1_CHNL |
| 0XFFC0 0938 | SPORT1_MCMC1 |
| 0XFFC0 093C | SPORT1_MCMC2 |
| 0XFFC0 0940 | SPORT1_MTCS0 |
| 0XFFC0 0944 | SPORT1_MTCS1 |
| 0XFFC0 0948 | SPORT1_MTCS2 |
| 0XFFC0 094C | SPORT1_MTCS3 |
| 0XFFC0 0950 | SPORT1_MRCS0 |
| 0XFFC0 0954 | SPORT1_MRCS1 |
| 0XFFC0 0958 | SPORT1_MRCS2 |
| 0XFFC0 095C | SPORT1_MRCS3 |
SPORTx_TCR1 y SPORTx_TCR2
Los registros "Transmit Configuration" están encargados principalmente para la transmisión de datos. Los bits que componen el registro SPORTx_TCR1 son:
- Clock Falling Edge Select (TCKFE)
- Late Transmit Frame Sync (LATFS)
- Low Transmit Frame Sync Select (LTFS)
- Data-Independent Transmit Frame Sync Select (DITFS)
- Transmit Frame Sync Requiered Select (TFSR)
- Internal Transmit Frame Sync Select (ITFS)
- Transmit Bit Order (TLSBIT)
- 2 Data Formatting Type Select (TDTYPE)
- Internal Transmit Clock Select (ITCLK)
- Transmit Enable (TSPEN)
Los bits que componen el registro SPORTx_TCR2 son:
- Left/Right Order (TRFST)
- Transmit Stereo Frame Sync Enable (TSFSE)
- TxSEC Enable (TXSE)
- 5 SPORT Word Lenght (SLEN)
Un SPORT está habilitado para transmitir si TSPEN=1. Al habilitar TSPEN se genera inmediatamente una interrupción que indica que el registro de transmisión está vacío y debe llenarse.
El bit ITCLK selecciona el tipo de Clock que se va a utilizar ya sea interno (=1) ó externo (=0).
Los 2 bits para TDTYPE especifica el formato de datos ya sea para operación en canal sencillo ó multicanal
El bit TLSBIT decide que tipo de dato se transmite primero en la trama, si el MSB ó el LSB
La longitud de palabra serial (SLEN) indica el tamaño de la palabra en bits para cada transmisión por SPORT. SLEN puede tomar valores entre 2 y 31. Los valores comunes para SLEN son 15 con lo que se transmiten palabras de 16-bits, 7 para transmitir 8-bits o 23 para transmisión de 24-bits.
ITFS es un bit que selecciona si el SPORT utiliza TFS interno si está en alto ó TFS externo si está en bajo.
TFSR=1 indica que se requiere un trama de sincronización para transmitir cada palabra de datos, de lo contrario, si TFSR=0 esta sincronización por trama no se requiere.
El bit DITFS selecciona si el SPORT genera un TFS independiente de los datos (sincronización a un intervalo seleccionado) ó un TFS dependiente de los datos (sincronización cuando los datos están presentes en SPORTx_TX). Este bit es ignorado cuando se selecciona sincronización por trama externa.
El bit LTFS selecciona si el TFS es activo en bajo (=1), o si el TFS es activo en alto (LTFS=0)
El bit LATFS sincroniza por principios de trama (=1), o por finales de trama (=0)
El bit TCKFE designa que tipo de flanco de la señal TCLKx se utiliza para operar los datos, las tramas de sincronización y para generar tramas externas de sincronía.
TXSE es un bit que habilita el segundo transmisor del puerto serial (=1)
TSFSE habilita el modo de operación "Serial Stereo" (=1).
Cuando el bit TRFST=1 el canal derecho de transmisión utiliza el modo serial stereo, de lo contrario, se utiliza el canal izquierdo primero.
SPORTx_RCR1 y SPORTxRCR2
Los registros "Receive Configuration" son los principales para la recepción de cada puerto serial
Los bits que componen el registro SPORTx_RCR1 son:
- Clock Falling Edge Select (RCKFE)
- Late Receive Frame Sync (LARFS)
- Low Receive Frame Sync Select (LRFS)
- Receive Frame Sync Required Select (RFSR)
- Receive Enable (RSPEN)
- Internal Receive Clock Select (IRCLK)
- 2 Data Formatting Type Select (RDTYPE)
- Receive Bit Order (RLSBIT)
- Internal Receive Frame Sync Select (IRFS)
Los bits que componen el registro SPORTx_RCR2 son:
- Left/Right Order (RRFST)
- Receive Stereo Frame Sync Enable (RSFSE)
- 5 SPORT Word Length (SLEN)
- RxSEC Enable (RXSE)
RSPEN: Cuando está activo permite que el SPORT esté dispuesto para recibir datos
IRCLK=1 significa que se utiliza un clock interno, si IRCLK=0 entonces el clock será externo
Los 2 bits de RDTYPE permiten especificar uno de los cuatro tipos de datos por canal sencillo ó multicanal
RLSBIT selecciona que tipo de dato se transmite primero en la trama, si el MSB ó el LSB
SLEN indica el tamaño de la palabra en bits para cada transmisión por SPORT. SLEN puede tomar valores entre 2 y 31.
IRFS selecciona si el SPORT usa un RFS interno (=1) o externo (=0)
RFSR selecciona si se requiere o no una trama de sincronía para la recepción por cada palabra de datos
LRFS selecciona si el RFS es activo en bajo (=1) o en alto (=0)
LARFS sincroniza por principios de trama (=1), o por finales de trama (=0)
RCKFE designa que tipo de flanco de la señal RSCLK se utiliza para operar los datos, las tramas de sincronización y para generar tramas externas de sincronía.
RXSE Habilita el puerto serial secundario de recepción (=1)
RSFSE habilita el modo Estéreo Serial
RRFST l canal derecho recibe primero y en modo estéreo. Por defecto el canal izquierdo recibe primero.
SPORTx_TX
El registro "SPORT Transmit Data" es de sólo escritura en el cual sólo se escribe la palabra de datos la cual es transmitida por medio de una FIFO para que luego otro registro de corrimiento permita enviarlos de forma serial
Nota: La FIFO es común para el primario y secundario,
Hay 2 registros de transmisión cada uno de 16-bit, creando así un registro de 32-bit
SPORTx_RX
El registro "Receive Data" es de sólo lectura. La lectura se hace a partir de los datos recibidos en la FIFO de recepción y por medio de un registro de corrimiento.
Hay 2 registros de recepción cada uno de 16-bit, creando así un registro de 32-bit
SPORTx_STAT
El registro "SPORT Status" es utilizado para determinar si la FIFO de transmisión o recepción están ocupadas (lleno), o sin datos (vacío)
Este registro contiene los siguientes bits:
- Transmit Hold Register Empty (TXHRE)
- Sticky Transmit Overflow Status (TOVF)
- Sticky Transmit Underflow Status (TUVF)
- Transmit FIFO Full Status (TXF)
- Receive FIFO Not Empty Status (RXNE)
- Sticky Receive Underflow Status (RUVF)
- Sticky Receive Overflow Status (ROVF)
TXF: Indica si la FIFO de transmisión está llena de datos
RXNE: Inidica si existen datos actualmente en la FIFO de recepción
TXHRE: Indica si el registro HOLD está vacío
TUVF: Se activa cuando ocurre la señal TFS se activa tanto de fuente interna como externa
TOVF: Este bit se activa cuando se intenta escribir en la FIFO de TX cuando está llena.
ROVF: Cuando el registro SPORT RX HOLD está lleno y se recibe una nueva palabra de datos en el registro de corrimiento se activa este bit por overflow
RUVF:Este bit se activa cuando se intenta leer de la FIFO de RX pero está vacía
SPORTx_TCLKDIV y SPORTx_RCLKDIV
La frecuencia del clock generado internamente es función de la frecuencia del clock del sistema (SCLK) y el valor de cada uno de estos registros de 16-bit.
El registro TCLKDIV hace alusión al clock interno para transmisión
El registro RCLKDIV hace alusión al clock interno para recepción
El SPORTx_TCLKDIV registro contiene los siguientes bits:
- 16 Serial Clock Divide Modulus
El SPORTx_RCLKDIV registro contiene los siguientes bits:
- 16 Serial Clock Divide Modulus
SPORTx_TFSDIV y SPORTx_RFSDIV
Estos registros son utilizados para especificar cuantos ciclos de reloj deben ser contados antes de generar un pulso de TFS o RFS cuando la trama de sincronización es generada internamente
El registro TFSDIV esta compuesto por:
- 16 Frame Sync Divider
El registro RFSDIV esta compuesto por:
- 16 Frame Sync Divider
SPORTx_MCMCn
Cada SPORT tiene 2 registros de configuración para configuración multicanal: SPORTx_MCMCn
El primer registro SPORTx_MCMC1 está compuesto por los siguientes bits:
- 4 Window Size (WSIZE)
- 10 Window Offset (WOFF)
El segundo registro SPORTx_MCMC2 está compuesto por los siguientes bits:
- 4 Multichannel Frame Delay (MFD)
- Frame Sync to Data Relationship (FSDR)
- Multichannel Frame Mode Enable (MCMEN)
- Multichannel DMA Receive Packing (MCDRXPE)
- Multichannel DMA Transmit Packing (MCDTXPE)
- 2 2X Clock Recovery Mode (MCCRM)
WSIZE: Define el número de canales que pueden ser habilitados/deshabilitados por los registros de selección multicanal. Este rango de palabars es llamado "ventana"
WOFF: Especifíca en que rango de os 1024 canales debe ponerse la ventana activa. El valor de 0 significa que no existe offset
MFD: Retraso entre el pulso de la trama de sincronización y el primer bit de datos en modo multicanal
FSDR: Selecciona modo H.100 cuando es activo
MCMEN: Activa las operaciones de multicanal
MCDRXPE y MCDTXPE: Activan DMA Multicanal para recepción y transmisión respectivamente
MCCRM: Modo de Recuperación de Clock para el modo H.100
SPORTx_CHNL
El registro "SPORTx Current Channel" indica el canal que está siendo utilizado para las operaciones multicanal. Es un registro únicamente de lectura que funciona como contador cada vez que un canal es accedido aumenta en 1 unidad, y sólo es reiniciado a 0 al llegar al tope definido de ventana.
Está compuesto por los siguientes bits:
- 10 Current Channel Indicator (CHNL)
SPORTx_MTCSn
Los registros de "SPORT Multichannel Transmit Selection" son utilizados para activar/desactivar canales de transmisión de datos individualmente. Hay 4 registros cada uno de 32-bit correpondientes a 128 canales
Los canales se seleccionan poniendo un sólo bit en alto, al hacer esto se selecciona la palabra que se desea utilizar para transmitir del múltiple bloque de datos. Ejemplo: Seleccionar el bit 0, selecciona la palabra de datos que está en la posición 0. Activando el bit 12, se seleccionan los datos que están en la palabra de la posición 12, y así sucesivamente
SPORTx_MRCSn
Los registros de "SPORT Multichannel Receive Selection" son utilizados para activar/desactivar canales de recepción de datos individualmente. Hay 4 registros cada uno de 32-bit correpondientes a 128 canales
Los canales se seleccionan poniendo un sólo bit en alto, al hacer esto se selecciona la palabra que se desea utilizar para recibir datos del múltiple bloque de datos. Ejemplo: Activar el bit 0, selecciona la palabra en la posición 0 para la recepción de datos. Activando el bit 12, se selecciona la palabra en la posición 12, y así sucesivamente
Fuente
BF533 Hardware Manual Reference