Comunicación serie (SCI)
Y Teclado
Práctica 5 CDM - 2010
01/10/2015
Autores: Jorge Osio
1
Subrutina serial Tx
Descripción de la comunicación serial
Para el Kit EVALQTY
01/10/2015
Autor: Jorge Osio
2
Terminologías y Conceptos
 Operación Half-Duplex.

Formato de Transmisión.
 Detección de error de Trama.
Transmisión Half-Duplex

Solo transmite un nodo a la vez.
 El MCU no puede transmitir mientras
está recibiendo, ni recibir mientras
transmite.
Formato de transmisión
Formato estándar de transmisión non-return-to-zero (NRZ)
Formato 8-N-1 (8 bits de datos, sin bit de paridad, un bit de
parada)
tp = periodo de un bit = 1/ tasa de baudio
Detección de Error de Trama
El bit de parada está definido como un uno
lógico, si el bit de parada recibido es un cero,
quiere decir que ocurrió un error de Trama.
Descripción de la Comunicación
Serie en el MCU.

Descripción de las subrutinas.
 Transmisión.
 Aplicación.
Descripción de las subrutinas
•
•
Estás subrutinas se deberán hacer para
una frecuencia de Bus de 2,45 MHz y un
periodo T=0,406 useg.
La rutina de comunicación se dividirá en
tres subrutinas; inicializa_cristal,
Saca_caracter, delay
Transmisión
Características principales:
1. Se envía el bit de inicio.
2. Se cuenta el tiempo equivalente a 1 bit
de datos y se envían el primer bit,
3. Luego se cuenta nuevamente y se envía
el segundo, hasta enviar los 8 bits.
4. Por último se pone el pin TDX a 1 (bit
de parada).
Transmisión
Formato de transmisión:


El formato de transmisión es estándar NRZ
n,8,1 posee una estructura configurable.
El orden de los bits es el siguiente:
- bit START
- bit 0 – bit 1 – bit 2 – bit 3 – bit 4 – bit 5 – bit 6 – bit 7
- bit STOP.
Características de un bit de Tx
01/10/2015
Autores: Jorge Osio
11
Transmisión
Implementación en el Kit
Configuración de HW





Configuración de Hiperterminal
Pin PTA0 como Tx serial
Configuración de jumpers en
modo usuario 1. JP2(1-2), JP3
(2-3), JP4(2-3), JP5(1-2), JP6(23), JP7(1-2) y JP8(2-3)
Configuración
de
oscilador
externo de 9,8304 Mhz
Para transmitir un “0” poner el
PTA0 como salida y e cero.
Para transmitir un 1 poner el
PTA0 como entrada.
01/10/2015

Se debe configurar con un bit
de inicio, 8 bits de datos y uno
de parada.
 Sin paridad y sin control de
flujo
 Cuando
se
inicie
la
comunicación se encenderá el
led amarillo del kit lo que
indica que la placa está
alimentada.
 Los datos se muestran en
Autor: Jorge Osio ASCII
13
Conclusiones
El objetivo de esta Aplicación es
realizar un Modulo SCI “virtual” en
microcontroladores de muy bajo
costo que no poseen un módulo “real”.
Referencias


Nota de Aplicación NA_SyHDe - SyHDe, Soft y Hard
Desarrollos.
Nota de Aplicación AN1240 – Motorola Semiconductor
by Scott George, CSIC MCU Product Engineering.
Implementación del Teclado
Implementación del Teclado
mediante el Kit EvalQTY
01/10/2015
Autor: Jorge Osio
16
Conexiones de Hardware
01/10/2015
Autor: Jorge Osio
17
Configuración del Puerto B

Se deberán configurar 4 pines como entrada interrumpibles KBI
 Se deberán configurar 4 pines como salida normalmente en alto
 Una subrutina que ponga a ‘0’ uno de los pines de salida durante
cierto tiempo, (ej. 100ms) y verifique el estado de los pines de
entrada.
 Cuando se verifique un ‘0’ en una entrada y una salida se
deberá ir a la tabla para determinar que tecla se presionó
 Se deberá hacer circular el “cero” por los 4 pines de salida.
01/10/2015
Autor: Jorge Osio
18
Subrutina de retardo
void espera(int micros) {
TMOD=micros;
/*configura el lÃmite del contador*/
TSC=0x02;
/*arranca el contador con un prescaler de 4*/
while(TSC_TOF==0){ /*espera el desborde del contador*/
;
}
TSC=0x32;
/*detiene el contador y borra su cuenta*/
}
01/10/2015
Autor: Jorge Osio
19
Rutina del Teclado

interrupt void isrINT_KBI(void){ /*funcion
que atiende las interrupciones por teclado*/
//El nibble bajo del puerto B se se usa como
selector de filas
//El nibble bajo del puerto A se se usa como
detector de columnas (entradas)
01/10/2015
Autor: Jorge Osio
20
Rutina del Teclado
temp=PTA;
temp=temp & 0x0f;/*se aisla
el nibble bajo del PTA*/
car=0;
for(car=0;-----;car++){
;
}
01/10/2015
temp=PTB;
temp=temp & 0x0f;
/*se aisla el nibble
bajo del PTB*/
for(;--------;------){
;
}
car=car+0x30;/*el primer
caracter del teclado es el 0
(0x30 en ASCII)*/
Autores: Jorge Osio,
21
Bibliografía

b) AN1239r1 MOTOROLA SEMICONDUCTOR
APPLICATION NOTE (HC05 MCU Keypad Decoding
Techniques Using the MC68HC705J1A).
01/10/2015
Autores: Jorge Osio, Jose Rapallini,
Federico costantino, sebastian
Ledesma
22
Descargar

(bit de parada).