Technorati Profile Add to Technorati Favorites ELECTRONICA DESARROLLO: PROGRAMADORES PARA PICs

sábado, 9 de mayo de 2009

PROGRAMADORES PARA PICs

Este blog fue diseñado para apoyar a la comunidad de desarrolladores de electrónica. Se publicarán artículos de proyectos desarrollados por el Administrador del blog, Ingeniero Electrónico, quien estará atento a sus inquietudes o sugerencias igualmente todos pueden compartir sus conocimientos e intercambiar opiniones o aportes dentro de un marco de respeto y tolerancia. Los artículos publicados aquí son elaborados con tal sencillez que son totalmente comprensibles y los proyectos indicados pueden ser llevados a cabo por cualquier estudiante o profesional del ramo de la electrónica.

--English-------Español


PROGRAMADORES PARA PICs

En el post anterior llamado “Lenguajes de programación para PICs", en la categoría de firmware, yo describí y comparé los lenguajes de programación para PICs. Sin embargo, un tema pendiente es la interface entre el ordenador y el PIC. En este artículo describriré los programadores no sin antes hacer una breve introducción a algunos conceptos y descripciones de las herramientas de desarrollo para contextualizar al lector en el objetivo final: El programador.

Objetivos:
  • Clarificar conceptos y terminología empleados cuando nos referimos a las herramientas de desarrollo para PIC.
  • Entender los conceptos básicos sobre la interfaz del programador.
  • Describir los programadores que ofrece Microchip y dar opciones alternativas para la programación de PICs.
  • Dar un vistazo a los emuladores y depuradores de Microchip.
Marco Teórico

Es importante clarificar algunos conceptos sobre las herramientas de desarrollo para PICs en cuanto los términos compilar, depurar, simular y emular. En diseño electrónico esos términos tienen diferentes significados.

Compilar: Es el proceso de traducir un código fuente al lenguaje de máquina. Específicamente un código fuente en lenguaje ensamblador o C a OPCODES en formato hexadecimal o binario.

Depurar: Es el proceso de revisar el código fuente o programa para eliminar posibles errores en el mismo y a la vez optimizar el programa e incrementar su velocidad de ejecución. Los procesos de depuración se emplean en las etapas de diseño y desarrollo.

Simular: En el contexto de los microcontroladores PIC, simular es la manera de llevar a cabo un experimento real en un ambiente virtual corriendo paso a paso o por bucles para analizar el desempeño y los registros afectados en el dispositivo. Usted puede incluso simular estados lógicos en los pines y verificar comportamientos en su programa. Todo esto puede llevarse a cabo si se cuenta con las apropiadas herramientas de software.

Emular: Cuando se tiene la interfaz apropiada puede fingirse que se tiene una memoria de programa de un PIC y correr el código fuente (firmware) desde un ordenador y observar en la memoria de programa y los registros internos y al mismo tiempo el comportamiento del programa cuando señales externas reales son aplicadas.
Nosotros emulamos para depurar el código fuente. Dicha emulación puede efectuarse en tiempo real y a plena velocidad (velocidad máxima del dispositivo). Esto no solo requiere de una apropiada interfaz de hardware sino también de software en el ordenador.

Microchip clasifica sus herramientas de desarrollo en cuatro grupos:

  • Compiladores: para compilar código fuente. Estos en todos los casos se tratan de herramientas de software.
  • Emuladores: para depurar y emular códigos fuente, inclusive programar dispositivos.
  • Depuradores: Para depurar y desarrollar, algunos de los cuales prestan el servicio de programación.
  • Programadores: Dispositivos para programación únicamente.

Figura 1. Clasificación de las herramientas de desarrollo de Microchip.

Muchas herramientas de desarrollo interactúan con el Entorno de Desarrollo integrado o MPLAB IDE, pero no todas necesitan este entorno o un computador para trabajar por que algunas de ellas pueden desempeñarse en modo autónomo para programar dispositivos sin un computador.

Un programador es un dispositivo electrónico que comunica un computador con un PIC para transmitir datos, especialmente un código fuente compilado.

El diagrama de bloques para la interfaz del programador se muestra en la figura 2.

Figura 2. Diagrama de bloques de la interfaz del programador.

Algunos Depuradores y Emuladores pueden incluir una interfaz programadora o un dispositivo programador interno para programar microcontroladores PIC.

Un Vistazo a los Emuladores y Depuradores de Microchip

En la presentación 1, solamente describo aspectos generales acerca de la herramientas de desarrollo de Microchip, emuladores y depuradores, pero si usted quiere profundizar más en este tema , puede vistar : START NOW WITH MICROCHIP DEVELOPMENT TOOLS.


Presentación 1. Emuladores y Depuradores de Microchip.

Los Programadores de Microchip

Los programadores más populares se detallan a continuación:

1. MPLAB PM3

Definición: El MPLAB PM3 es un Dispositivo Programador Universal que opera fácilmente con un ordenador o de manera autónoma.


Usos:
  • Programa la línea completa de microcontroladores PIC y dsPIC.
  • Programa dispositivos usando ICSP (In-Circuit Serial Programming) en las tarjetas de aplicación.
  • Verifica que el firmware dentro del microcontrolador corresponda a su código fuente y también verifica si su microcontrolador está en blanco.
  • Lee el firmware programado en un microcontrolador PIC para llevarlo hasta la ventana de Programa de Memoria del MPLAB IDE y así poder depurarlo y/o transferirlo a otros microcontroladores PIC.
  • Con una tarjeta de memoria opcional tipo SD-MMC, usted puede almacenar y transportar configuraciones para programar.
  • Usando MPLAB PM3 en conjunto con MPLAB IDE, MPLAB PM3 simplemente se convierte en una herramienta más de MPLAB IDE permitiéndole rápidamente depurar y probar su firmware antes de cargarlo a su dispositivo.
  • Sin conexión a un PC, el programador se comporta de manera autónoma. En este modo las principales características de programación están disponibles tales como: leer, programar y verificar.
Notas:
  • Cada versión de MPLAB IDE trae actualizaciones para ayudar a MPLAB PM3 a soportar nuevos dispositivos.
  • Para actualizar la lista de dispositivos programables es necesaria la conexión con un PC con MPLAB IDE.
  • MPLAB PM3 requiere los siguientes aditamentos para trabajar en un ambiente Windows: Software MPLAB IDE y un driver para comunicaciones USB.

Comunicaciones: MPLAB PM3 tiene dos puertos de comunicaciones, serial (COM 1-4) y USB estándar. La comunicación serial viene a 56K por defecto o 9.6 K baudios, 8 bits de datos, 1 bit de parada y sin paridad.

Componentes:
  • Unidad programadora MPLAB PM3.
  • Cable serial RS-232 para conexión a un PC.
  • Cable USB para conexión a un PC.
  • Cable ICSP.
  • Fuente de alimentación y cables de poder para dicha fuente.
  • Un CD con MPLAB IDE.
  • Guías de usuario y documentación técnica en el CD.
  • Sockets para insertar dispositivos y programarlos.
Partes adicionales:

Principales Sockets:

• Part Number: AC164301 - 18L/28L/40L DIP Socket Module for MPLAB PM3: This socket module supports 8P, 14P, 18P, 28P, and 40P DIP PICmicro or dsPIC devices on MPLAB PM3 Programmer.
• Part Number: AC164303 - 16L (.150), 18L, 28L (.300) SOIC Socket Module for MPLAB PM3: This socket module supports 64L TQFP PICmicro or dsPIC devices on MPLAB PM3 Programmer.
• Part Number: AC164305 - 44L TQFP Socket Module for MPLAB PM3: This socket module supports 44L TQFP PICmicro or dsPIC devices on MPLAB PM3 Programmer.
• Part Number: AC164306 - 20L TSSOP Socket Module for MPLAB PM3: This socket module supports 20L TSSOP PICmicro or dsPIC devices on MPLAB PM3 Programmer.
• Part Number: AC164307 - 28L SSOP Socket Module for MPLAB PM3: This socket module supports 28L SSOP PICmicro or dsPIC devices on MPLAB PM3 Programmer.
• Part Number: AC164308 - 68L PLCC Socket Module for MPLAB PM3: This socket module supports 68L PLCC PICmicro or dsPIC devices on MPLAB PM3 Programmer.
• Part Number: AC164309 - 44L PLCC Socket Module for MPLAB PM3: This socket module supports 44L PLCC PICmicro or dsPIC devices on MPLAB PM3 Programmer.

Costo: USD 895 incluyendo todos los components excepto los sockets. Hay un costo adicional para cada socket.

2. PICSTART PLUS

Definición: El PICSTART PLUS es una herramienta de desarrollo que habilita al desarrollador para cargar microcontroladores con código fuente compilado.


Usos:

  • Usando MPLAB IDE como interfaz de software, el PICSTAR PLUS programa microcontroladores PIC , incluyendo memoria de programa, bits de configuración y localizaciones ID.
  • Usted puede verificar si los dispositivos están en blanco, verificar que el código cargado en el PIC corresponda al firmware desarrollado, y puede leer los dispositivos no protegidos para llevarlo hasta la ventana de Programa de Memoria del MPLAB IDE y así poder depurarlo y/o transferirlo a otros microcontroladores PIC.
Notas:
  • Dispositivos que corresponden a empaques distintos a DIP y que sean soportados por PICSTART PLUS necesitan adaptadores adicionales. Actualmente estos adaptadores están disponibles en el web site de Microchip.
  • En el futuro es posible la actualización para soportar nuevos dispositivos, esta actualización se hace a través de MPLAB IDE.

Comunicaciones: PICSTART PLUS se comunica con un ordenador a través de un cable RS-232 tipo D. PICSTART PLUS es el equipo de comunicaciones o DCE y el hanshaking de hardware se hace a través de las líneas Clear to Send (CTS) y Request to Send (RTS). El programador por defecto está configurado así: 19.2 k Baudios, 8 bits de datos, un bit de parada, sin paridad, con hardware de control de flujo y los buffers FIFO deben estar deshabilitados.

Componentes:
  • Unidad programadora PICSTART Plus.
  • Cable de interface RS-232 para comunicación por puerto serial con un PC.
  • Fuente de alimentación de 9 Vdc.
  • Un CD con MPLA IDE.
  • Un chip en blanco para programar.

Costo: USD 200 , el kit contiene el programador PICSTART PLUS, el cable de Comunicaciones RS-232, un manual de usuario y un CD con MPLAB IDE.

3. PRO MATE II

Definición: el dispositivo PRO MATE II le permite programar toda la gama de microcontroladores PIC , productos de seguridad KEELOQ y memorias serial EEPROM. PRO MATE II opera bajo MPLAB IDE y también como una unidad autónoma.

Nota: Este producto está discontinuado pero aún pueden conseguirse sus accesorios y partes.

Otras Soluciones

Adicionalmente a los programadores ofrecidos por Microchip hay otros programadores ofrecidos por otros fabricantes. Varios de estos programadores soportan no solo microcontroladores de Microchip sino también de otros fabricantes de microcontroladores. Por nombrar algunos:
  • Conitec Data Systems tiene dos máquinas programadoras de dispositivos: GALEP-5 y GALEP-5D. Cada una tiene su propia lista de dispositivos soportados pero Conitec tiene un servicio gratuito para dispositivos de demanda de modo que pueda hacerse una rápida implementación del dispositivo deseado dentro de la lista del programador.
  • Xeltek tiene ocho SuperPro Programadores Universales: 5000, 5004GP, 501S, 500P, 300U, 9000U, 280U, 580U. Algunos de ellos pueden trabajar como unidades autónomas. También, si sus necesidades de programación son de volumen, algunos de ellos le permiten programar mas de un microcontrolador PIC a la vez. Xeltek ofrece el servicio de actualización gratuito de sus programadores y de su software desde su web site a través de un servicio llamado Centro de Descarga.
  • Quasar Electronics ofrece diferentes opciones de programadores de acuerdo con sus necesidades.
  • Hobby Engineering ofrece también programadores más limitados pero a su vez más económicos.

Adicionalmente a la descripción previa de opciones de programadores, yo les puedo mencionar que la mayoría de microcontroladores PIC poseen una programación In- Circuit (ICSP) incorporada. Esta es importante por que de esta manera usted puede Programar un dispositivo específico. ICSP es una técnica mejorada de ISP (In System Programming) implementada en los microcontroladores tipo OTP y Flash donde un dispositivo es programado antes o después de haber sido ensamblado en la aplicación. Esta técnica solamente emplea dos pines de I/O para entrada y salida serial de datos haciéndola muy fácil de usar y lo menos intrusivo posible. El datasheet para cada dispositivo trae las respectivas especificaciones para implementar ICSP. Recuerde, ICSP es únicamente útil para un dispositivo específico por lo que una interfaz ICSP implementada a cierto dispositivo puede no funcionar para otro. Otra cosa que debe tener en cuenta es un software adicional para programar el PIC empleando esta interfaz.

Finalmente, si usted es de los que le gusta hacer las cosas por sí mismo, en Internet usted puede encontrar muchas opciones para construir su propio programador. Allí, usted puede encontrar desde programadores para dispositivos específicos hasta programadores Semi-profesionales, cada uno con sus ventajas y desventajas. También es posible que usted requiera de software adicional a MPLAB IDE para quemar un PIC con su firmware. Yo no recomiendo ningún programador en particular por que éste depende de sus requerimientos y además yo tendría que construirlo y probarlo para recomendárselo.

1 comentario:

Meta dijo...

Hola:

Tu Blog me parece interesante. ¿Le interesa enlazarnos o afiliarnos entre nosotros?

Mi Blos es: http://electronica-pic.blogspot.com

Un cordial saludo.