Placa de control MCC03 Placa de control MCC03 La placa de control basada en el micro controlador PIC 16F874A de Microchip, es la encargada del procesar los datos que se introducen en el sistema y actuar en consecuencia. Según el diseño de la placa de circuito impreso y del procesador, el MCC03 es capaz de gestionar datos digitales, lecturas analógicas, protocolos de comunicación I2C, protocolo one wire, gestionar la comunicación y control mediante PC (siguiendo el protocolo estándar RS232), posibilita la interconexión entre varios controladores mediante bus de datos, indicación luminosa de testeo del sistema, indicación luminosa de presencia de tensión. Alimentaciones auxiliares mediante bus o bien de manera independiente, interconexión con diversas placas interface, (por ejemplo interface RS232, interface de potencia, etc también dispone de un puerto de programación directa sobre la placa del software de gestión del PIC 16F874A. Gracias al diseño de la familia PIC 16F xx, que trata de mantener la misma estructura física en todos los PIC de la familia, es posible instalar en la misma placa diversos PIC de la misma familia. Originalmente la placa trabajará a una velocidad de 4Mhz pese a que la velocidad sea perfectamente válida para los requerimientos del sistema, ésta puede aumentarse variar a 20Mhz o a 40Mhz dependiendo del PIC a utilizar (esto, podría ser útil en caso de necesitar analizar formas de onda dentro del sistema), aunque lo más lógico es reducir la velocidad del sistema mediante software, a unos pocos khz con el fin de ahorrar energía. Descripción placa MCC03 La gestión de la información del sistema se inserta en el procesador de la placa mediante distintos puertos de comunicaciones descritos a continuación: Como puede verse en la figura Descripción esquema placa de control MCC03, consta de un puerto de comunicaciones y alimentación "A- Comunicación PC", 3 puertos de 8 bits,
"B - PEAN1, C - PE1 y D - PS1" de los cuales, el B-PEAN1 se puede configurar además como 8 entradas analógicas, entradas digitales y salidas digitales que se describirán se describirán dichos puertos más adelante. Dispone de un conector de alimentación externa (E- Alimentación por si se precisa que la alimentación no se introduzca mediante bus de control), un conector para la programación del PIC instalado en la placa (F - Programación),útil para actualización de versiones de software de control), un conector auxiliar de 4 pines configurables como entrada y salida de datos digitales en formato RJ45 (G- Aux1), un puerto I2C con alimentación para sus periféricos (H I2C1), siendo de utilidad para instalar una mini placa con un chip basado en el protocolo de comunicación I2C que puede ser por ejemplo un termómetro con reloj. Un pin para realizar reset hardware local (I Reset local), un pin para habilitar un reset remoto a través del bus (J Reset remoto) y cuatro leds, (L1 Vcc) indicador de presencia de tensión de alimentación +5Vcc, los dos indicadores de presencia de tensiones auxiliares (L2- Vcc1 y L3 Vcc2) y por último el les de test configurable mediante software para la visualización del control del software.
Descripción esquema placa de control MCC03
Esquema electrónico placa de control MCC03
Descripción de los puertos: Comunicación PC: Mediante el puerto de comunicación PC, se transmiten datos hacia el bus de datos o hacia el PC, se trata de una comunicación serie TTL que puede ser adaptada a niveles de tensión de +12cc y -12Vcc según el protocolo RS232, gracias a la tarjeta adaptadora correspondiente. Interconexión MCC03 con placa RS232 El puerto permite la entrada de alimentación principal de +5Vcc y dos tensiones auxiliares previstas para alimentar tarjetas interconectadas a la placa de control, que pueden oscilar entre 2 y 12Vcc. Las tensiones de alimentación se pueden insertar mediante el bus de datos o bien directamente en el módulo interface "Placa RS232" en el conector TB1. Puerto de entrada analógico PEAN1: La entrada de medidas analógicas al controlador se realiza mediante el puerto PEAN1, son 8 entradas configurables que toman lectura de niveles de tensión de 0 a 5Vcc. La resolución de lectura de cada uno de estos pines o entradas es de 10 bits, lo que quiere decir que es capaz de diferenciar 4096 niveles de tensión. El puerto PEAN1 no solo se puede configurar como entrada de niveles analógicos, es posible configurar lo como salida de datos digitales o entrada de datos digitales, pero en el caso de configuración como entradas digitales, hay que tener en cuente que no permite la configuración interna de las resistencias pull up, por lo que habrá que asegurarse de que en ningún caso queda el pin o los pines al aire ya que puede producir ruidos en el puerto. Los pines 10 y 9 transportan las tensiones auxiliares Vcc1 y Vcc2 respectivamente. Puerto de entrada digital PE1: El puerto de 8 entradas digitales a diferencia del puerto PEAN1, dispone de resistencias pull up, de manera que puede gestionar dispositivos de contacto cerrado contacto abierto (termostatos o finales de carrera), sin necesidad de añadir un sencillo puente de resistencias a la entrada. Al igual que el puerto PEAN1, se puede configurar cada uno de los 8 pines como entrada o como salida, siendo los niveles de tensión compatibles con la lógica TTL y CMOS. Además el pin Nº2 del conector cuando se configura como entrada, actúa como trigger smith. Los pines 10 y 9 transportan las tensiones auxiliares Vcc1 y Vcc2 respectivamente.
Puerto de salida PS1: Con el fin de comandar actuadores en el sistema, se configura el puerto PS1 de 8 bits como salida de datos digitales, siendo posible la configuración en modo entrada digital, aunque hay que recordar que carece de resistencias pull up, por lo que no se podrían conectar dispositivos tipo "contacto abierto/contacto cerrado" ya que se producirían ruidos indeseables en el PIC. La potencia de salida de cada uno de estos pines, es relativamente elevada, pero para comandar un relé por ejemplo, es necesario el uso de un transistor o un opto acoplador. Los pines 10 y 9 transportan las tensiones auxiliares Vcc1 y Vcc2 respectivamente. Alimentación: La placa MCC03 puede alimentarse de manera independiente gracias al conector de alimentación. La alimentación será de +5Vcc, aunque el inconveniente principal de utilizar este conector de alimentación es no permitir la entrada de las tensiones auxiliares Vcc1 y Vcc2, por lo que resulta útil en caso de aplicaciones en las que no se necesiten dichas tensiones. En este conector puede conectarse una fuente de tensión auxiliar con el fin de mantener la alimentación en caso de fallo de la alimentación principal. Programación: Pese a que el PIC se puede programar insertándolo en el zócalo del programador, el MCC03 permite la programación de PIC sin necesidad de extracción de la placa, gracias al conector de interconexión con el programador. Para que se pueda realizar la programación del PIC, es necesario que la PLACA MCC se encuentre alimentada, que le llegue una tensión de grabación "Vpp", un tren de datos "SDA" sincronizados con un tren de pulsos de reloj "SCL" y una orden de habilitación de la programación "PGM". La masa ha de ser común tanto en el programador como en la placa MCC03. El conector de programación permite la interconexión de todos estos pines con la placa programadora. Al utilizar para la programación los pines 2 y 1 del puerto PE1, es necesario mientras que se programa que no haya nada conectado a dichos pines, esto se puede solucionar de dos maneras, la primera consiste en desconectar el conector PE1 de la placa, la segunda se trata de levantar los switch "J1_PROG"
Switch "J1_PROG" Aux1: El conector que se utiliza en este caso es el RJ45, se usa este conector por que en un principio el puerto esta diseñado para la interconexión de un MCC03 adicional, permite la configuración de sus 4 pines tanto como entrada como salida, si se configuran como entrada todos los pines permiten entradas trigger smith, no acepta conexión directa de dispositivos "contacto abierto contacto cerrado". Mediante hardware interno del PIC, se permite la salida de trenes de pulsos fijos por los pines 8 y 6, estos pulsos aplicados a la carga de un condensador pueden generar una salida de tensión analógica que aumentará o disminuirá la tensión dependiendo de la frecuencia del tren de pulsos. La frecuencia de los trenes de pulsos no se ve afectada por el funcionamiento del software ya que se trata de la configuración de dos osciladores internos de propio PIC. Conversión frecuencia tensión I2C1: La tarjeta de control es posible que necesite un aumento de memoria o bien un reloj un termómetro, para ello se ha habilitado una sección que puede albergar una placa de 10X15 mm. En dicha placa puede instalarse un chip de memoria o bien un chip de reloj o un termómetro, (se puede instalar cualquier chip que funcione mediante el protocolo de comunicación I2C), el espacio reservado para instalar el pluggin cuenta con pines de alimentación que transportan Vcc +5v, y las tensiones auxiliares Vcc1 y Vcc2. Espacio reservado para placa 10X15mm I2C1 Reset local: Se trata de un switch que cuando se cortocircuita, reinicia el software del microprocesador.
Es útil para reiniciar el equipo en fases experimentales, pudiéndose conectar a este un botón externo de reset. Reset remoto: Cuando el switch se encuentra cerrado, permite el paso al conector de comunicaciones, pudiendo ser reseteado directamente, desde el puerto o desde el bus de comunicaciones, poniendo a masa el pin determinado. L1, L2, L3 y Led Test: Son indicadores de presencia de tensión de alimentación: El L1 indica presencia de tensión de 5Vcc, el L2 indica presencia de tensión auxiliar Vcc1 y el L3 indica presencia de tensión de alimentación Vcc2. El led test es un led de color ámbar utilizado para indicar que ciertos pasos del programa se están realizando. Por ejemplo se puede programar para indicar que algo va mal, o bien para indicar que en ese momento se está realizando algún proceso, o bien para hacer que se encienda cada vez que se resetea el contador del watch dog y de esta manera asegurarnos que no se ha bloqueado el software. Programación del MCC03: Existen diversos métodos para programar la placa, los más conocidos son, ensamblador, lenguaje C y basic. En primer lugar se ha de hacer un diagrama de flujo en el que quede claramente reflejado el desarrollo del software con todas y cada una de sus rutinas en segundo lugar se ha de programar según el diagrama de flujo y en tercer lugar se ha de compilar para obtener el fichero.hex que se grabará en el PIC. Posteriormente se puede grabar en el chip mediante el programador y el cable adecuado, o bien se puede probar en un simulador. Como por ejemplo el simulador que viene con el software PROTEUS, yo recomiendo este ya que permite utilizar multitud de herramientas, como osciloscopios, terminales, fuentes de alimentación, generador de señales, aplicaciones I2C, etc