Академический Документы
Профессиональный Документы
Культура Документы
COMUNICACIÓN SERIE
PARA SISTEMAS BASADOS EN MICROCONTROLADORES PIC
1
Microcontroladores PIC ©ATE-Universidad de Oviedo
Fernando Nuño García
Comunicación Serie: SCI Síncrono
Modo MAESTRO:
CSRC = 1 (TXSTA<7>)
Semi dúplex
EMITIENDO uno de los RECIBIENDO
TXEN=1 (TXSTA<5>) 2 estados CREN y/o SREN (RCSTA<5:4>)
(no simultáneos) DT
DT
MAESTRO MAESTRO
EMISOR CK RECEPTOR CK
Modo ESCLAVO:
CSRC = 0 (TXSTA<7>)
Semi dúplex
EMITIENDO uno de los RECIBIENDO
TXEN=1 (TXSTA<5>) 2 estados CREN = 1 (RCSTA<4>)
DT (no simultáneos) DT
ESCLAVO ESCLAVO
EMISOR CK RECEPTOR CK
Registro TXSTA
4
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
DT
CK
Control
• TSR no se “carga” hasta que no se haya enviado el último bit de una carga previa,
en cuanto este bit es enviado, TSR se carga con un nuevo dato almacenado en TXREG
(si es que ya estaba disponible)
• Una vez que TXREG carga a TSR, TXREG queda vacío y el flag TXIF=1
(posible interrupción si se activaron las máscaras),
TXIF=0 cuando TXREG vuelva a estar ocupado
(OJO: TXIF es de sólo lectura y no se puede poner a 0 por software)
• TRMT es bit de sólo lectura e indica estado de TSR (a 1 si TSR vacío y 0 si lleno)
no existe ninguna interrupción asociada el estado de este bit
6
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
(los bits “salen” en los flancos de subida de CK y estarán estables en flancos de bajada)
7
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
• Este bit junto con CREN y/o SREN define si la línea de datos es de transmisión
(TXEN=1) o de recepción (CREN=1 recepción continua, SREN=1 recepción simple).
Si están activos simultáneamente, prevalece recepción sobre transmisión
•Si TXEN se pone a cero durante una transmisión, ésta se interrumpe y se resetea
el bloque de transmisión
• Si TXEN está a cero, y no está activa la recepción (CREN=0, SREN=0), las líneas
DT y CK se sitúan en un estado de alta impedancia respecto a los pines del PORTC
(DT y CK no salen al exterior)
9
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
Registros Asociados
con Transmisión Síncrona
en Modo Maestro
11
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
CK
Control SREN SREN: para recibir sólo un dato
CREN: para recepción continua de datos
CREN
b8
DT
No hay bits
de START
ni STOP
12
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
8 periodos de reloj
13
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
• Pueden estar dos datos en el buffer y recibiéndose un tercer dato en RSR, pero
si se completa el tercer byte con RCREG doble lleno, se pierde RSR y se da error
de overrun (OERR=1). Se podrían leer los dos datos de RCREG pero se debe eliminar
el error para desbloquear pasos de RSR a RCEG.
¿Cómo? -> CREN=0 -> OERR=0 ¡ OERR = 1 !
Se completa Se completa Se completa Bloqueo
Dato1 Dato2 Dato3 RSR->RCREG
14
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
15
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
Registros Asociados
con Recepción Síncrona
en Modo Maestro
16
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
• En Modo Esclavo, la señal de reloj es una entrada externa por el pin CK,
podría transmitir o recibir incluso en modo SLEEP
DT
CK
17
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
•Se podrían cargar dos datos en TXREG, el primero pasaría a TSR y el segundo
quedaría a la “espera” en TXREG. Podriamos mandar a modo de bajo consumo (SLEEP)
al micro. En cuanto se haya enviado el primer dato, TXREG le “pasa” el segundo a TSR
y queda vacío TXREG, provocando TXIF=1 (pudiendo despertarse el microcontrolador
para que sitúe el siguiente dato en TXREG)
Cargamos
Dato1 Despierta
Dato2
enviado y cargamos
y SLEEP
Dato3
TXREG: vacío Dato2 vacío Dato3
18
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
19
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
Registros Asociados
con la Transmisión Síncrona
en Modo Esclavo
20
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
CK
CREN
b8
21
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
• Tras entrar el último bit en RSR, el dato completo se transfiere a RCREG (si está
vacío), el flag RCIF (solo lectura) se pone a 1 y puede generar una interrupción
• RCREG es un doble buffer de tipo FIFO, cuando esté vacío RCIF=0 (hardware)
22
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
23
Microcontroladores PIC ©ATE-Universidad de Oviedo
Comunicación Serie: SCI Síncrono
Registros Asociados
con Recepción Síncrona
en Modo Esclavo
24
Microcontroladores PIC ©ATE-Universidad de Oviedo