<%@ Language=VBScript %> Informática Industrial II

Placa de Desarrollo basada en PIC

    

Novedades

12/04/07 - Actualizadas librerías teclado.c y lcd.c

11/04/07 - Actualizadas librerías lcd.c y delay.c

21/02/07 - Actualización de librerías.

22/11/05 - Actualización de enlaces y de librerías.

15/10/04 - He actualizado los enlaces con la nueva versión de la PCB, que añade control del LCD gráfico LM324 de HITACHI. No me preguntéis donde lo podéis comprar, yo solo tengo dos unidades provenientes del rastro de Madrid que conseguí hace unos años. También incluye en la PCB el reloj de tiempo real PCF8583 del que haremos una práctica y algunas correcciones más.

16/01/04 - Las rutinas del puerto serie están a final en la sección de librerías. El ejemplo de uso lo tenéis en la Práctica 2 del boletín de prácticas.

16/01/04 - Ejemplo de escritura en EEPROM, para 24C32(la que tenéis que tener) y 24C16 por si alguien la tiene. Además del tamaño, una tiene 32Kbits y la otra 16Kbits, la principal diferencia está en el direccionamiento. La grande emplea direcciones de 16 bits y la pequeña está paginada y emplea direcciones de 8 bits.

16/01/04 - Si vais a usar los LEDS o los pulsadores conectados al PUERTO A, tenéis que tener en cuenta que por defecto se configura como entradas analógicas, para configurarlo como entradas digitales y poder usarlos tenéis que escribir en el registro ADCON1 el valor 0x07. Si necesitáis más información la tenéis en el data sheet del PIC 16F876.

9/12/03 - Dos ejemplos más con teclado y con convertidor A/D.

9/12/03 - Las dos notas anteriores del 2/12 y del 1/12 no son completamente precisas y las he eliminado. La PCB está correcta y el problema que hemos tenido algunos es que se nos olvidó desactivar la opción LVP (Low Voltage Programming) durante la programación del cargador. Esto provoca que al tener el bit RB3 al aire el diseño se produzcan inestabilidades en la placa. Basta con acordarse de desactivar el bit LVP de la palabra de configuración al programar el cargador inicialmente.

1/12/03 - Ejemplo de salida de caracteres por el LCD, integra las primeras versiones de la librería de retardos y la de LCD. A mi me funciona.

1/12/03 - Primera versión de la página.

Introducción

He intentado diseñar una placa lo suficientemente sencilla y barata para ponerla al alcance de todos los alumnos. Existen otras placas ya montadas en el comercio, pero he decidido llevar a cabo el diseño de una propia por varias razones. Las que existen son difíciles de encontrar, son caras y no permiten probar todos los periféricos que nos interesan.

Por ello he decidido diseñar una propia que sea sencilla y a la vez que nos permita realizar gran parte de la programación profesional estándar que se realiza con estos dispositivos, los microcontroladores.

Es importante consultar previamente el data sheet del PIC16F876 para comprender el funcionamiento de todos sus periféricos.

Esquema eléctrico

Se trata de un PIC16F876, seleccionado principalmente por lo fácil de encontrar que resulta en las tiendas del ramo, su capacidad de almacenaje de código (8K palabras) y la cantidad de periféricos que integra: Puerto Serie, Tres contadores, bus I2C, bus serie dedicado, etc...

Se han incluido en la PCB un teclado matricial de 16 teclas, un display LCD, un adaptador de niveles para la conexión de un puerto serie RS-232, la fuente de alimentación, una EEPROM, tres leds y conectores para conectar dispositivo externos (motores, relés, etc). La placa también cuenta con dos potenciómetros para simular las entradas analógicas y tres pulsadores adicionales, uno de reset, otro de interrupción y por último otro de cuenta para probar el contador. Podéis descargarlo aquí.

Placa de circuito impreso

 

Para la realización del montaje se ha diseñado una PCB, cuyo fotolito podéis descargar aquí. Las imágenes que aparecen más abajo son de la versión 2003 del PCB.

 

 

Montaje y lista de componentes

 

La lista de componentes la tenéis aquí. La disposición de componentes la tenéis aquí. Estas fotos son de la antigua versión del PCB y les falta el conector de alimentación y les sobra el condensador electrolítico situado al lado del PIC. 

 

Todos los componentes los podéis encontrar en las tiendas de electrónica de la ciudad. El conector de alimentación es estándar y tiene tres lengüetas, la lengüeta lateral hay que doblarla y extraerla para soldar el conector al circuito impreso. Los conectores J2,3,4 y 5 no es necesario que los coloquéis. Son útiles para conectarlos con otros periféricos externos.

 

No montad la placa hasta que no tengáis todos los componentes. Colocar primero los puentes de cobre y los componentes pequeños. Por último colocar los componentes grandes. Ponerles zócalos a los circuitos integrados, incluyendo el LCD. Tened cuidado al colocar el cristal de cuarzo, porque hay que doblarlo sin romperlo para que se pueda colocar encima el módulo LCD. Las resistencias no tienen polaridad, los condensadores, diodos, LED, integrados y pulsadores si deben colocarse solo en un sentido determinado.

 

 

Los pulsadores tienen cuatro patas unidas dos a dos y tienen que colocarse para que formen correctamente la matriz de pulsadores.

 

 

Para alimentar la placa puede valer cualquier adaptador que tenga de 6V a 12V en corriente continua y con unos 100mA. Tened en cuenta que el conector debe tener la conexión central conectada al polo positivo de la fuente. En caso contrario no se avería el sistema porque contiene un diodo de protección, pero no funcionará.

 

 

Al comprar el display LCD tened en cuenta que las conexiones debe tenerlas por la parte superior. Si las tiene por la inferior tendréis que conectarlo mediante cables a la placa o si no quedara mal colocado. Solo hay que colocar 9 cables en total. Localizar primero las conexiones de alimentación del módulo LCD para evitar que se alimente de forma incorrecta y pueda averiarse. Si no estáis seguros preguntarme. Para la fijación del conector DB9 a la placa y la colocación de 4 tornillos que formen las patas del sistema emplear una broca de 3.5 mm y tornillos de métrica 3. Para el resto de taladros emplear broca de 0,7 mm excepto conectores, potenciómetros, pulsadores y regulador de tensión (el 7805 que aparece abajo a la derecha).

 

 

Para sujetar el LCD a la PCB emplear un zócalo de pines hembra conectado a una tira de pines macho. La tira de pines macho se suelda al módulo LCD y encaja en la otra que se suelda a la PCB, de esta forma es posible quitar y poner el módulo LCD cuando haga falta. Podéis colocar también tornillos de métrica 2 en los taladros a tal efecto de la placa, pero son difíciles de conseguir.

 

 

Cualquier duda que tengáis consultarla en horario de tutorías o por e-mail a msrayaQUITAESTO@diesia.uhu.es.

 

Cargador

 

El desarrollo de programas en C lo llevamos a cabo mediante el compilador HI-TECH C, instalado en el laboratorio dentro del entorno MPLAB. Además de estos programas instalados en el ordenador es necesario disponer de un programa que a través del puerto serie grabe nuestro programa en el microcontrolador sin necesidad de usar programador.

 

No es necesario disponer de programador de PIC, solo es necesario haber grabado previamente este cargador en el PIC con cualquier programador. El cargador lo han desarrollado conjuntamente con HI-TECH y ésta es la página donde puedes encontrar más información y descargar los programas necesarios para instalar el cargador. Si necesitas que te lo grabe lo puedo hacer en horario de tutoría o en horario de prácticas.

 

Software de Desarrollo

 

 

Librerías y Módulos

 

A medida que vaya construyendo y probando las librerías las iré colocando en esta sección. Tener en cuenta que yo he probado las librerías en algunos casos, pero no de forma exhaustiva, así que si encontráis fallos, por favor comunicármelo. Algunas de estas son modificaciones de librerías de libre distribución.

 

Por ahora solo están disponibles las librerías del LCD, Puerto Serie y la de retardos de tiempo. Funcionan con cualquier PIC de la familia. Si tenéis dudas acerca del funcionamiento de alguna función me lo consultáis.

 

Librería del Puerto Serie: serial.c, serial.h.

Librería del módulo LCD: lcd.c, lcd.h.

Librería de retardos de tiempo: delay.c delay.h.

Librería del temporizador/contador.

Librería del interfaz I2C: i2c.h, i2c.c.

Librería del convertidor A/D: adc.c adc.h.

Librería PWM. Librería de control de motor paso a paso.

Librería del interfaz SPI.

Librería del teclado: teclado.c teclado.h.

Librería de programación de eeprom.