Sunteți pe pagina 1din 29

PICSchool: Mdulo PIC18FXXXX

Un paso adelante. El fascinante mundo de los potentes PIC18


V 1.00 Marzo 2007

INGENIERIA DE MICROSISTEMAS PROGRAMADOS S.L.


C/ Alda. Mazarredo N 47 - 1 Dpto. 2 48009 BILBAO - BIZKAIA Tel/Fax: 94 4230651 email: info@microcontroladores.com www.microcontroladores.com

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

INDICE GENERAL TEORIA


Mediante tres temas tericos iniciales se trata de proporcionar una idea general de los dispositivos PIC18 resaltando las diferencias y aportaciones mas relevantes respecto a los dispositivos PIC12 y PIC16. En ningn caso pretendemos sustituir la informacin tcnica que facilita el fabricante en sus hojas tcnicas o Data Sheets, incluidas en el CDROM y, cuya lectura recomendamos.

TEMA 1: Resumen de la arquitectura del PIC18F2550


T1.1 OBJETIVOS T1.2 ARQUITECTURA T1.2.1 Caractersticas generales T1.2.2 Diagrama de pines T1.2.3 El oscilador T1.2.4 Control de potencia T1.2.5 El RESET T1.2.6 Organizacin de la memoria de programa T1.2.7 Organizacin de la memoria de datos T1.2.8 Los registros especiales SFR T1.2.9 Los registros de configuracin T1.2.10 El temporizador WDT T1.2.11 Arranque a dos velocidades T1.2.12 Monitor de fallos de reloj T1.2.13 Proteccin de cdigo de la memoria de programa T1-1 T1-1 T1-2 T1-3 T1-6 T1-9 T1-10 T1-14 T1-16 T1-21 T1-23 T1-24 T1-25 T1-25 T1-26

TEMA 2: Instrucciones de los PIC18FXXXX


T2.1 OBJETIVOS T2.2 FUNDAMENTOS TEORICOS T2.3 DESCRIPCION DE LOS CAMPOS DE LAS INSTRUCCIONES T2.4 FORMATO GENERAL DE LAS INSTRUCCIONES T2.4.1 Instrucciones orientadas al byte T2.4.2 Instrucciones byte a byte T2.4.3 Instrucciones orientadas al bit T2.4.4 Instrucciones inmediatas o literales T2.4.5 Instrucciones de control T2.5 SUMARIO DE LAS INSTRUCCIONES T2.6 NUEVAS INSTRUCCIONES T2.6.1 Orientadas al byte T2.6.2 Orientadas al bit T2.6.3 Instrucciones de control T2.6.4 Instrucciones inmediatas o literales T2.6.5 Instrucciones de manejo de tablas T2.7 EL MODO EXTENDIDO T2.7.1 Instrucciones extendidas T2.7.2 El direccionamiento indexado T2-1 T2-1 T2-1 T2-2 T2-2 T2-3 T2-3 T2-3 T2-3 T2-4 T2-7 T2-7 T2-8 T2-9 T2-10 T2-11 T2-11 T2-11 T2-12

i -1

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL


TEMA 3: Las interrupciones
T3.1 INTRODUCCION T3.2 LOS REGISTROS INTCON T3.2.1 El registro INTCON T3.2.2 El registro INTCON2 T3.2.3 El registro INTCON3 T3.3 LOS REGISTROS PIR T3.3.1 El registro PIR1 T3.3.2 El registro PIR2 T3.4 LOS REGISTROS PIE T3.4.1 El registro PIE1 T3.4.2 El registro PIE2 T3.5 LOS REGISTROS IPR T3.5.1 El registro IPR1 T3.5.2 El registro IPR2 T3.6 EL REGISTRO RCON T3.7 INTERRUPCIONES EXTERNAS T3.7.1 Interrupcin por las patillas INTn T7.3.2 Interrupcin por cambio de estado T3.7.3 Salvando el contexto T3-1 T3-2 T3-2 T3-2 T3-4 T3-4 T3-4 T3-5 T3-6 T3-6 T3-6 T3-7 T3-7 T3-8 T3-8 T3-9 T3-9 T3-9 T3-9

PRACTICA
Mediante las prcticas propuestas a continuacin se pretende que el usuario se familiarice con el manejo de los diferentes mdulos y perifricos que integran los dispositivos PIC18 en general y el PIC182550 en particular. Tratamos de resaltar aquellos que sean nuevos o que aporten mejoras respecto a los perifricos de las familias PIC12 y PIC16.

PRACTICA 1: Las puertas de E/S


Hace una descripcin de las lneas de E/S, sus diferentes funcionalidades, su configuracin y control. Tambin es una prctica que, a modo de tutorial, resume y explica paso a paso todo el proceso y mecnica de trabajo. 1.1 OBJETIVOS 1.2 FUNDAMENTOS TEORICOS 1.2.1 La puerta A 1.2.2 La puerta B 1.2.3 La puerta C 1.3 MATERIALES NECESARIOS 1.4 DESARROLLO DE LA PRACTICA 1.4.1 Ejem_1, El programa fuente en ensamblador 1.4.2 Ensamblando el programa fuente 1.4.3 Conectando los perifricos P1-1 P1-1 P1-2 P1-3 P1-5 P1-6 P1-6 P1-6 P1-8 P1-9

i -2

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL


1.4.4 Grabacin del dispositivo 1.4.5 Verificar el funcionamiento 1.5 TRABAJO PERSONAL 1.5.1 Ejercicio 1: Funcin NOT 1.5.2 Ejercicio 2: Calculadora 1.5.3 Ejercicio 3: Decodificador combinacional P1-9 P1-10 P1-11 P1-11 P1-11 P1-11

PRACTICA 2: Jugando con el oscilador


El sistema oscilador de los dispositivos PIC182550 en particular es probablemente el mas evolucionado de entre los dispositivos de las familias PIC12, PIC16 e incluso PIC18. Dispone de mltiples modos de configuracin y proporciona gran flexibilidad y prestaciones. 2.1 OBJETIVOS 2.2 FUNDAMENTOS TEORICOS 2.2.1 El oscilador primario 2.2.2 El oscilador secundario 2.2.3 El oscilador interno 2.3 MATERIALES NECESARIOS 2.4 DESARROLLO DE LA PRACTICA 2.4.1 Ejem_2: El oscilador primario 2.4.2 Ejem_2B: El oscilador interno 2.4.3 Ejem_2C: Conmutacin dinmica del tipo de oscilador P2-1 P2-1 P2-1 P2-3 p2-3 P2-3 P2-3 P2-4 P2-6 P2-7

PRACTICA 3: Interrupciones externas


Otra de las caractersticas mas evolucionadas de los dispositivos PIC18 en general es su potente sistema de interrupciones, entre las que cabe citar a las interrupciones externas que se aaden a las ya conocidas interrupciones provocadas por los distintos perifricos internos disponibles en los dispositivos PIC16 y PIC18. 3.1 OBJETIVOS 3.2 FUNDAMENTOS TEORICOS 3.2.1 Interrupciones por cambio de estado 3.2.2 Interrupciones por flanco 3.3 MATERIALES NECESARIOS 3.4 DESARROLLO DE LA PRACTICA 3.4.1 Ejem_3: Interrupcin por cambio de estado 3.4.2 Ejem_3B: Interrupcin con prioridad 3.4.3 Ejem_3C: Interrupcin por cambio de estado, control de un teclado matricial 3.4.4 Ejem_3D: Interrupcin por cambio de estado, control de un motor DC 3.4.5 Ejem_3E: Interrupciones externas, deteccin del sentido de giro del motor EMG30 3.5 TRABAJO PERSONAL P3-1 P3-1 P3-1 P3-1 P3-2 P3-2 P3-2 P3-3 P3-4 P3-6 P3-8 P3-10

i -3

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL


PRACTICA 4: Los Timers o Temporizadores
Los dispositivos PIC18 disponen de 4 temporizadores. Los Timer 0, 1 y 2 son similares al de los dispositivos PIC16 excepto que el Timer 0 puede trabajar como un Timer de 8 o 16 bits. Se aade un nuevo Timer 3 de 16 bits. 4.1 OBJETIVOS 4.2 FUNDAMENTOS TEORICOS 4.2.1 El mdulo Timer 0 (TMR0) 4.2.2 El mdulo Timer 1 (TMR1) 4.2.3 El mdulo Timer 2 (TMR2) 4.2.4 El mdulo Timer 3 (TMR3) 4.3 MATERIALES NECESARIOS 4.4 DESARROLLO DE LA PRACTICA 4.4.1 Ejem_4: El TMR0 en el modo temporizador 4.4.2 Ejem_4B: El TMR0 en el modo contador 4.4.3 Ejem_4C: El TMR0, generacin de nmeros aleatorios 4.4.4 Ejem_4D: El TMR1, segundero 4.4.5 Ejem_4E: El TMR0 y el TMR1, sencillo frecuencmetro 4.4.6 Ejem_4F: El TMR2 4.4.7 Ejem_4G: Deteccin del estado del motor EMG30 4.4.8 Ejem_4H: Control de desplazamiento del motor EMG30 4.5 TRABAJO PERSONAL 4.5.1 Dado electrnico 4.5.2 Cronmetro digital 4.5.3 Reloj digital 4.5.4 Control de secuencias P4-1 P4-1 P4-1 P4-3 P4-6 P4-8 P4-10 P4-10 P4-10 P4-11 P4-12 P4-13 P4-14 P4-15 P4-16 P4-17 P4-19 P4-19 P4-19 P4-19 P4-19

PRACTICA 5: Los mdulos CCP


Se tratan de los mdulos capaces de capturar y/o comparar seales o eventos externos as como generar seales PWM. Son similares a los disponibles en los dispositivos PIC16 excepto que, en los dispositivos PIC18 al disponer de un nuevo Timer 3, la independencia entre ambos mdulos es mas relevante. 5.1 OBJETIVOS 5.2 FUNDAMENTOS TEORICOS 5.2.1 Configuracin de los mdulos CCP 5.2.2 Modo captura 5.2.3 Modo de comparacin 5.2.4 El modo PWM 5.3 MATERIALES NECESARIOS 5.4 DESARROLLO DE LA PRACTICA 5.4.1 Ejem_5: Modo captura, midiendo los periodos de una seal externa 5.4.2 Ejem_5B: Modo captura, midiendo la duracin de la anchura de un pulso 5.4.3 Ejem_5C: Modo captura, midiendo el tiempo transcurrido entre dos pulsos 5.4.4 Ejem_5D: Modo comparacin, contador de pulsos externos 5.4.5 Ejem_5E: Modo comparacin, control del desplazamiento del motor EMG30 5.4.6 Ejem_5F: Modo PWM, generacin de una seal PWM 5.4.7 Ejem_5G: Modo PWM, regulando la potencia aplicada al motor 5.4.8 Ejem_5H: Modo PWM, regulacin/visualizacin de la potencia aplicada al motor P5-1 P5-1 P5-1 P5-2 P5-3 P5-5 P5-6 P5-6 P5-7 P5-8 P5-9 P5-9 P5-10 P5-12 P5-13 P5-14

i -4

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL


5.4.9 Ejem_5I: Modos PWM y Comparacin, control progresivo de la potencia aplicada 5.4.10 Ejem_5J: Modos PWM y captura, clculo de la velocidad de giro del motor 5.5 TRABAJO PERSONAL P5-15 P5-16 P5-18

PRACTICA 6: El EUSART
Se trata de la versin mejorada del USART disponible en los dispositivos PIC12 y PIC16 y ofrece nuevas caractersticas y prestaciones. 6.1 OBJETIVOS 6.2 FUNDAMENTOS TEORICOS 6.2.1 Generador de baudios (BRG) 6.2.2 Auto deteccin de baudios 6.2.3 El EUSART en el modo asncrono 6.2.4 El EUSART en el modo master sncrono 6.2.5 El EUSART en el modo esclavo sncrono 6.3 MATERIALES NECESARIOS 6.4 DESARROLLO DE LA PRACTICA 6.4.1 Ejem_6: Sencillo ejemplo de transmisin 6.4.2 Ejem_6B: Transmisin/Recepcin con auto deteccin de baudios 6.4.3 Ejem_6C: Transmisin de mensajes 6.4.4 Ejem_6D: Monitorizacin remota 6.4.5 Ejem_6E: Control remoto de salidas y monitorizacin 6.4.6 Ejem_6F: Recepcin y visualizacin sobre pantalla LCD 6.4.7 Ejem_6G: Midiendo con el sensor ultrasnico SRF02 6.4.8 Ejem_6H: El controlador de pantallas LCD SYM20AA 6.4.9 Ejem_6I: El controlador de pantallas SYM20, monitorizando entradas 6.5 TRABAJO PERSONAL 6.5.1 Control remoto de un motor 6.5.2 Deteccin de obstculos P6-1 P6-1 P6-4 P6-4 P6-5 P6-8 P6-9 P6-11 P6-11 P6-11 P6-12 P6-12 P6-13 P6-14 P6-14 P6-15 P6-17 P6-18 P6-19 P6-19 P6-20

PRACTICA 7: El mdulo MSSP


El mdulo MSSP de los dispositivos PIC18 se emplean para realizar transferencia de datos entre otros dispositivos segn los protocolos SPI e I2C. Disponen de soporte Master 7.1 OBJETIVOS 7.2 FUNDAMENTOS TEORICOS 7.2.1 El modo SPI 7.2.2 El modo I2C 7.3 MATERIALES NECESARIOS 7.4 DESARROLLO DE LA PRACTICA 7.4.1 Ejem_7: Midiendo distancias con el sensor SRF02 7.4.2 Ejem_7B: Reloj/calendario en tiempo real con el PCF8583 P7-1 P7-1 P7-1 P7-4 P7-9 P7-9 P7-9 P7-11

i -5

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL


7.5 TRABAJO PERSONAL 7.5.1 Control de posicionamiento 7.5.2 Reloj/calendario 7.5.3 Contador P7-13 P7-13 P7-14 P7-14

PRACTICA 8: El conversor A/D


Se trata del clsico mdulo conversor analgico digital (ADC) de hasta 13 canales analgicos de entrada y con una resolucin de 10 bits. Se diferencia respecto al mdulo ADC de los dispositivos PIC12 y PC16 en la forma de seleccionar las entradas analgicas as como en los tiempos de conversin. 8.1 OBJETIVOS 8.2 FUNDAMENTOS TEORICOS 8.3 MATERIALES NECESARIOS 8.4 DESARROLLO DE LA PRACTICA 8.4.1 Ejem_8: Voltmetro digital 8.4.2 Ejem_8B: Regulacin PWM mediante una variable analgica 8.4.3 Ejem_8C: Termmetro digital 8.4.4 Ejem_8D: Multiplexando entradas analgicas 8.5 TRABAJO PERSONAL 8.5.1 Control de temperatura ambiente 8.5.2 Control de alumbrado P8-1 P8-1 P8-6 P8-6 P8-6 P8-8 P8-10 P8-12 P8-13 P8-13 P8-13

PRACTICA 9: Mdulo CVref y Mdulo comparador


Dos nuevos mdulos integrado en el dispositivo PIC18F2550 que permiten el diseo y realizacin de aplicaciones con control analgico de seales reduciendo al mximo el nmero de componentes externos necesarios. 9.1 OBJETIVOS 9.2 DESARROLLO DE LA PRACTICA 9.2.1 Mdulo CVref 9.2.2 Mdulo comparador 9.3 MATERIALES NECESARIOS 9.4 DESARROLLO DE LA PRACTICA 9.4.1 Ejem_9: El mdulo CVref, generando una tensin analgica 9.4.2 Ejem_9B: El mdulo CVref, generando una seal en diente de sierra 9.4.3 Ejem_9C: El mdulo Comparador, Comparando 2 tensiones analgicas con Vref comn 9.4.4 Ejem_9D: El mdulo Comparador, Comparacin con Vref variable P9-1 P9-1 P9-1 P9-3 P9-6 P9-6 P9-6 P9-7 P9-9 P9-10

i -6

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

RELACION DE MATERIALES
Todas las prcticas propuestas se realizan sobre el laboratorio PICSchool. A continuacin se presenta la relacin de materiales y componentes necesarios para su implementacin. El kit completo (excepto el laboratorio PICSchool) se puede adquirir en Ingeniera de Microsistemas Programados S.L. con la referencia MODULO18F 2 Resistencias de 2K2 W y 5% 2 Resistencias de 4K7 W y 5% 1 Resistencia de 10K W y 5% 1 Condensador cermico de 10pF 2 Condensadores cermicos de 27pF 1 Cristal de cuarzo de 32.768 KHz 1 Microcontrolador PIC18F2550 1 Controlador de LCDs SYM20AA 1 Reloj/Calendario en tiempo real PCF8583 1 Foto transistor BPW40 1 Sensor de temperatura LM35DZ 1 Medidor ultrasnico de distancias SRF02 1 Motor CC con reductora 30:1 y codificadores de cuadratura EMG30 Cable rgido de conexin de 0.8mm CDROM con manual y ejemplos resueltos

BIBLIOGRAFIA RECOMENDADA
A continuacin damos una lista de libros y manuales cuya lectura recomendamos: Microcontroladores PIC, diseo prctico de aplicaciones, 1 parte. Ed. Mac Graw-Hill Microcontroladores PIC, diseo prctico de aplicaciones, 2 parte. Ed. Mac Graw-Hill Manual de usuario del laboraorio PICSchool. Ingeniera de Microsistemas Programados MPASM Users guide. Microchip MPLAB Users guide. Microchip C Compiler Reference Manual. Custom Computer Services (CCS) PI18F2550 Data Sheet. Microchip Medidor ultrasnico SRF02 Controlador de pantallas LCD SYM20AA PCF8583 Data Sheet. PHilips

SITIOS DE INTERES
Algunas direcciones de inters en Internet donde se puede descargar herramientas software, versiones demo, data sheets, etc. todo ello debidamente actualizado. Ingeniera de Microsistemas Programados. Herramientas hardware y software para el desarrollo de aplicaciones basadas en microcontroladores PIC www.microcontroladores.com Microchip. Todo sobre PICs, informacin tcnica y herramientas software www.microchip.com Custom Computer Services. Compilador de lenguaje C www.ccsinfo.com Devantech Ltd. Sensores y accesorios www.robot-electronics.co.uk

i -7

Mdulo de entrenamiento para los PIC18FXXXX INDICE GENERAL

i -8

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART

PRACTICA 6:El EUSART


6.1 OBJETIVOS Mostrar el funcionamiento del mdulo EUSART (Transmisor/Receptor Universal Sncrono/Asncrono Mejorado) disponible en algunos dispositivos de la familia PIC18 en general y en el PIC18F2550 en particular. A este mdulo tambin se le conoce como Interface de comunicaciones Serie (SCI). Se puede configurar un sistema de comunicaciones Full-Duplex asncrono que permite la transferencia de informacin entre terminales de datos, PCs, etc... Tambin se puede configurar como un sistema Half-Duplex sncrono para comunicar con dispositivos perifricos tales como conversores A/D, D/A, memorias serie, etc.. Frente a los clsicos USART de las familias PIC16, los mdulos EUSART (USART mejorada) implementan caractersticas adicionales como la deteccin automtica de baudios, el Wake-Up (despertar) automtico al recibir la seal Sync o bien la transmisin del carcter Break de 12 bits, lo que permite su empleo en sistemas de redes de interconexin local (bus LIN). 6.2 FUNDAMENTOS TEORICOS El EUSART puede configurarse en los siguientes modos de trabajo: Modo asncrono en Full-Duplex con calibracin automtica de baudios, transmisin del carcter Break de 12 bits y Wake-Up automtico al recibir la seal Sync Modo Master sncrono (Half-Duplex) con polaridad del reloj seleccionable. Modo Slave (esclavo) sncrono (Half-Duplex) con polaridad de reloj seleccionable.

Las patillas del EUSART se corresponden con RC6/TX/CK y RC7/RX/DT/SDO y se deben configurar, mediante TRISC, como entradas. El propio EUSART se encarga de reconfigurar las patillas como entradas o salidas segn corresponda en cada momento. El control y el estado de la transmisin se realiza mediante el registro TXSTA y se muestra en la figura 6-1.

Bit 7

Bit 6

CSRC: Seleccin de la fuente de reloj Modo Asncrono No Usado Modo Sncrono 1 = Modo Master (el reloj se genera internamente desde el BRG) 0 = Modo Slave (Reloj externo procedente del Master) TX9: Activar transmisin del 9 bit 1 = Transmisin de 9 bits 0 = Transmisin de 8 bits

P6 -1

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Bit 5 Bit 4 Bit 3 TXEN: Activacin del transmisor 1 = Transmisor ON 0 = Transmisor OFF SYNC: Seleccin de modo del EUSART 1 = Modo sncrono 0 = Modo asncrono SENDB: Enviar bit del carcter Break Modo asncrono 1 = Enva el carcter Break en la en la siguiente transmisin (borrado por hardware) 0 = Se ha completado la transmisin del carcter Break Modo sncrono No Usado BRGH: Bit de seleccin para baudios en rango alto Modo asncrono 1 = Alta velocidad 0 = Baja velocidad Modo sncrono No Usado TRMT: Bit de estado del registro de desplazamiento del transmisor (TSR) 1 = TSR vaco 0 = TSR lleno TX9D: 9 bit del dato a transmitir Se puede emplear como bit de datos, direccin o bit de paridad

Bit 2

Bit 1 Bit 0

El control y el estado de la recepcin se realiza mediante el registro RCSTA y se muestra en la figura 6-2.

Bit 7 Bit 6 Bit 5

Bit 4

Bit 3

SPEN: Activacin de la puerta serie 1 = Puerta serie ON (configura las patillas RX/DT y TX/CK como lneas serie) 0 = Puerta serie OFF RX9: Activar la r5ecepcin de 9 bits 1 = Recepcin de 9 bits 0 = Recepcin de 8 bits SREN: Activacin de recepcin simple Modo asncrono No Usado Modo Sncrono 1 = Activa recepcin simple (se borra tras completar la recepcin) 0 = Desactiva recepcin simple CREN: Recepcin continua Modo asncrono 1 = Activa la recepcin 0 = Desactiva la recepcin Modo sncrono 1 = Activa recepcin continua hasta que se borre el bit CREN 0 = desactiva recepcin continua ADDEN: Deteccin de direccin Modo asncrono 1 = Activa deteccin de direccin 0 = Desactiva deteccin de direccin Modo sncrono No Usado

P6 -2

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Bit 2 Bit 1 Bit 0 FERR: Error de trama 1 = Error de trama (se actualiza al leer RCREG al recibir el siguiente byte vlido) 0 = No hay error de trama OERR: Error de sobrepasamiento 1 = Error de sobrepasamiento (se borra al borrar el bit CREN) 0 = No hay error RX9D: 9 bit de datos recibido Puedes ser un bit de datos, direccin o de paridad

El sistema de generacin de baudios lo establece el registro BAUDCON mostrado en la figura 6-3.

Bit 7 Bit 6 Bit 5

Bit 4

Bit 3 Bit 1

Bit 0

ABDOVF: Desbordamiento durante la adquisicin automtica de los baudios 1 = Ha habido desbordamiento (se debe borrar por software) 0 = No hay desbordamiento. Adquisicin automtica de baudios correcta RCIDL: Estado del receptor 1 = El receptor est en estado idle de bajo consumo 0 = El receptor est activado RXDTP: Polaridad de los datos recibidos Modo asncrono 1 = Los datos recibidos son invertidos 0 = Los datos recibidos no son invertidos Modo sncrono 1 = La seal de reloj es invertida 0 = La seal de reloj no es invertida TXCKP: Polaridad de los datos transmitidos Modo asncrono 1 = Los datos transmitidos son invertidos 0 = Los datos transmitidos no son invertidos Modo sncrono 1 = La seal de reloj es invertida 0 = La seal de reloj no es invertida BRG16: Tamao del registro generador de baudios (BRG) 1 = BRG de 16 bits (SPBRGH y SPBRG) 0 = BRG de 8 bits (SPBRG) WUE: Activacin del Wake-Up Modo asncrono 1 = El EUSART interrumpe cuando se detecta un flanco descendente por el pin RX 0 = El EUSART no detecta flancos en RX Modo sncrono No Usado ABDEN: Activacin del sistema de auto deteccin de baudios Modo asncrono 1 = Activa el sistema. Espera la recepcin del byte 0x55 de sincronismo. Se borra automticamente 0 = Auto deteccin desconectada o completada Modo sncrono No Usado

P6 -3

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


6.2.1 Generador de Baudios (BRG) Es el sistema que permite establecer la velocidad (bits/seg) a la que se realiza la transferencia de datos. Se basa en un registro de 8 bits (SPBRG) o de 16 bits (SPBRGH:SPBRG) en el que se carga un valor gracias al cul se establecen los baudios. La siguiente tabla resume las frmulas que permiten determinar la velocidad de la transferencia en diferentes modos y configuraciones. El valor n representa el valor a cargar en esos registros. Bits de configuracin SYNC BRG16 BRGH 0 0 0 0 0 1 0 1 0 0 1 1 1 0 X 1 1 X Modo del EUSART/BRG Asncrono / 8 bits Asncrono / 8 bits Asncrono / 16 bits Asncrono / 16 bits Sncrono / 8 bits Sncrono / 16 bits Frmula para calcular los baudios Fosc/[64(n+1)] Fosc/[16(n+1)] Fosc/[4(n+1)]

Ejemplo para calcular el valor n para una frecuencia Fosc de 16MHz, 9600 baudios de velocidad deseada, modo asncrono y BRG de 8 bits: Baudios = Fosc/[(64(n+1)] n = [(Fosc/Baudios)/64]-1; n = [(16000000/9600)/64]-1; n = 25.042 = 25 Baudios reales = 16000000/[(64(25+1)] = 9615 Error = (Baudios reales Baudios deseados) / baudios deseados = ((9615-9600)/9600)*100 = 0.16% Los registros asociados con el generador de baudios se muestran en la tabla de la figura 6-4.

6.2.2 Auto Deteccin de baudios Una de las caractersticas mas relevantes de los mdulos EUSART propios de los dispositivos PIC18, es que disponen de un sistema capaz de detectar los baudios de forma automtica (ADB). El sistema ADB se pone en marcha cuando se activa el bit ADBEN del registro BAUDCON y se desactiva el bit WUE. En este momento se espera a recibir por la lnea RX el bit de inicio seguido del byte de sincronismo 0x55 (U) que es el mismo carcter Sync empleado en el bus LIN. El circuito generador de baudios BRG activa un contador que se va incrementando que, partiendo de 0x0000 hasta 0xFFFF, vara la frecuencia de muestreo. Cuando se reciben los 8 bits del dato 0x55 (o cinco flancos ascendentes hasta el bit de stop), el bit ADBEN se borra automticamente, se activa el flag RCIF (se provoca interrupcin si RCIE est activado) y el valor alcanzado por el contador se copia sobre los registros SPBRGH:SPBRG. Ese valor, obtenido automticamente, es el empleado en lo sucesivo para la generacin de los baudios segn las ecuaciones anteriores. El diagrama de tiempos de la figura 6-5 muestra la secuencia descrita.

P6 -4

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART

Figura 6-5. Secuencia para la auto deteccin de baudios Tal y como se muestra en la figura 6-6 puede ocurrir que, el contador del BRG se desborde sin que se hayan detectado los 5 flancos ascendentes propios del carcter Sync 0x55 (U). En este caso se activa el bit ADBOVF del registro BAUDCON indicando as el error producido al tratar de obtener los baudios de forma automtica.

Figura 6-6. Desbordamiento en la auto deteccin de baudios 6.2.3 El EUSART en el modo asncrono Se selecciona borrando el bit SYNC del registro TXSTA y emplea el formato estndar de 1 bit de inicio, 8 o 9 bits de datos (1 el bit de menos peso) y 1 bit de stop. El sistema BRG se encarga de generar los tiempos de transferencia de cada bit segn los baudios deseados y es posible invertir las seales TX y TX para su empleo con circuitos de adaptacin TTL-RS232 que tambin invierten esas seales. Las caractersticas mas relevantes son: Generador de Baudios BRG. Circuitos para el muestreo de bits Transmisor/receptor asncronos Auto Wake-Up al recibir la seal Break Transmisin del carcter Break de 12 bits Deteccin de auto baudios Polaridad seleccionable en los pines TX y RX

P6 -5

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Transmisin asncrona El esquema por bloques se presenta en la figura 6-7. El corazn lo forma el registro de desplazamiento TSR. Cuando el usuario escribe un byte sobre el registro TXREG ste se copia sobre el TSR y comienza la transmisin. El bit TXIF se pone a 1 cada vez que el TXREG est vaco (a pesar de que se puede estar transmitiendo el ltimo byte) sin embargo el bit TRMT se pone a 1 cuando la transmisin haya finalizado.

Figura 6-7. El EUSART en el modo de transmisor asncrono La secuencia para la transmisin asncrona se puede resumir a continuacin: Cargar los registros SPBRGH:SPBRG con al valor apropiado para generar los baudios deseados. Se puede emplear el sistema de auto deteccin de baudios para este cometido. Borrando el bit SYNC y activando SPEN se pone en marcha el EUSART en el modo de asncrono. Si se desea invertir la seal en la patilla TX, debemos activar el bit TXCKP Si deseamos emplear la interrupcin activamos el bit TXIE Si deseamos transmitir 9 bits de datos, se activa el bit TX9 Mediante el bit TXEN activamos el transmisor. Si se ha seleccionado una transmisin de 9 bits, el 9 bit lo cargamos en TX9D. El dato a transmitir se carga en el registro TXREG El bit TXIF inidica si el TXREG est vaco. El bit TRMT indica si hay alguna transmisin en curso. La tabla de la figura 6-8 muestra un resumen de los registros empleados en la transmisin asncrona.

Figura 6-8. Registros asociados con el transmisor asncrono del EUSART

P6 -6

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Recepcin asncrona El esquema por bloques del receptor se muestra en la figura 6-9. Consta de un registro de desplazamiento RSR que va recibiendo los bits desde RX. Cuando el RSR se llena con el dato recibido, se activa el bit RCIF y su contenido pasa al registro RCREG de donde lo puede leer la aplicacin del usuario. Si recibe un nuevo dato sin haber ledo en RCREG el previo, se produce un error por desbordamiento y se activa el bit OERR.

Figura 6-9. El circuito receptor asncrono del EUSART La secuencia necesaria para la recepcin de datos se puede resumir en los siguientes pasos: Cargar los registros SPBRGH:SPBRG con el valor apropiado segn los baudios deseados. Activar el EUSART en modo asncrono borrando el bit SYNC y activando SPEN Si los bits recibidos llegan invertidos, activar el bit RXDTP. Si la recepcin es de 9 bits, activar el bit RX9. Activar la recepcin mediante el bit RCEN. El bit RCIF se activar cuando se complete la recepcin de un dato. Se lee el registro RCSTA para obtener el 9 bit y/o verificar si se ha producido algn error. Leemos el registro RCREG con el dato recin recibido. Desactivando CREN se desactivan los errores que se hubieran producidos. La tabla de la figura 6-10 resume los registros que se emplean en la recepcin asncrona del EUSART.

Figura 6-10. Resumen de registros del receptor asncrono del EUSART

P6 -7

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


6.2.4 El EUSART en el modo Master sncrono Este modo se selecciona activando el bit CSRC del registro TXSTA y los datos se transfieren en HalfDuplex. Cuando se transmiten datos el receptor se inhibe y viceversa. En el modo Master sncrono es el propio EUSART quien proporciona la seal de reloj a travs de la patilla CK. La polaridad de esta seal de reloj se determina mediante el bit TXCKP del registro BAUDCON y la polaridad de la seal de datos mediante el bit RXCKP. Transmisin Master sncrona El esquema por bloquee es el mismo que se mostr en la figura 6-7. El dato a transmitir se almacena en TXREG y se copia sobre el registro de desplazamiento de salida TSR. El TSR no se vuelve a cargar con el contenido de TXREG hasta que se haya transmitido el ltimo bit del dato previo. Cuando se transfiere TXREG sobre el TSR se activa TXIF ya que TXREG queda vaco sin embargo el bit TRMT no se activa hasta que haya salido el ltimo bit desde el TSR. La secuencia para la transmisin sncrona se puede resumir a continuacin: Cargar los registros SPBRGH:SPBRG con al valor apropiado para generar los baudios deseados. Activar modo Master sncrono activando los bits SYNC, SPEN y CSRC. Si se desea invertir la polaridad tanto de la seal de reloj (CK) como la de datos (DT) activar los bits TXCKP y RXDTP respectivamente. Si deseamos emplear la interrupcin activamos el bit TXIE Si deseamos transmitir 9 bits de datos, se activa el bit TX9 Mediante el bit TXEN activamos el transmisor. Si se ha seleccionado una transmisin de 9 bits, el 9 bit lo cargamos en TX9D. El dato a transmitir se carga en el registro TXREG El bit TXIF indica si el TXREG est vaco. El bit TRMT indica si hay alguna transmisin en curso. Los registros asociados en la transmisin Master sncrona se muestra en la figura 6-11.

Figura 6-11. Registros empleados por el transmisor Master sncrono del EUSART Recepcin Master sncrona El Master genera la seal de reloj que le sirve para muestrear los bits que le llegan con cada flanco descendente. Si se activa el bit SREN se recibe un nico dato. Si adems se activa el bit CREN la recepcin es continua hasta que se desactiva dicho bit. A continuacin se resume la secuencia de pasos a realizar:

P6 -8

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Cargar los registros SPBRGH:SPBRG con el valor apropiado segn los baudios que se deseen Activar la puerta serie Master sncrona mediante los bits SYNC, SPEN y CSRC. Los bits CREN y SREN deben estar borrados. Si las seales de reloj (CK) y de datos (DT) son invertidas, activar los bits TXCKP y RXDTP respectivamente. Si se desea interrupcin, habilitarla mediante el bit RCIE. Si se desean datos de 9 bits se debe activar RX9. Para una recepcin simple se activa SREN y para una recepcin continua se activa CREN. El bit RCIF se activa cuando se complete la recepcin de un dato. Leer el registro RCSTA para obtener el 9 bit y/o si hay algn error. Leer el registro RCREG para obtener el dato recin recibido. Borrando el CREN se borran los bits de error. La figura 6-12 presenta los registros involucrados en la recepcin Master sncrona

Figura 6-12. Registros del receptor Master sncrono 6.2.5 El USART en el modo Slave sncrono El modo Slave sncrono se selecciona borrando el bit CSRC del registro TXSTA. Se diferencia del modo Master en que la seal de reloj en base a la cual se transfieren los bits, lo proporciona un generador externo (seguramente un Master). Transmisin Slave sncrona Este modo de operacin es idntico a la transmisin Master sncrona excepto en la seal de reloj que se le aplica de forma externa. La secuencia de manejo se puede resumir en los siguientes pasos: Activar la puerta serie sncrona Slave mediante los bits SYN = SPEN = 1 y CSRC = 0. Borrar los bits CREN y SREN Si se desea interrupcin activar el bit TXIE. Si la polaridad de las seales de reloj (CK) y datos (DT) es invertida, activar los bits TXCKP y RXDTP respectivamente. Si se va a trabajar con 9 bits activar el bit TX9 Activar el transmisor mediante el bit TXEN. Si se trabaja con 9 bits de datos, cargar el 9 bit en TX9D. Comenzar la transmisin cargando el dato a transmitir en el registro TXREG La tabla de la figura 6-13 muestra los registros involucrados en la transmisin Slave sncrona del EUSART.

P6 -9

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART

Figura 6-13. El modo transmisor Slave sncrono Recepcin Slave sncrona La recepcin sncrona son idnticas tanto en el modo Master como en el Slave excepto que, en el modo Slave, la seal de reloj la suministra un generador externo (seguramente un Master). La secuencia para iniciar una recepcin sncrona en modo Slave se resume a continuacin: Activar la puerta serie sncrona mediante los bits SYNC = SPEN = 1 y CSRC = 0. Si se desea emplear la interrupcin, activar el bit RCIE. Si las seales de reloj (CK) y/o de datos (DT) est invertida, activar los bits TXCKP y RXDTP respectivamente. Si se van a recibir 9 bits se debe activar el bit RX9. Para activar la recepcin activar el bit CREN. El bit RCIF se activa cuando se complete la recepcin. Leer el registro RCSTA para obtener el 9 bit recibido. Leer el registro RCREG para obtener los bits del byte recibido. Si se produjo algn error, se puede desactivar borrando el bit CREN . La figura 6-14 muestra los registros que se emplean en la recepcin sncrona Slave.

Figura 6-14. Registros empleados en el modo receptor Slave sncrono

P6 -10

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


6.3 MATERIALES NECESARIOS Laboratorio PICSchool PIC18F2550 Sensor ultrasnico de distancias SRF02 Controlador de LCDs SYM20 Cables de conexin

6.4 DESARROLLO DE LA PRACTICA Los ejemplos que se proponen a continuacin tratan de exponer de una forma prctica el empleo del EUSART disponible en los dispositivos PIC18. La mayor parte de ellos transfieren informacin entre el PIC y cualquier dispositivo serie como puede ser el canal serie de un PC. En este caso basta con ejecutar el programa Hyper Terminal que viene con las diferentes plataformas de Windows y que convierte al PC en un Terminal perifrico para la transmisin/recepcin de datos. 6.4.1 Sencillo ejemplo de transmisin Objetivos Tener una primera toma de contacto con el mdulo EUSART, haciendo una simple transferencia entre el PIC y un Terminal (el PC ejecutando el programa Hyper Terminal). Esquema elctrico Se muestra en la figura 6-15. El PIC transmite los datos por la lnea RC6/TxD. Esta se conecta con la seal TxD del interface RS232 disponible en el laboratorio PICSchool. De aqu se conecta directamente un cable estndar DB9 macho-hembra que va a parar al canal serie del ordenador. Este cable es idntico al que empleamos para grabar el PIC.
1 2 3 4

RC6/TxD

TxD

INTERFACE RS-2323

Figura 6-15. Conexiones

Programas Fuente Ejem_6.ASM Ejem_6.C Comentarios El programa transmite el carcter A a intervalos de 1 seg. Emplea el Timer 0 como temporizador de 16 bits y con presacler de 1:16. Cada 1 segundo provoca una interrupcin. El EUSART se configura para transmitir a 9600 baudios, 8 bits de datos y 1 bit de stop. El programa de tratamiento de la interrupcin repone al Timer 1 y carga el registro transmisor TXREG con el carcter a transmitir. La mejor forma de comprobar el funcionamiento de ste, y los prximos ejemplos, es mediante un PC ejecutando un programa de comunicaciones como puede ser el Hyper Terminal (que viene con Windows) o similar. Dicho software se configura para una comunicacin a 9600 baudios, 8 bits de datos y 1 bit de stop. El PC se comporta como un simple perifrico terminal de datos capaz de transmitir y/o recibir caracteres. Un cable con conectores DB9 macho y hembra en sus extremos conecta el PC con el interface RS232 del laboratorio y este a su vez con el PIC segn el esquema anterior. Se puede emplear el mismo cable serie que se emplea durante la grabacin. Lo ideal sera tener 2 cables para no tener que andar cambindolo de sitio. Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Desarrollado en C mediante la versin PCH V 3.241 de CCS

P6 -11

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


6.4.2 Transmisin/Recepcin con auto deteccin Objetivos Una de las aportaciones mas interesantes del mdulo EUSART implementado en los PIC18 es la capacidad de auto detectar la velocidad de transferencia de datos y sincronizarse automticamente con el perifrico (en nuestro caso el PC). Esquema Elctrico Se muestra en la figura 6-16. La lnea RC7/RxD es por donde se reciben los datos. Se conecta con la seal RxD de la interfaz RS232 del laboratorio. RC6/TxD es la lnea de transmisin y se conecta con la seal TxD de ese mismo interfaz. Al PC esas seales le llegan cruzadas. Es decir, la seal de recepcin se conecta con la de transmisin del PC y la de transmisin con la de recepcin del PC. Programas Fuente Ejem_6B.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6B.C Desarrollado en C mediante la versin PCH V 3.241 de CCS
1 2 3 4

RC7/RxD RC6/TxD

RxD TxD

INTERFACE RS-2323

Figura 6-16. Conexiones

Comentarios El programa principal es muy sencillo. Cuando se recibe un carcter desde el PC se provoca una interrupcin cuyo tratamiento se limita a retransmitir el carcter recin recibido, a modo de eco. Mencin especial se merecen el conjunto de instrucciones que realizan el ciclo de auto deteccin de los baudios. Este ciclo se inicia al activar el bit ABDEN del registro BAUDCON. El EUSART queda a la espera de recibir, procedente del perifrico Terminal (el PC), el cdigo 0x55 (U). Un timer interno calcula el tiempo que tardan en producirse los 5 flancos ascendentes que implica este cdigo 0x55. De esta manera calcula el tiempo por cada bit, determina los baudios (bits/segundo) y ajusta automticamente los registros SPBRGH y SPBRG del sistema de generacin de baudios del EUSART. Una vez que el PIC est grabado y se hayan hecho las conexiones apropiadas entre el laboratorio PICSchool y el PC, comprobar el funcionamiento del ejemplo es muy sencillo. El primer cdigo que hay que enviar desde el PC hasta el PIC es el 0x55, tambin llamado byte de sincronismo y se corresponde con el carcter U. El EUSART queda entonces sincronizado y a partir de ese momento todos los caracteres que se enven desde el PC al PIC sern devueltos otra vez al PC. Podemos probar a configurar el software de comunicaciones Hyper Terminal a cualquier velocidad de transferencia. Al reiniciar el sistema, el EUSART del PIC queda a la espera de recibir un nuevo cdigo 0x55, momento en que se sincroniza a la nueva velocidad y comienza la aplicacin. 6.4.3 Transmisin de mensajes Objetivos Transmitir mensajes a travs del EUSART con auto deteccin de velocidad o baudios. Esquema Elctrico
1 2 3 4

RC7/RxD RC6/TxD

RxD TxD

Se muestra en la figura 6-17 y es idntico al empleado en el ejemplo anterior.

INTERFACE RS-2323

Figura 6-17. Esquema de conexiones

P6 -12

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Programas Fuente Ejem_6C.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6C.C Desarrollado en C mediante la versin PCH V 3.241 de CCS

Comentarios El ejemplo vuelve a emplear el sistema de auto deteccin de velocidad. As pues el ciclo comienza cuando se recibe, desde el Terminal, el byte 0x55. Los mensajes estn formados por cadenas de caracteres almacenados en memoria. La directiva del ensamblador db almacena en sucesivas posiciones de la memoria de programa todos los bytes de la cadena. Estos bytes se pueden expresar directamente en ASCII si se encierran entre comillas o bien en hexadecimal, decimal o binario separados entre s mediante comas. Mediante la directiva Mens_x equ $ se obtiene la direccin de inicio de cualquiera de las cadenas. La sub rutina Mensaje carga los punteros TBLPTR con dicha direccin y va extrayendo secuencialmente todos y cada uno de los bytes de la cadena, al tiempo que los transmite por el EUSART. El cdigo 0x00 lo hemos empleado para determinar el final de una cadena. Si observamos el programa fuente escrito en C, podemos apreciar cmo se almacena una cadena de caracteres sobre la memoria de programa: const char Mens_0[4][50]={ "Ingenieria de Microsistemas Programados S.L. ", "Alda. Mazarredo N. 47-1 dpto. 2 ", "48009 Bilbao - Bizkaia ", "Tfno./Fax. 944230651 (www.microcontroladores.com)"};

En este ejemplo se ha realizado una estructura matricial de 4 filas y 50 columnas llamada Mens_0, de tipo alfabtica (char) y en la memoria de programa (const). Manipulando los ndices se puede acceder a cualquiera de las filas y/o de las columnas.

6.4.4 Monitorizacin remota Objetivos Presentar un ejemplo que permite monitorizar de forma remota el estado de diversas seales de entrada. Esto puede tener un gran nmero de aplicaciones reales.

Esquema Elctrico
AP18 RA6 RA5 RA4 RA3 RA2 RA1 RA0 E6 E5 E4 E3 E2 E1 E0 1 2 3 4 5 6 7 8

RC7/RxD RC6/TxD

RxD TxD

1 2 3 4

Se muestra en la figura 6-18. Los interruptores E6:E0 del laboratorio se conectan con las entradas RA6:RA0. Son las seales a monitorizar. RC7/RxD y RC6/TxD se conectan con las seales RxD y TxD del interfaz RS232.

ENTRADAS DIGITALES

INTERFACE RS-2323

Figura 6-18. Conexiones del montaje

P6 -13

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Programas Fuente Ejem_6D.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6D.C Desarrollado en C mediante la versin PCH V 3.241 de CCS Comentarios El programa lee las entradas de la puerta A, cada bit se convierte a su correspondiente cdigo ASCII y se transmite va serie a travs del EUSART. En el Terminal debe aparecer una cadena de 8 bits que representan el estado de las lneas RA6:RA0. El cambio de estado de cualquiera de esas entradas debe verse inmediatamente reflejado en la pantalla del PC. 6.4.5 Control remoto de salidas y monitorizacin Objetivos Presentar otro ejemplo que tiene muchas posibilidades en aplicaciones reales. Se trata de gobernar de forma remota las salidas conectadas a la Puerta B. Esquema Elctrico
AP17 1 2 3 4 5 6 7 8 S7 S6 S5 S4 S3 S2 S1 S0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

Se muestra en la figura 6-19. Las salidas Rb7:RB0 se conectan con los leds S7:S0 del laboratorio y estos se activarn o no desde el Terminal.

RC7/RxD RC6/TxD

RxD TxD

1 2 3 4

INTERFACE RS-2323

SALIDAS DIGITALES

Figura 6-19. Esquemas de conexiones

Programas Fuente Ejem_6E.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6E.C Desarrollado en C mediante la versin PCH V 3.241 de CCS Comentarios Desde el Terminal se reciben 8 comandos que se corresponden con las teclas 0 al 7. Segn el comando recibido una de las 8 salidas RB0 a RB7 cambia de estado. Al mismo tiempo y, como en el ejemplo anterior, el estado actual de la Puerta B se transmite de forma constante para su monitorizacin en el terminal.

6.4.6 Recepcin y visualizacin sobre el LCD

Objetivos Mostrar en la pantalla LCD del laboratorio PICSchool los caracteres que van llegando va serie desde el terminar.

P6 -14

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Esquema Elctrico Se muestra en la figura 6-20. Las puertas A y B se emplean para controlar la pantalla LCD. RC7/RxD y RC6/TxD se conectan con RxD y TxD del circuito de interfaz RS232 del laboratorio.
CONTROL RA1 RA2 RA3 RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 RS R/W E L0 L1 L2 L3 L4 L5 L6 L7 DATOS AP9 1 2 3 4 1 2 3 4 5 6 7 8 AP20 1 2 3 4

RC7/RxD RC6/TxD

RxD TxD

INTERFACE RS-2323

Figura 6-20. Esquema de conexiones Programas Fuente

Ejem_6F.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6F.C Desarrollado en C mediante la versin PCH V 3.241 de CCS Comentarios El ejemplo provoca una interrupcin cada vez que se recibe un carcter. El programa de tratamiento lo visualiza sobre el LCD controlando la posicin actual del cursor. 6.4.7 Midiendo con el sensor ultrasnico SRF02 Objetivos La comunicacin serie no tiene porque estar ligada exclusivamente a la transferencia de informacin entre el PIC y un Terminal o PC. Existen en el mercado gran cantidad de perifricos, dispositivos, C. integrados, etc.. que se controlan con este tipo de comunicacin. En este ejemplo se pretende controlar va serie, desde el EUSART, un perifrico real como es el medidor ultrasnico de distancias SRF02 mostrado en la figura 6-21 y cuya documentacin tcnica se adjunta en el CDROM.

Figura 6-21. El sensor ultrasnico SRF02 Esquema Elctrico Se muestra en la figura 6-22. Las puertas A y B controlan la pantalla LCD donde se visualizarn las medidas realizadas. RC7/RxD y RC6/TxD se conectan con Tx y Rx del sensor respectivamente. A travs de ellas el PIC se comunica con el SRF02.
CONTROL RA1 RA2 RA3 RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 RS R/W E L0 L1 L2 L3 L4 L5 L6 L7 DATOS AP9 1 2 3 4 1 2 3 4 5 6 7 8 AP20 +5Vcc U14 1 RC6/TxD RC7/RxD TxD RxD 2 3 4 5 +5Vcc Rx Tx Mod GND SRF02_Serie

Figura 6-22. Conexin del sensor SRF02

P6 -15

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


La informacin tcnica de este sensor se encuentra en el CDROM que acompaa al presente mdulo de prcticas. El sensor puede trabajar con comunicacin serie asncrona a 9600 baudios, 8 bits de datos y 2 bits de stop, tal y como se emplea en esta prctica. Tambin puede trabajar en comunicacin serie sncrona segn el protocolo I2C. Esto se ver mas adelante. La figura 6-23 muestra la disposicin de conexiones del sensor ultrasnico SRF02 en el modo serie asncrono. La lnea Rx se conecta con RC6/TxD del PIC. A travs de esta lnea el sensor recibe los diferentes comandos a ejecutar. La lnea Tx se conecta con RC7/RxD y es por donde el mdulo SRF02 transmite el resultado segn el comando recin ejecutado. La patilla MODO se conecta a GND para trabajar en modo serie asncrono o bien se deja sin conexin para trabajar en el modo I2C.

Figura 6-23. Conexiones del SRF02 en el modo asncrono Programas Fuente Ejem_6G.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6G.C Desarrollado en C mediante la versin PCH V 3.241 de CCS Comentarios De los diferentes comandos que admite al sensor SRF02, en este ejemplo empleamos los comandos de medida automtica. Cuando el SRF02 recibe uno de estos comandos se realizan una medida (en cm, pulgadas o S) y automticamente re transmite el resultado de dicha medida. El programa transmite de forma secuencial los comandos para medir en Cm, pulgadas y s. Cada vez que se enva uno de estos comandos, se espera a recibir los dos bytes del resultado. Este se convierte a BCD y se visualiza sobre la pantalla LCD. Como resultado apreciamos en la pantalla una medida de distancia expresada en cm, pulgadas y S. Para comprobar la equivalencia entre las distintas unidades de medida, recordar que: 1 pulgada = 2.54 cm cm=Pulgadas * 2.54 La velocidad del sonido es aproximadamente 29.15S/Cm. Se multiplica por dos ya que la seal ultrasnica hace un recorrido de ida y vuelta Cm = (s/2) / 29.15

El rango de medida del sensor es aproximadamente de unos 18cm a 6 m. Podemos probar a poner frente al sensor un obstculo a diferentes distancias. En la figura 6-24 se puede apreciar el montaje prctico del presente ejemplo.

Figura 6-24. Montaje prctico con el SRF02

P6 -16

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


6.4.8 El controlador de pantallas LCD SYM20AA Objetivos Como se ha comentado anteriormente la comunicacin serie a travs del EUSART integrado en los dispositivos PIC18 puede servir, no solo para la comunicacin serie estndar, si no para el control o gobierno de mltiples tipos de perifricos y dispositivos que emplean este tipo de interfaz. Ese era el caso del sensor ultrasnico SRF02 empleado en el ejemplo anterior y el del controlador de pantallas LCD SYM20AA que emplearemos a continuacin. Se trata de un circuito que se gobierna con tan slo dos lneas del PIC como mximo (TxD y RxD). Se le transmiten los caracteres ASCII que se desean visualizar y/o los comandos de control. El SYM20AA se encarga de realizar todas las funciones de gestin de la pantalla. Esto supone que el PIC se libra de todas las tareas dedicadas a la visualizacin sobre LCD y ahorra una buen nmero de patillas de E/S. Pinsese que el control de una pantalla LCD, tal y como se venido haciendo hasta ahora, consume 11 lneas de E/S y una buena porcin de la memoria de programa donde se almacenaban las distintas rutinas. En este ejemplo veremos el manejo del controlador SYM20AA que utilizaremos en prximas prcticas, lo que nos permitir ahorrar patillas del PIC y emplearlas para otros cometidos o funcionalidades. En la documentacin en el CDROM se adjunta el data sheet completo del controlador SYM20AA. Se recomienda su estudio para un mayor aprovechamiento de las prestaciones del mismo. Esquema Elctrico Se muestra en la figura 6-25. El SYM20 se conecta con la pantalla LCD y se carga de su total control. Por otra parte, en estos ejemplos, slo empleamos la lnea RC6/TxD del PIC18. Por ella, gracias al EUSART enviamos al SYM20 los comandos y cdigos ASCII que se desean visualizar. Insistimos en que nicamente se consume una lnea del PIC.

LCD HD44780 compatible


GND VCC VLC RS RW E D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14 L+ L15 16 2 1 18 17

1 2 3

4 5 6

D7 D6 D5 D4

TxD RxD

8 7 RC6/TxD

9 16 15 +5Vcc 14 5

E R/W RS VCC GND

BAUD BLIGHT VPP DATA CLK

3 6 4 13 12

Figura 6-25. Conexin del SYM20 con la pantalla LCD y el microcontrolador Programas Fuente

SY M-20AA

Ejem_6H.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6H.C Desarrollado en C mediante la versin PCH V 3.241 de CCS Comentarios A estas alturas y, con todos los ejercicios realizados con el EUSART, no vamos a ensear nada nuevo excepto lo relativo al controlador SYM20. En este ejemplo se trata de visualizar sobre la pantalla LCD distintos mensajes igual que se hizo en el apartado 6.4.3. Bajo el punto del EUSART la nica diferencia consiste en que no empleamos la auto deteccin ya que el SYM20 no tiene est caracterstica. Por lo dems las rutinas son idnticas y los mensajes de texto o cadenas de caracteres se almacenan en la programa de memoria igual que se hizo en aquella ocasin. Como resumen decir que, bajo el punto de vista del SYM20, ste espera a recibir va serie los comandos y datos que se explican en su propio data sheet.

P6 -17

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


La figura 6-26 muestra el montaje prctico realizado sobre el laboratorio PICSchool. Se recomienda prestar atencin en este montaje ya que se emplear en posteriores ocasiones.

Figura 6-26. Montaje prctico del controlador SYM20 6.4.9 El controlador de pantallas SYM20, monitorizando entradas Objetivos Insistir una vez mas en la importancia del controlador SYM20 y el EUSART de los dispositivos PIC18, de cara a visualizar cualquier tipo de informacin sobre una pantalla LCD y con un mnimo coste tanto en lneas de E/S como de software. Esquema Elctrico Se muestra en la figura 6-27.

LCD HD44780 compatible


GND VCC VLC RS RW E D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14 L+ L15 16 2 1 18 17

1 2 3

4 5 6

D7 D6 D5 D4

TxD RxD

8 7 RC6/TxD RA6 RA5 RA4 RA3 RA2 RA1 RA0 E6 E5 E4 E3 E2 E1 E0

AP18 1 2 3 4 5 6 7 8

9 16 15 +5Vcc 14 5

E R/W RS VCC GND

BAUD BLIGHT VPP DATA CLK

3 6 4 13 12

ENTRADAS DIGITALES

SY M-20AA

Figura 6-27. Esquema de montaje

P6 -18

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


Programas Fuente Ejem_6I.ASM Desarrollado en ensamblador mediante el MPASMWIN V5.03 de Microchip Ejem_6I.C Desarrollado en C mediante la versin PCH V 3.241 de CCS Comentarios Se trata de una aplicacin de las mltiples posibles. Es un ejemplo similar al que se propuso en el apartado 6.4.4. Consiste en monitorizar el estado de las entradas RA7:RA0. En aquella ocasin el estado de dichas entradas se transmita va serie e iba a parar a un perifrico Terminal (el PC). En esta ocasin el estado de las entradas tambin se transmite va serie pero es recogido por el controlador SYM20 que se encarga de visualizarlo sobre la pantalla LCD del laboratorio PICSchool. En la fotografa de la figura 6-28 se aprecia el montaje realizado.

Figura 6-28. Montaje prctico del sistema de monitorizacin de entradas 6.5 TRABAJO PERSONAL Con todo lo visto en esta y en prcticas anteriores, se proponen una serie de trabajos con el nico fin de afianzar conocimientos y tratar de dar un contenido real a las aplicaciones. 6.5.1 Control remoto del motor Mediante un terminal remoto (un PC) conectado al EUSART se trata de controlar el funcionamiento del motor EMG30. De una forma interactiva y a travs de distintos mensajes, el usuario debe establecer remotamente la secuencia de trabajo o maniobra que debe realizar el moto y consta de r: Sentido de giro Velocidad o potencia giro N de pasos a realizar

En este ejemplo se emplea el EUSART para establecer la comunicacin entre el usuario y el PIC y determinar la maniobra anterior. Tambin se deben emplear los mdulos CCP para el control de anchura de

P6 -19

Mdulo de entrenamiento para los PIC18FXXXX PRACTICA 6: El EUSART


pulsos (potencia aplicada) y el control de desplazamiento. Es por tanto un ejemplo bastante real que emplea varios de los recursos que integran los dispositivos PIC18. 6.5.2 Deteccin de obstculos Se propone un ejemplo que trata de simular el sistema de ayuda al aparcamiento que disponen varios modelos de vehculos. Mediante el sensor SRF02 se obtiene la distancia respecto al obstculo. La distancia mnima ser de 1,5m. A partir de esta distancia, cuanto mas prximo se encuentre el obstculo, se genera una intermitencia variable sobre una lnea de salida. A mayor proximidad mayor frecuencia en esa intermitencia.

P6 -20

S-ar putea să vă placă și