Tal como comentábamos en el primero de esta serie de artículos, vamos a describir la construcción de una placa central para microcontroladores de 40 pines, tales como el potente 16F877A o el 18F2420, entre otros.Dentro de los microcontroladores de Microchips mas potentes en encapsulados de 40 pines se encuentra el muy difundido PIC16F877A, que posee 33 pines de entrada/salida, una memoria interna de 8 Kb y una EEPROM de 368 bytes. También incluye un conversor analógico digital de 8 canales de 10 bits, sumamente interesante para proyectos que involucren lecturas de temperaturas, tensiones, etc.
Los proyectos mas interesantes que involucren microcontroladores en general hacen uso de los mas grandes, debido a sus caracteristicas avanzadas. Esta placa permitira que aprendamos a usarlos.
El circuito de esta placa central de nuestro sistema de módulos se diseño teniendo en mente la posibilidad de expansión. Para ello, la placa cuenta con 8 conectores molex de 10 vías, cada una con conexión a cuatro pines del micro, tal como hacíamos en la placa para PICs de 18 pines. De hecho, y para que podamos utilizar los mismos módulos en ambas placas, la disposición de pines en estos conectores es la misma que utilizamos antes y que podemos ver en la imagen correspondiente.
También incluimos un conector para la programación del micro mediante ICSP, sobre todo debido a la gran cantidad de pines de estos micros, que suele hacer relativamente difícil el estar poniendo y sacándolos todo el tiempo.
En muchos casos, al depurar un programa se producen situaciones en los que el programa entra en bucles sin fin, o debido a algún desbordamiento interno deja de responder. Para ello, el pulsador RESET se encarga de llevar momentáneamente el pin 1 del microcontrolador a GND, de manera de que el programa se reinicie.
Si sacamos la cuenta, ocho conectores con 4 líneas de datos cada uno nos dan un total de 32 líneas de expansión. El PIC16F877A dispone de 33 líneas de I/O, y algunos micros de 40 pines tienen dos más (en los pines 13 y 14, que el 16F877A utiliza para el oscilador). Estas tres líneas de E/S se encuentran ruteadas sobre la misma placa a tres jumpers, JP1 a JP3, que permiten la utilización de esos pines como entrada (un pulsador) o salida (un led).
Respecto del oscilador externo, se encuentra construido sobre tres cristales y dos condensadores cerámicos de 22 pF. Por supuesto, solo podemos utilizar un cristal por vez, para ello el jumper JP4 permite seleccionar el de 4MHz, el de 8MHz o el más veloz de 20MHz. Si estamos utilizando algún PIC de la serie 18F, podemos quitar este jumper y utilizar el oscilador interno, y aprovechar esos dos pines como E/S. Debemos ser cuidadosos con la colocación de estos jumpers, ya que si lo hacemos de manera errónea muy posiblemente el microcontrolador no funcionara.
Respecto de la alimentación, esta resuelta mediante la utilización de un regulador de voltaje convencional, del tipo LM7805, y los condensadores respectivos, por lo que podemos conectar nuestra placa a una fuente de corriente continua de entre 7.5 y 24 voltios, cuidando la polaridad. Un led, indicado como POWER en la imagen, es el encargado de avisarnos que la placa se encuentra alimentada.
Cuando diseñemos algún modulo para conectar a esta placa, debemos recordar que la corriente máxima que entrega este regulador de voltaje es de aproximadamente un Amper. Si el consumo es mayor, deberemos dotar al modulo de su propia fuente de alimentación.
Microchip prevee la programación de sus micros sin quitarlos de la placa en la que están colocados. Esto es posible gracias a las resistencias de 220 ohms que podemos ver en los pines PORTB.6 y PORTB.7 (Clock y Data respectivamente), mas la resistencia de 4700 ohms y el diodo 1N4148 que conectan el pin PORTA.4 (Vpp) a masa. De esta manera, si quitamos la alimentación de la placa de pruebas, y conectamos el cable entre el programador y este conector, podremos enviar el programa seleccionado desde el ordenador al microcontrolador. Las resistencias en PORTB.6 y PORTB.7 ayudan a aislar el circuito que este conectado a ellas de las tensiones entregadas por el programador. No obstante, y según que componentes haya conectados al “conector C” puede convenir quitar el cable plano que une al modulo en cuestión con la placa central, de manera de evitar inconvenientes.
Las pruebas que hemos llevado a cabo se han realizado utilizando el programador USB GTP-PLUS, pero cualquier programador con conector ICSP servirá.
Tengamos cuidado al construir el cable que une el programador con nuestra placa, ya que si confundimos algún conductor podemos dañar el microcontrolador o el programador (¡o ambos!).
Lo primero es construir la placa base, para lo que utilizaremos el método constructivo de circuitos impresos ya visto en NeoTeo, a partir de un PCB virgen cobreado en una sola cara de unos 8 x 8 centímetros.
Una vez realizada la placa, procedemos a agujerearla y limpiarla bien, para no tener dificultades con la soldadura. Luego procedemos a soldar los componentes, colocando primero los mas bajos, tales como el zócalo para el microcontrolador, los puentes, resistores y diodos, luego los pulsadores, LEDs y condensadores cerámicos, y por ultimo la bornera, conectores, pines de bronce para los jumpers, condensador electrolítico, etc. Debemos tener cuidado con la posición de los conectores, ya que si los ponemos al revés luego no entraran correctamente los cables de expansión.
Una vez realizadas todas las soldaduras, conviene dedicar unos minutos a asegurarnos de que no haya cortocircuitos que provoquen fallas.
Para terminar con las soldaduras, debemos realizar tres puentes en el lado del cobre de la placa, utilizando para ello cables finos forrados para evitar cortocircuitos. La posición de esos cables puede verse en la foto que acompaña el artículo.
Si todo esta correcto, podemos aplicar a nuestra placa una capa de barniz en aerosol del lado de las soldaduras, de manera que se evite el contacto del cobre con el aire, para que no se sulfate.
Aunque podemos montar la placa con solo un cristal y omitiendo los pulsadores, es conveniente tener todos los elementos a mano, ya que una vez que hayamos barnizado la placa para protegerla es mas difícil soldar los componentes que nos hayan faltado.
Esta es la lista de componentes necesarios:
1 bornera para circuito impreso (alimentación)
8 conectores molex de 10 vías
1 conector para ICSP, de 5 pines
1 zócalo DIP de 40 pines
3 condensadores cerámicos de .1 uF
2 condensadores cerámicos de 22 pF
1 condensador electrolítico de 470uF/25V
1 LED rojo
3 LEDs verdes
4 pulsadores para circuito impreso
1 diodo 1N4148
1 diodo 1N4007
5 resistores de 220 ohms
1 resistor de 4K7
1 resistores de 470 Ohms
3 Resistores de 10K
1 Regulador de voltaje LM 7805
1 cristal de 4 MHz.
1 cristal de 8 MHz.
1 cristal de 20 MHz.
Pines de bronce, puentes, jumpers, PCB virgen, etc.
Este sistema de módulos que propone NeoTeo justamente tiene esa función: permitir el desarrollo, experimentación y prueba de programas o de cualquier idea que tengamos sin necesidad de construir un prototipo en cada caso.
En los artículos siguientes veremos como construir una placa de entradas y salidas digitales, y una con cuatro reles, de manera de poder utilizar este sistema de módulos para controlar cargas de hasta 10 amperes.