PDF de programación - Capítulo 6/14 - Módulo Serial Asincrónico de Comunicación - SCI - Serial Comunication Interface - Curso sobre Microcontroladores

Imágen de pdf Capítulo 6/14 - Módulo Serial Asincrónico de Comunicación - SCI - Serial Comunication Interface - Curso sobre Microcontroladores

Capítulo 6/14 - Módulo Serial Asincrónico de Comunicación - SCI - Serial Comunication Interface - Curso sobre Microcontroladoresgráfica de visualizaciones

Publicado el 31 de Mayo del 2018
194 visualizaciones desde el 31 de Mayo del 2018
206,1 KB
8 paginas
Creado hace 8a (09/02/2012)
Curso sobre Microcontroladores
Familia HC9S08 de Freescale

Por Ing. Daniel Di Lella – EduDevices – www.edudevices.com.ar
e-mail: info@edudevices.com.ar

Capítulo 6.-

Módulo Serial Asincrónico de Comunicación
- SCI - Serial Comunication Interface.
Continuación ...
Descripción de Registros.

SCI Control Registers (registros de control del SCI).

Registro de Control 1 – SCIxC1

Registro de Control 2 – SCIxC2

Registro de Control 2 – SCIxC3

Si bien, muchos de los bits de los registros de control son muy similares o iguales a los
del módulo SCI de los HC908, existen algunas diferencias y prestaciones distintas
que son interesantes de destacar.

Describiremos brevemente cada uno de los bits que conforman los registros de control.

SCIxC1

LOOPS:

Este bit de lectura / escritura selecciona entre el modo “loop back” y el modo normal de
funcionamiento Full Duplex a 2 hilos. Cuando LOOPS =1, se activa el modo loop back
y la salida del transmisor se conecta internamente a la entrada del receptor, por lo que
el pin RxD no es usado por el SCI. Si LOOPS = 0, entonces los pines de TxD y RxD
se habilitan de forma separada y son independientes uno de otro.

SCISWAI:

Si el bit SCIWAI =1 y el MCU está en modo WAIT, se detiene el módulo de SCI o sea
no ingresa reloj al módulo, de esta forma se consigue un menor consumo del sistema.
Si SCIWAI=0, el reloj ingresa al módulo SCI y este se mantiene activo pudiendo
“despertar” al MCU del estado de WAIT por medio de la generación de un pedido de
interrupción.

RSRC:

Cuando el módulo SCI está en el modo “loop back” (LOOPS=1), el bit RSRC
(Receiver Source Select Bit) determina cuando la conexión entre la entrada del receptor
y el pin TxD permanece o no conectada a dicho pin. En otras palabras, cuando
LOOPS =1 y RSRC = 0, se selecciona el modo loop back pero no se usa el pin de RxD.
Sin embargo, Cuando ambos bits son “1s” el módulo se configura en modo “Single
wire” (un solo hilo) y TxD se conecta a la salida del transmisor y a la entrada del
receptor.

M:

Este bit selecciona el modo de largo de palabra, M = 0 selecciona 8 Bits de largo de
carácter, mientras que M = 1 selecciona 9 Bits como largo de carácter.

WAKE:

Este bit selecciona el modo de despertar al receptor. Con WAKE = 0, se selecciona el
modo de Wake Up por estado IDLE de la línea RxD. Si WAKE = 1, se selecciona el
modo de Wake Up por “address – mark”.

ILT:

Cuando se configura el RxD para Wake up por Idle – line el bit ILT selecciona una de
las dos formas de detectar una línea IDLE. Cuando ILT = 0 el contador de bits IDLE
comienza después del Start Bit / Stop Bit o cualquier 1 lógico al final de la cuenta del
carácter hacia el tiempo completo del carácter de IDLE.
Si ILT = 1 en el contador de bits IDLE no comienza hasta después de un tiempo de bit
de Stop, de esta forma, la detección de un IDLE no es afectada por el dato del último
carácter enviado en el mensaje previo.

PT / PE:

Estos bits controlan la configuración de paridad del módulo SCI. El bit PE habilita la
generación y chequeo de paridad por hardware cuando PE = 1.
El bit PT selecciona entre paridad “par” o paridad “impar” cuando la función de paridad
ha sido habilitada por medio del bit PE. Cuando PT = 1, se selecciona paridad impar
(número total de 1´s en el carácter de datos incluyendo el bit de paridad es impar).
Cuando PT = 0, se selecciona la paridad par.

SCIxC2.

TIE:

El bit TIE es el responsable de la habilitación / deshabilitación del pedido de
interrupción cuando el registro de datos durante la transmisión está vacío, lo cual es
indicado por el bit TDRE (Transmit Data Register Empty) en el registro SCIxS1.
Si TIE = 0, la interrupción por hardware es deshabilitada y solo se debe monitorear el
bit TDRE.

TCIE:

El bit de habilitación de interrupción por transmisión completa (TCIE) habilita la
interrupción por hardware cuando el flag “TC” (Transmission Complete) se pone a “1”,
lo que indica que el transmisor está desocupado.

RIE:

El bit RIE habilita el pedido de interrupción cuando el registro de datos durante la
recepción está lleno. Si RIE = 1, una interrupción por hardware se genera si el flag
RDRF (Receive Data Register Full) es igual a “1”.

ILIE:

El bit ILIE es el bit de habilitación de interrupción por línea IDLE. Si ILIE = 1, se
genera un pedido de interrupción por hardware cuando el flag IDLE es igual a “1”.

TE:

El bit TE permite encender o apagar la sección de transmisión. Si TE = 1, TX está
encendido. Si TE = 0, TX está apagado.

Cuando TE = 1, el pin TxD es configurado como salida en modo Full – Duplex.

Si se habilita el modo de funcionamiento “loop back” en el SCI
(LOOPS =1, RSRC =0), el pin TxD funciona como un puerto de entrada / salida (I/O
Port) si TE =1.

Cuando el SCI funciona en el modo “Single Wire” (LOOPS = 1, RSRC = 1), el bit
TXDIR en el registro SCIxC3 permite controlar la dirección del tráfico de datos la única
línea de comunicación (pin TxD).

RWU:

El bit RWU (Receiver Wakeup control) permite configurar al módulo de SCI en modo
de espera (standby) esperando una condición de WakeUp (despertar).
Si RWU = 0, el receptor del SCI trabaja en el modo normal. Si RWU = 1, el receptor
solo se despierta si se cumple la condición de WakeUp elegida.

SBK:

Este bit sirve para enviar un carácter de “break” (11 bits “0´s” seguidos) tan pronto
como el shift register de transmisión este disponible. Se utiliza para generar una
“interrupción” en el tráfico de información en una red de comunicaciones.

SCIxC3.

R8:

Cuando el módulo SCI ha sido configurado para 9 Bits de datos (M=1), el bit “R8”
funciona como el “9eno” (Noveno) Bit recibido por el buffer de datos del receptor
(SCID) cuyo estado es almacenado en dicho bit. Es el bit más significativo de los 9 bits
recibidos (a la izquierda del MSB del registro SCID).
Cuando se trabaja a 9 bits de datos, se debe leer el bit R8 antes de leer el registro SCID
porque la lectura del SCID completa la limpieza automática de los flags que permiten la
nueva escritura de datos en R8 y SCID.

T8:

De igual forma que en el caso de R8, el bit T8 funciona como un 9eno Bit a transmitir y
es el bit más significativo de los 9 bits a transmitir (a la izquierda del MSB del registro
SCID). Cuando se está escribiendo un dato de 9 Bits, el valor entero de 9 Bits se
transfiere al shift register despues de que el SCID sea escrito.

TXDIR:

Cuando el módulo SCI es configurado para funcionar en modo “Single Wire” de una
transmisión Half Duplex, el bit TXDIR determina la dirección de los datos en el pin
físico TxD.

TXINV:

El bit TXINV (Transmit Data Inversión) invierte la polaridad del dato transmitido.
Este bit es muy útil para los sistemas que utilizan circuitos de interface con polaridad
invertida.

ORIE / NEIE / FEIE / PEIE:

Los últimos 4 bits del registro SCIxC3 son los encargados de habilitar la generación de
interrupciones cuando se produce algunos de los errores de comunicación indicados por
los flags correspondientes en el registro de estado SCIxS1.
Cuando alguno de ellos es puesto a 1, se habilita la generación de interrupción
correspondiente al bit configurado.

SCI Status Registers (Registros de estado del SCI).

Registro de estado 1 – SCIxS1.

Registro de Estado 2 – SCIxS2.

Los registros de estados SCIxS1 y SCIxS2 son de solo lectura con la excepción del
bit BRK13.

Todos los flags de estado pueden ser limpiados por unas secuencias del programa que
no involucran la escritura sobre ellos.

SCIxS1.

TDRE:

El flag TDRE (Transmit Data Register Empty) se pone en “1” cuando el MCU sale del
estado del reset y cuando el dato a transmitir ha sido transferido al shift register de
transmisión y está esperando un nuevo carácter.

TC:

El flag TC (Transmission Complete) se pone en “1” cuando el MCU sale del estado del
reset y cuando una transmisión ha sido completada y no está siendo transmitido ningún
carácter de dato / break / idle.

RDRF:

El flag RDRF (Receive Data Register Full) se pone a “1” cuando un carácter ha sido
transferido desde el shif register de recepción al SCID. Para limpiar este flag, se
necesita leer el registro SCIxS1 con el flag RDRF = 1 y luego leer el registro de datos
SCID.

IDLE:

El flag IDLE (línea de RxD IDLE) se pone a “1” cuando la línea RxD se mantienen en
“1” durante todo el tiempo de un carácter despues del tiempo de actividad.

OR:

El flag OR (Overrun) se pone a “1” cuando un nuevo carácter serial está listo para ser
transferido al registro de datos (SCID) pero un carácter recibido previamente no ha sido
leído desde el registro de datos SCID. En este caso, el nuevo carácter se perderá.

NF:

El flag NF (Noise Flag) se pone a “1” cuando el receptor, gracias a su técnica avanzada
de muestreo” considera que algún bit recibido no corresponde con el resto de las
muestras y se genera un error por ruido. Este bit se pone a “1” al mismo tiempo que se
pone el bit RDRF.

FE:

Si el receptor detecta un “0” lógico donde se esperaba un bit de Stop, el bit FE (Framing
Error) se pone a “1” al mismo tiempo que lo hace el flag RDRF. Esto nos sugiere que el
receptor no ha sido alineado apropiadamente a la trama del carácter.

PF:

El flag PF (Parity error Flag) se pone a “1” al mismo tiempo que el flag RDRF cuando
se habilita el control de paridad y existe un error de paridad en el carácter recibido.

Para limpiar algunos de los flags del registro de estado SCIxS1 solo hay que leer dicho
registro con el flag correspondiente en “1” y luego leer el registro de datos SCID.

SCIxS2.

BRK13:

Este bit se usa para determinar el largo del carácter de BREAK. Si BRK13 = 0, el
carácter de break es de 10 u 11 bits de longitud. Si BRK13 = 1, será de 13 o 14 bits de
longitud.

RAF:

El flag RAF (Receiver Active Flag) se pone a “1” cuando el receptor del SCI detecta el
comienzo de un Start bit y se limpia en forma automática cuando el receptor detecta la
línea IDLE del RxD. Este flag se puede usar para chequear cuando un carácter esta
si
  • Links de descarga
http://lwp-l.com/pdf11473

Comentarios de: Capítulo 6/14 - Módulo Serial Asincrónico de Comunicación - SCI - Serial Comunication Interface - Curso sobre Microcontroladores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad