Por fin!!! Grabando nuestros programas en ASM y C en los PIC's

Iniciado por Casidiablo, 10 Mayo 2006, 03:51 AM

0 Miembros y 1 Visitante están viendo este tema.

Casidiablo

Bueno, ya he posteado sobre los microcontroladores y sobre los circuitos que se pueden montar y eso; ahora que ya sabemos qué es un microcontrolador (exactamente los PIC 16C84 y 16F84), cómo probar programas simples en ASM y C, y tenemos los esquemas de los mismos para implementarlos en circuitos. Es hora de probar una tool que nos permitirá grabar los programas en nuestros PIC's y probar nuestros circuitos...

La tool que vamos a manejar es el ICProg (--descarga directa--) y las pruebas las he realizado con el grabador (o quemador) Te21se:

La puedes comprar en AP-ELEctronics ;)


En esta ocación vamos a configurar nuestra tool para que quede al pelo xD; lo primero descargarla, ahora copiamos la carpeta en algún lugar donde te quede cómodo abrir (c:\ por ejemplo). Ejecutamos el icprog.exe y posiblemente nos saldrá algo como esto (si es nuestra primera vez... eso se escuchó muy virginal xD):


Le damos ok, y tendremos lo siguiente (en algunos pc's da unos errores extraños, basta con cerrar la aplicación y volverla a lanzar):


Lo primero que haremos será configurar el idioma de la tool en "Español". Vamos al menu Settings->Options y picamos la pestaña Language.


Le damos ok, y ahora vamos al menú Ajustes->Tipo Hardware con lo que nos saldrá algo como esto:


MUY IMPORTANTE: Deberemos indicar correctamente el puerto COM al que vamos a conectar el cable. Ten en cuenta que si indicamos COM1 en ICPROG y conectamos el cable al COM2 no funcionará. En algunos ordenadores con módem interno, puede darse el caso que esté ocupando el COM1, y los puertos del ordenador sean el COM2 y el COM3.

En caso de errores en la grabación, se puede ir probando, bajando el valor de Retardo I/O. Aconsejo entre 4 - 7.

Ahora vamos a hacer una configuración general de nuestra aplicación; vamos a Ajustes->Opciones y colocamos todo como lo veremos a continuación:










Le damos OK y ya tenemos nuestro Icprog configurado ;)

Pasos a seguir para quemar nuestros PIC's

Voy a indicar algunas cosas que han de ser obvias para muchos de uds. que sí saben de electrónica... necesitas tener una tarjeta Piccard-1 (PIC16F84) o Piccard-2 (PIC16C84), junto con sus correspondientes circuitos integrados, un programador, el programa ICPROG y:

  • En el caso de PICCARD-1, dos archivos: uno .HEX para programar la PIC y el otro .BIN (en ocasiones también .HEX) para programar la EEPROM
  • En  el caso de PICCARD-2, un solo archivo para la PIC.
Nota: si no entiendes que es eso de la EEPROM, puedes hecharle un vistazo a este post ;)

Lo primero es insertar nuestro PIC en el zócalo adecuado del Te21se y en su posición correspondiente. Observa los chips de cerca, tienen una pequeña muesca en forma de media luna o de punto, que debe coincidir con la muesca de la misma forma de los zócalos del grabador, si los inviertes quemarás los put0s PIC's (no saldrá humo como en las películas xD, pero ya no funcionará más ;( ).

Una vez están correctamente insertados, conectamos el cable serie, por un lado al programador y por el otro a un puerto COM libre del ordenador. Ahora ejecutamos el programa ICPROG que ya deberemos tener bien configurado.

Indicamos que vamos a grabar el primero de los dos chips, el PIC16F84, con los siguientes pasos:

Ajustes -> Dispositivo -> Microchip Pic -> Mas -> PIC16F84


Ahora cargaremos el archivo que se va a grabar en el PIC, estos son los pasos:

Archivo -> Abrir Datos -> *.hex, (de los dos archivos hay que abrir el que tiene extensión .HEX puesto que el .BIN es para grabar el otro chip).

Esto se puede parecer a un editor hexadecimal, herramienta común entre los crackers. Una vez abierto, deberemos colocar las opciones Oscilador en XT y desactivar las opciones Bits configuración.


Listo!!!! Ahora solo no queda grabar la información del HEX en nuestros PIC's: Menu "Comando" -> "Programar todo":



Solución de Problemas

Este pequeño articulo de Solución de problemas frecuentes lo he pillado en un libro de Ap-Electronics. Dice así:

Si usando el programador no lee, no programa o genera errores de verificación (error de verificación en 0000H), se puede solucionar el problema en la mayoría de las ocasiones revisando los siguientes puntos:

  • El programador debe utilizarse desde un ordenador con Windows ME - 98 - 95. La familia Windows 2000 no soporta ICPROG.
  • Probar con un sólo elemento a programar o leer, en el zócalo correspondiente, es decir un PIC ó una EEPROM.
  • Probar con un sólo elemento a programar o leer, en el zócalo correspondiente, es decir un PIC ó una EEPROM.
  • Comprobar que la PIC y la EEPROM son los correctos, y han sido insertados con su muesca coincidiendo con la muesca del zócalo de programación, y que a su vez coincide con el PIN 1 en la serigrafía de la placa, marcado con un 1.
  • Comprobar que la PIC o la EEPROM se encuentra completamente insertado en su zócalo.
  • Comprobar que ha sido seleccionado en el menú el elemento que está programando en ese momento, es decir si se procede a programar un PIC16F876, el elemento seleccionado deberá ser el PIC16F876. En los anteriores pasos hemos indicado como seleccionarlo.
  • Comprobar que el menú Ajustes/Tipo Hardware (F3) se encuentra bien configurado.
  • La PIC y la EEPROM necesitan ser programados despacio, si su puerto está configurado a mucha velocidad esto puede originar fallos en la programación y verificación del mismo. Para reducir la velocidad de su puerto siga la siguiente secuencia de comandos con el ratón:

            Mi PC - Panel de control - Sistema - Administrador de dispositivos - Puertos COM y LPT - Puertos de comunicación COM1 ó COM2 - Configuración del puerto.

            El puerto puerto debe estar configurado de la siguiente manera:

                Bits por segundo: 9600 (ó menos en caso de errores)
                Bits de datos: 8 Paridad:
                Ninguna Bits de paridad: 1
                Control de flujo: Xon/Xoff

  • Al programar la PIC o la EEPROM, comprobar que el programa cargado y que se pretende programar en el integrado, tiene la extensión correcta, siendo generalmente *.HEX o *.BIN. Comprobar que el programa a programar en la PIC es el correcto y es el correspondiente al mismo, si intenta programar un programa de mayor tamaño a la capacidad del PIC, se producirá un mensaje de error.
  • Probar a utilizar en otro ordenador, ya que los programadores que se alimentan del puerto serie, son muy sensibles a la tensión que reciben desde el mismo y no todos los ordenadores son capaces de mantener la misma tensión durante el proceso de grabación.
Saludos!!!

{05c4r}

Para empezar esta muy bien programar con un T20 y el ICPROG pero aun asi yo os animaria a hacer 2 cosas.

1.- En primer lugar si lo que kereis es aprender a programar microcontroladores (aun sabiendo poco o nada de electronica) es mejor que aprendais de una forma pseudoreal usando el simulador PROTEUS ISIS que os permite simular el ejercicio que vosotros kerais con la placa que vosotros os diseñeis. Asi una vez que os defendais podeis pasar a comprar una plakita sencilla o hacerosla vosotros mismos

2.- olvidaros de ICPROG y del T20, compraros el debugger ICD2 de microchip que cuesta un pokito mas y os permite depurar el programa paso a paso, viendo donde falla con total exactitud y pudiendolo solucionar sin tener que estar dandole vueltas a la cabeza

Meta

Buen aporte, pero ya se peuden bajar los driver ic-prog.sys para buen funcionamiento de los windows de ahora.

http://blogs.gamefilia.com/rehome
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Casidiablo