Armado de un programador

NUEVO PROYECTO: Recibe una curiosidad diaria con nuestra Newsletter. Pequeños asombros diarios para Personas Altamente Curiosas

Luego de ver en la anterior entrega como es el proceso de grabación de un microcontrolador, nos dimos cuenta de que para realizar dicho proceso necesitamos de una herramienta hardware: «el programador o grabador». El programador nos permite cargarle al dispositivo, ya sea de la familia AVR o PIC, el programa que nosotros desarrollemos en un lenguaje de programación determinado.
¿Qué programador escoger?
Dentro del mercado existen muchas opciones a la hora de elegir una herramienta  para programar microcontroladores. Tanto Microchip como ATMEL ofrecen sus propias herramientas:

 Microchip: PicKit2, ICD2
 ATMEL: ISP – MK2, AVR dragon. 

El problema radica en que las mismas pueden valer desde los U$S 50 hasta los U$S 200, demasiado dinero si solo queremos usarlo para fines educativos.
En la web pueden encontrar  de forma gratuita multitud de dispositivos de programación con un costo de fabricación mínimo. Entre ellos podemos destacar los siguientes por su funcionalidad:

 Para microcontroladores PIC: Pickit2 clone, JMD (véase TE – 20 SE).
 Para microcontroladores AVR: USBasp , STK200. 

En el desarrollo de este curso usaremos 2 familias de dispositivos diferentes, por lo que armar 2 programadores aumentaría el costo de desarrollo. Para evitar esto busqué en la web una forma de plasmar en una sola herramienta la capacidad de programar ambos tipos de microcontroladores ; la solución está en usar el programador pickit2 clone. El mismo nos permite programar casi toda la familia de microcontroladores PIC y en conjunto con la aplicación que pueden encontrar en esta página de internet: http://pickit2.isgreat.org/ , también vamos a poder usarlo para grabar dispositivos AVR.
El costo total para el armado del pickit2 clone es de aproximadamente U$S 25. Un precio razonable para una herramienta que nos permite grabar PIC y AVR.
Algunas características que posee este dispositivo son las siguientes:

  Conexión mediante el puerto USB.
 Capacidad para alimentar la tarjeta de aplicación en donde se encuentra el dispositivo a programar suministrando una corriente máxima de 500mA.
 Funcionamiento bajo Windows y Linux ( En Linux solo se puede programar PIC’s, ya que la aplicación para poder programar AVR’s solo funciona en Windows ).
 Mínima cantidad de componentes requeridos para su funcionamiento.
 Componentes de fácil adquisición en cualquier comercio de electrónica.
Gran soporte en la red, tanto en páginas web como en foros dedicados.
Gran velocidad de grabación.
Se puede integrar con MPLAB para grabar PIC’s y es totalmente compatible con el protocolo stk500 para grabar AVR’s, usando la aplicación PK2AVRISP.
No se necesitan driver’s para la PC, es totalmente plug and play.
Recomiendo ampliamente que los componentes que se necesitan para el programador se compren en tiendas online debido a que se consiguen los mejores precios. 

Empezando a diseñar el hardware:
El hardware del programador podemos diseñarlo de 2 formas básicamente:

NUEVO PROYECTO: Recibe una curiosidad diaria con nuestra Newsletter. Pequeños asombros diarios para Personas Altamente Curiosas

De forma manual: Engorroso, lleva mucho tiempo.
Con la ayuda del ordenador: Rápido desarrollo, posibilidad de correjir errores de forma automática, prolijidad en el diseño final.

Yo voy a optar por diseñarlo mediante el ordenador usando un programa de diseño asistido específico para electrónica.

Voy a utilizar el Eagle PCB, este software es uno de los más utilizados en el ambiente semiprofesional debido a su fácil uso y la gran cantidad de librerías de componentes que posee.

No es objeto de este curso el mostrarles como usar el Eagle pero veré de subir un tutorial paso a paso para mostrarles como funciona.

En la próxima entrega les enseñaré como queda el circuito impreso diseñado y también que componentes tienen que comprar para armarlo.

Luego de haber visto como programaremos nuestros dispositivos nos queda solamente empezar a encarar su construcción. En primera instancia quiero decirles que la construcción del programador se hará paso a paso para ver los detalles del armado.

Como les había dicho anteriormente el PCB ( Placa de circuito impreso), había elejido diseñarlo usando una herramienta de dibujo asistido por ordenador. Para mi gusto particular he usado Eagle PCB, pero pueden usar cualquier otro que se adapte a sus necesidades.

Luego de algunas horas de diseño pude terminar una versión preliminar del Pickit2 clone que usaremos para nuestras prácticas con microcontroladores.

En la siguiente imágen podemos ver como quedó el PCB.

 

Aquí vemos como quedaron distribuidas las pistas del circuito y también la distribución física de los componentes.
Debido a que algunos usuarios a veces tienen problemas con la identificación de algunos componentes claves del circuito , pondré imágenes a modo ilustrativo. Esto les ayudará a la hora de comprar y no cometer equivocaciones.
El primer componente que vemos en el circuito impreso es el conector USB tipo B. Muchos me han preguntado si se puede usar otro conector que no sea ese, la respuesta es SI.
En caso de modificar el tipo de conector utilizado , el usuario tendrá que modificar el diseño añadiendo el conector por su cuenta modificando el archivo de diseño del circuito impreso.
En la siguiente imágen les dejo el formato del conector utilizado en este diseño en conjunto con el cable que debemos comprar.

Este es el conector usado , hay que pedirlo como conector USB tipo B para circuito impreso.
El cable tiene que ser el siguiente:

Este cable hay que pedirlo como una extensión USB con conector tipo B de un lado y conector macho tipo A del otro.
Luego veremos el componente principal de nuestra herramienta, el PIC18F2550. Este microcontrolador se encargará de gestionar las comunicaciones con el host mediante el puerto USB como así también realizará todas las tareas de grabación / lectura y verificación de los diferentes dispositivos que debamos utilizar.
Este componente es una de las piezas más caras del programador con un valor aproximado en el mercado de U$S 9 la unidad.
En la siguiente fotografía vemos como es la apariencia de dicho componente para no confundirlo con otro. Quizás la imágen no es necesaria, pero para alguien novato en este mundo quizás le ayude a no cometer errores en la compra.

Por último tenemos el conector ICSP/ISP donde irán conectados los diferentes microcontroladores PIC/AVR que utilizaremos en nuestras práticas de programación.

 
Una vez que tengamos todos los componentes que necesitamos procedemos a soldar. Lo ideal es comenzar por los componentes más pequeños como diodos , puentes y resistencias. Luego seguir por los más grandes como integrados y conectores.
Recomiendo que todos los componentes se suelden con un cautín a 250º usando estaño de .75mm de diámetro. Tanto el cautín como el estaño lo pueden comprar en cualquier tienda de electrónica.
Una vez armado el circuito del programador , procederemos a conectarlo a una PC con puerto USB. Al conectarlo por primera vez aparecerá un cartel indicandonos que se ha conectado un dispositivo HID y luego mostrará que se ha instalado correctamente.
Imágen al conectarlo por primera vez.

Una vez que se han instalado los drivers automáticamente me aparecerá un cartel indicando que el dispositivo está listo para poder usarlo.

Bueno hasta aquí ya tenemos el programador listo para poder usarlo. En la próxima les mostraré como enlazarlo con el software de programación y ya podremos empezar con nuestras prácticas.
En el adjunto les pongo los archivos para que armen el programador como así también la lista de componentes que necesitan comprar.
http://www.mediafire.com/file/goq8o66j4d26yt6/PICKIT2.zip
Luego de estudiar como se arma el programador , les voy a mostrar como usar el software de programación para PIC’s. Más adelante les enseñaré como enlazarlo al IDE de programación.

A continuación de haber conectado el dispositivo a la PC y que la misma lo haya reconocido, debemos ejecutar el programa de control del mismo. Este software se descarga de forma gratuita desde la página de microchip buscando el link de descarga en este enlace: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023805

Una vez instalado el software de programación deberá quedarles una ventana como la que muestro en la imagen.

Como podemos ver tiene varias funciones pero aquí explicaremos sólo las más importantes.
1° PASO: Conectar el dispositivo (en este caso PIC), a programar en los pines ICSP del grabador. Recordar siempre que puertos de conexión utilizados para este proceso son los siguientes:

PIN RB7: PIN DATA O DATOS.

PIN RB6: PIN CLOCK O RELOG.

PIN MCLR: RESET MASTER / VPP.

PIN VCC: ALIMENTACIÓN POSITIVA.

PIN GND: MASA DE LA ALIMENTACIÓN.

Estos pines varían según el microcontrolador utilizado. Conectar el PIC y luego el programador a la PC, una vez realizado esto, iniciar el software de grabación.
2° PASO: Cuando inicie la aplicación, detectará automáticamente el dispositivo conectado y habilitará las funciones de grabación / lectura / borrado, etc.
Cuando hallamos realizado ambos pasos tendremos listo nuestro programador para poder trabajar.
FUNCIONES DEL SOFTWARE DE PROGRAMACIÓN:

Abrir archivo .hex.

Guardar archivo .hex.

Borrar dispositivo .

Grabar dispositivo.

Leer dispositivo.

Chequeo de dispositivo en blanco.

Estas son algunas de las funciones que se encuentran dentro del software que maneja el grabador. Hay que tener en cuenta que esta aplicación solo sirve para grabar microcontroladores PIC, si queremos grabar microcontroladores AVR tendremos que usar otras herramientas software que explicaremos más adelante.
Abrir un archivo hex:
Para poder abrir un archivo de programa .hex, deberemos hacer click en la pestaña file y luego import hex. Allí se abrirá una ventana para que busquemos el archivo que necesitamos grabar al microcontrolador. Una vez que hallamos abierto el archivo , visualizaremos el mismo en la ventana de la aplicación.
Grabar dispositivo:
Usando esta función activamos los servicios de programación que posee el microcontrolado usado, al igual que explicabamos en entregas anteriores del tutorial.
Para poder grabar la memoria del programa del dispositivo utilizado hacemos click en el botón: Write. Al principio veremos una barra de progreso que nos irá indicando el porcentaje de memoria grabada, luego de que termina el proceso, nos mostrará si la grabación se ha realizado con exito o si ha habido algún inconveniente o error.
Como podemos ver en la aplicación hay 2 ventanas diferenciadas:

Programm memory.

EEPROM data.

Estas 2 ventanas muestran la memoria de programa y de datos respectivamente. Si nuestro programa tiene algún dato que guardar en la memoria eeprom , el mismo se visualizará en la ventana correspondiente.
En caso de queramos grabar solo un tipo de memoria habilitaremos o no los casilleros enabled que posee cada ventana , lo que nos permitirá trabajar con los dos tipos de memoria por separado.
Borrar dispositivo:
Esta función borra por completo la memoria de programa y de datos. En caso de que querramos conservar los datos guardados en la memoria EEPROM solo deshabilitaremos la casilla enabled de la memoria de datos.
El botón Erase es el encargado de esta tarea.
Chequeo de dispositivo en blanco:
A través de esta utilidad, podremos comprobar si el proceso de borrado de la memoria del dispositivo se ha realizado correctamente. En caso de tener algún programa grabado en la memoria de programa, la aplicación nos mostrará un error, debido a que no se cumple la condición de memoria en blanco.
Leer dispositivo:
Lee la memoria de programa y la de datos y vuelca el contenido en los ventanas de visualización. La barra de progreso mostrará el porcentaje de memoria leida y un mensaje nos mostrará si el proceso ha tenido exito o no.
Esta función la brinda el botón read del menú de comando.
Guardar archivo hex:
Una vez leida la memoria de programa asi también como la memoria de datos, el programador tiene la opción de guardar el contenido de dicha lectura. Para esto vamos a file – export hex, allí el programa guardará los datos leidos en formato hexadecimal.
Con esto ya tenemos listo el hardware y software necesario para poder programar. Ahora nos queda comenzar a diseñar un pequeño entrenador para realizar las prácticas de programación que realizaremos de manera continua en las diferentes lecciones.

[resaltado] Este artículo fue escrito originalmente por Jonathan Moyano para Ikkaro[/resaltado]

Deja un comentario