Este es un circuito que se
desarrolla en función a varios proyectos del site, primero el PLC - uPLCCS -
PIC el cual detalla un PLC de programación ICSP (donde uno debe contar con su
programador propio), pero este proyecto muestra que se puede programar tanto en
ASM, como C, como LADDER, gracias a un IDE para LADDER llamado LDmicro que se
encuentra disponible de forma gratuita en la Web de su autor (http://cq.cx/ladder.pl) también van a encontrar los tutoriales, también es posible programar en
C con el compilador que deseen (para Microchip), o bien el viejo conocido ASM.
Otro proyecto que se amalgama con este nuevo PLC USB es el transceptor USB/UART, el cual podemos encontrar en el blog como Conversor USB UART TTL, este en base al transceptor MCP2200 cumple la función de crear un puerto serial virtual vía la conexión USB, el cual con sus drivers (proporcionados gratuitamente por Microchip), encontraremos en nuestro administrador de dispositivos del OS, un nuevo puerto Serial.
Otro proyecto que se amalgama con este nuevo PLC USB es el transceptor USB/UART, el cual podemos encontrar en el blog como Conversor USB UART TTL, este en base al transceptor MCP2200 cumple la función de crear un puerto serial virtual vía la conexión USB, el cual con sus drivers (proporcionados gratuitamente por Microchip), encontraremos en nuestro administrador de dispositivos del OS, un nuevo puerto Serial.
Como la mayoría de los
microcontroladores que utilizan programación en circuito requieren una señal
serial de dos hilos por ejemplo el Clock y el Data, para la programación del
mismo, también requieren de una tensión elevada para acceder al modo programación
(actualmente existen microcontroladores que utilizan bajo voltaje para esta programación
LVP), La mayoría de los microcontroladores utilizan de 10 a 13V para entrar en modo programación
lo cual como sabrán excede nuestros 5V del USB, la solución de los
programadores en circuito del tipo serial, es aprovechar la norma RS232 que
establece unos +/-10V en su norma lo cual aprovechado y canalizado de
forma tal provee de esa tensión de programación a los microcontroladores.
Hasta
aquí seguimos igual, ya que no usaremos puerto Serial sino USB, aquí el
problema de los transceptores comerciales, la mayoría (el 99%) poseen una
salida serial a nivel TTL, es decir en 0 y 5V lo que no nos permite programar
el microcontrolador ya que requerimos mas de 10V para ello, Claramente es
posible realizar una pequeña fuente del tipo SMPS Step-Up para elevar esa tensión
en el pin de grabación pero aquí tenemos otra solución tan antigua como la
anterior.
Los llamados Bootloader,
estos son Cargadores de Arranque cumplen la función de canalizar el programa
que programamos en un sector preestablecido de la memoria interna sin necesidad
de programar a nivel hardware (con el acceso a programación que mencionaba
anteriormente con los 10 a
13V) sino que el programa se aloja mediante otros pines que no son los de programación
Data y Clock, es decir.
El microcontrolador debe programarse a nivel hardware
una sola vez, donde se grabara el Bootloader, una vez grabado este ya no se
requiere grabar nuevamente el microcontrolador.
Esto posee pros y
contras:
Pros, es que es mas sencilla
la programación, no se requiere de placas especiales de programación y facilita
la transferencia del archivo.
Contras, se requiere el
microcontrolador con el Bootloader grabado previamente y este mismo consume una
pequeña parte de la memoria del micro la cual se restara al programa que
realicemos.
En el caso del Bootloader también
se puede descargar gratuitamente desde la Web de Microchip (debe ser el que soporta el microcontrolador
que vamos a utilizar y también debe detallar el clock que utilizamos).
En el caso de este PLC se
utiliza un PIC16F876A el cual cumple su función correctamente pero siempre se
pueden utilizar otros diferentes, por razones de costos este viene bien, pero
claramente hay otros con puerto USB embebido mediante HID lo cual nos ahorra el
MCP2200.
El software debe ser
cualquiera que envíe el archivo vía serie que el puerto serial será el virtual
creado por el driver del MCP2200 mencionado anteriormente.
En mi caso he desarrollado
un programa cargador para este fin en lenguaje Delphi, pero pueden realizarlo
ustedes en el lenguaje que quieran solamente tienen que tener en cuenta que la
velocidad de transferencia serial es 9600bps, pero en realidad pueden usar
cualquier cargador de Internet.
En la nota de aplicación 851 pueden encontrar una versión del Bootloader de Micrcochip. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en012031
Especificaciones:
8 Entradas Digitales de 12/24V asiladas con opto-acoplador.
5 Entradas analógicas hasta 5V auto-reguladas.
4 Salidas a contacto de 12V a 250Vac 5A.
Puerto de alimentación de 12V con protección de cambio de polaridad.
Puerto USB, para la carga del programa y para comunicaciones seriales.
Botón de Reset, para reiniciar el sistema y para cargar el programa.
Microcontrolador a utilizar PIC16F876A
Tipo de memoria de
programa: Flash
Memoria de programa:
14KB
Velocidad del CPU: 5
MIPS
Memoria RAM: 368 bytes
Memoria EEPROM: 256
bytes
ADC: 5 canales de 10bit
de resolución
Temperatura de trabajo:
-40 a 125°C
A continuación se detalla el
hardware como también su PCB.