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

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

Capítulo 6/15 - 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
536 visualizaciones desde el 31 de Mayo del 2018
765,3 KB
7 paginas
Creado hace 12a (18/03/2012)
Curso sobre Microcontroladores
Familia HC9S08 de Freescale

Por Ing. Daniel Di Lella – EduDevices – www.edudevices.com.ar
e-mail: [email protected]

Capítulo 6.-

Módulo Serial Asincrónico de Comunicación
- SCI - Serial Comunication Interface.
Continuación ...
“Prácticas con la SCI”.
Introducción

Como siempre, utilizaremos el sistema didáctico “EDUKIT08” diseñado para hacer
más sencilla la tarea de aprendizaje en el mundo de los MCUs como ya lo han
comprobado cientos de usuarios de este sistema.
Siendo esta la primera práctica que realizamos con los módulos SCI, tratamos de que
sea lo mas sencilla posible. Nada más sencillo que un eco. El dato recibido en forma
serie es devuelto de la misma manera usando el transmisor del módulo SCI 1.
Además, el LED 1 nos servirá de indicador de bytes recibidos.

Configuración del módulo SCI

Del mismo modo que se hace con el resto de los periféricos, usaremos el Processor
Expert para que nos genere el código de inicialización. Disponemos de 2 módulos de
comunicación serie en el microcontrolador MC9S08AW60 así que explicaremos el
módulo SCI 1 y el otro será idéntico en configuración y uso.

Desde la pantalla del Processor Expert debe hacerse cliq en el módulo SCI 1:

Para que se nos despliegue:

Existen muchos parámetros, cada cual nos abre múltiples posibilidades con este
módulo.
Nuestra intención es establecer una comunicación serie asincrónica de 9600, N, 8, 1.
Así que resaltamos en la figura anterior las principales características configuradas:

• Baud rate divisor: Se trata de la tasa de división de la frecuencia de bus, a partir
de la cual obtenemos el reloj que determina el baud rate. Por fortuna no debemos
realizar cálculo alguno para conocer el baud rate, pues este cálculo lo realiza el
Processor Expert y nos lo presenta en el item siguiente. Gracias a ello podemos
aplicar el método de prueba y error hasta dar con la tasa de división que nos
proporcione el baud rate mas cercano a lo deseado.

• Data Format: Estableceremos una comunicación a 8 Bits. La otra posibilidad es

una comunicación a 9 Bits, que trataremos en las prácticas de RS-422.

• Parity: En este caso desarrollamos una comunicación sin Bit de paridad. Las otras

posibilidades son paridad par, o impar.

• Transmitter output: La salida del transmisor puede ser invertida o no, en su

estado lógico. Como se trata de una comunicación serie asincrónica simple
adoptamos una salida no invertida. La inversión de polaridad puede ser muy útil
para “atacar” distintos dispositivos de interface con el medio físico (RS-232C /
RS422 / RS485 ...etc.)

• RxD pin allocation: Al ser puesto como Enabled impide que otro periférico pueda
controlar este periférico del microcontrolador, con la consecuente “contención” del
pin. El pin RxD es el asignado al puerto PTE1.

• TxD pin allocation: Al ser puesto como Enabled impide que otro periférico pueda
controlar este periférico del microcontrolador, con la consecuente “contención” del
pin. El pin TxD es el asignado al puerto PTE0.

• Transmit interrupt: No deseamos que se produzcan interrupciones por transmisión

de un byte. Por ello dejamos este item como Disabled.

• Transmision complete interrupt: Siguiendo los lineamientos del punto anterior

también este item se configura como Disabled. En particular la interrupción anterior
ocurre cuando el buffer de transmisión está disponible para recibir un nuevo byte.
En cambio esta interrupción se produce al ser enviado el último bit del shift register
del transmisor (Buffer).

En la ventana de configuración de la SCI 1 no se alcanzan a apreciar algunos ítems.

Ellos son:

• Receive interrupt: Habilitamos la interrupción por recepción de bytes en forma

serie en el módulo SCI 1. La ISR asociada a este evento se llama isrVsci1rx.

• Error interrupt: En esta categoría se listan un conjunto de eventos vinculados a

alguna condición de error durante la recepción: framing error, noise error
overrun error, parity error. Ninguno de ellos se toma en cuenta como fuente de
interrupción.

• Initialization: Tanto el transmisor como el receptor figuran como Enabled, por lo

que luego de retornar de la subrutina MCU_init, el microcontroladore tendrá al
receptor y al transmisor del módulo SCI 1 disponibles.

Con esto queda detallada la configuración del módulo SCI 1. Pasaremos ahora a
analizar el programa.

Descripción del programa

La rutina principal del programa es en extremo simple:

Luego de inicializar los periféricos del microcontrolador, la ejecución del programa
queda encerrada en un ciclo sin salida. Su sencillez se debe a que la actividad del
programa reside en la ISR (Interrupt Service Rutine) en la que encontramos:

La primera tarea consiste en atender la interrupción. Se logra ello en primer lugar
leyendo el registro SCI1S1 y luego el registro SCI1D (la lectura de un registro
deestados y luego de un registro de datos es muy común en los MCUs Freescale ya que
de esta forma garantizan que el programa del usuario “atienda” en forma “efectiva” el
pedido de una interupción en curso). Incidentalmente el registro SCI1D contiene el byte
recibido que provocó la interrupción. Tenemos así en el acumulador el byte que llegó
en forma serie.

Dado que debemos hacer un eco, lo enviamos por el mismo módulo, para lo cual
descargamos el acumulador en el registro SCI1D. El mismo registro empleado para
leer los datos recibidos es el usado para enviar datos. Este doble comportamiento de
transmisor y receptor es análogo al de la familia HC908. Como vimos en artículos
anteriores, esto se denomina sistema de “Doble Bufer”.

Luego de hacer eco del dato recibido, cambiamso el estado del LED 1, sirviendo de
indicación visual para el usuario, de la actividad en el módulo SCI 1. Como último paso
nos aseguramos que el transmisor esté listo para enviar otro byte, de modo que no se
intente una segunda transmisión mientras existe una en curso.

Con ello finaliza la ISR y se retorna al programa principal con la instrucción RTI.

Modo de correr el programa
El puerto serie 1 del Edukit debe conectarse a una computadora para probar esta
práctica.
Desde una computadora se deberán enviar datos al Edukit para lo cual lo mas
adecuado es emplear una Terminal serie como son los programas Hyperterminal,
Realterminal, Interm o similares. La comunicación debe configurarse como
9600, N, 8, 1.

Respecto a la emulación en tiempo real, la línea sugerida donde colocar un breakpoint
es la primera de la ISR:

Al correr el programa y enviar un dato desde la PC deberá producirse la interrupción
por recepción en la SCI 1; la ejecución del programa se detendrá en la línea anterior.
Ahora corremos el programa instrucción por instrucción y observaremos como el
acumulador se carga con el byte recibido.

También comprobaremos que el LED 1 cambia de estado y el byte es devuelto a la
computadora. En el programa Terminal que está corriendo en la PC deberá llegar este
byte. A continuación mostramos una pantalla de ejemplo:

Continuará .......

Nota de Redacción: El lector puede descargar este capítulo y capítulos anteriores del
curso desde la sección “Artículos” (Curso_HC9S08) en el sitio web de EduDevices
(www.edudevices.com.ar )
  • Links de descarga
http://lwp-l.com/pdf11474

Comentarios de: Capítulo 6/15 - 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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad