Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
• Full-Duplex, 8-bit or 9-bit Data Transmission through the UxTX and UxRX pins
• Even, Odd or No Parity options (for 8-bit data)
• One or two Stop bits
• Hardware Auto-Baud feature
• Hardware Flow Control option with UxCTS and UxRTS pins
• Fully Integrated Baud Rate Generator (BRG) with 16-bit Prescaler
• Baud Rates ranging from 10 Mbps to 38 bps at 40 MIPS
• 4-deep First-In-First-Out (FIFO) Transmit Data Buffer
• 4-deep FIFO Receive Data Buffer
• Parity, Framing, and Buffer Overrun Error Detection
• Support for 9-bit mode with Address Detect (9th bit = 1)
• Transmit and Receive Interrupts
• Loopback mode for Diagnostic Support
• IrDA Encoder and Decoder Logic
• LIN Bus Support
• 16x Baud Clock Output for External IrDA Encoder/Decoder support
A simplified block diagram of the UART is illustrated in Figure 17-1. The UART
module consists of the following key hardware elements:
• Baud Rate Generator
• Asynchronous Transmitter
• Asynchronous Receiver
Revisar los registros del pdf
BCLKx Output: El pin BCLKx emitirá el reloj Baud 16x si las salidas UART y BCLKx
están habilitadas (UEN <1: 0> = 11). Esta función se usa para el soporte del
codificador / decodificador IrDA externo (consulte la Figura 17-2). La salida de
BCLKx permanece alta durante el modo de Suspensión. BCLKx se fuerza como una
salida siempre que el UART se mantenga en modo (UEN <1: 0> = 11),
independientemente de los bits de traba PORTx y TRISx.
HABILITANDO EL UART:
El módulo UART se habilita configurando el bit UARTEN (UxMODE <15>) y el bit
UTXEN (UxSTA <10>). Una vez habilitados, los pines UxTX y UxRX se configuran
como una salida y una entrada, respectivamente, anulando los ajustes de bit de
registro TRIS y PORT para los pines correspondientes del puerto de E / S. El pin
UxTX está en la lógica '1' cuando no está teniendo lugar ninguna transmisión.
Nota: El bit UTXEN no debe establecerse hasta que se establezca el bit UARTEN;
de lo contrario, las transmisiones UART no se habilitarán
DESHABILITANDO EL UART: El módulo UART se desactiva borrando el bit
UARTEN (UxMODE <15>). Este es el estado predeterminado después de cualquier
reinicio. Si UART está deshabilitado, todos los pines UART funcionan como pines de
puerto bajo el control de sus correspondientes bits de PORT y TRIS.
Borrar el bit UARTEN mientras el UART está activo abortará todas las transmisiones
y recepciones pendientes, y restablecerá el módulo como se define arriba. Volver a
habilitar el UART reiniciará el UART en la misma configuración
UART TRANSMITIR:
El diagrama de bloque del transmisor UART se ilustra en la Figura 17-3. El corazón
del transmisor es el Shift register (UxTSR). El Shift Register obtiene sus datos del
buffer FIFO de transmisión, UxTXREG. El registro UxTXREG se carga con datos en
el software. El registro UxTSR no se carga hasta que el bit Stop se transmite desde
la carga anterior. Tan pronto como se transmite el bit Stop, el UxTSR se carga con
nuevos datos del registro UxTXREG (si está disponible).
La transmisión se habilita configurando el bit de habilitación UTXEN (UxSTA <10>).
La transmisión no se produce hasta que el registro UxTXREG se carga con datos y
el generador de frecuencia de baudios (UxBRG) ha producido un reloj de cambio
(figura 17-3). Por lo general, cuando se inicia la transmisión, el registro UxTSR está
vacío, porque una transferencia al registro UxTXREG da como resultado una
transferencia inmediata a UxTSR. Al borrar el bit UTXEN durante una transmisión,
se cancela la transmisión y se restablece el transmisor. Como resultado, el pin UxTX
volverá a un estado de alta impedancia.
Para seleccionar la transmisión de 9 bits, los bits PDSEL <1: 0> (UxMODE <2: 1>
deben establecerse en '11' y el noveno bit debe escribirse en el bit UTX8 (UxTXREG
<8>). Se debe realizar una escritura de palabras en UxTXREG para que los nueve
bits se escriban simultáneamente.
En un reinicio del dispositivo, el pin UxTX se configura como una entrada; por lo
tanto, el estado del pin UxTX no está definido. Cuando el módulo UART está
habilitado, el pin de transmisión se conduce alto y permanece en este estado hasta
que los datos se escriben en el búfer de transmisión (UxTXREG). El pin de
transmisión se desactiva tan pronto como los primeros datos se graban en el
registro UxTXREG. Para garantizar la detección del bit de inicio, se recomienda
tener un retraso entre habilitar UARTx (UARTEN = 1) e iniciar la primera
transmisión. El retraso depende de la velocidad en baudios y debe ser igual o mayor
que el tiempo que lleva transmitir un bit de datos.
INTERRUPCIÓN DE TRANSMISIÓN
El indicador de interrupción de transmisión (UxTXIF) se encuentra en el registro de
estado de indicador de interrupción (IFS) correspondiente. Los bits de control
UTXISEL <1: 0> (UxSTA <15,13>) determinan cuándo el UART generará una
interrupción de transmisión.
Nota: Cuando se establece el bit UTXEN, el bit del indicador UxTXIF también se
establecerá si UTXISEL <1: 0> = 00, porque el búfer de transmisión no está lleno
(puede mover datos de transmisión al registro UxTXREG).
Mientras que el bit indicador UxTXIF indica el estado del registro UxTXREG, el bit
TRMT (UxSTA <8>) indica el estado del UxTSR. El bit de estado TRMT es un bit de
solo lectura, que se establece cuando el UxTSR está vacío. No hay lógica de
interrupción vinculada a este bit, porque la aplicación del usuario debe sondear este
bit para determinar si el UxTSR está vacío.
Nota: El bit UTXEN no debe establecerse hasta que se haya establecido el bit
UARTEN; de lo contrario, las transmisiones UART no se habilitarán
EJEMPLO Tx:
Nota: La aplicación asignada por el usuario debe esperar que el transmisor esté
inactivo (TRMT = 1) antes de configurar el bit UTXBRK. El bit UTXBRK anula
cualquier otra actividad del transmisor. Si la aplicación del usuario borra el bit
TXBRK antes de completar la secuencia, se puede producir un comportamiento
inesperado del módulo. El envío de un carácter de interrupción no genera una
interrupción de transmisión.
El bit TRMT indica cuando el registro de cambio de transmisión está vacío o lleno,
similar a la transmisión normal. Consulte la Figura 17-7 para conocer el tiempo de la
secuencia de caracteres Break.
Los datos en el pin UxRX son muestreados varias veces por un circuito de detección
mayoritaria para determinar si hay un nivel alto o bajo en el pin UxRX.
Nota: Los datos en la FIFO de recepción deben leerse antes de borrar el bit OERR.
El FIFO se restablece cuando se borra OERR, lo que hace que se pierdan todos los
datos en el búfer.
RECEIVE INTERRUPT
References