Autor Tema: Duda principiante PICC, ICPROG, TE20  (Leído 2797 veces)

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

Desconectado ogris

  • PIC10
  • *
  • Mensajes: 26
Duda principiante PICC, ICPROG, TE20
« en: 16 de Abril de 2007, 09:47:08 »
Hola a todos, a ver si me podéis ayudar con varias dudas de principiante.

Me he construido la RRBOARD2 del amigo Redpic y estoy intentando echarla a andar con un mini ejemplo que enciende y apaga un led. Pues bien, el ejemplo viene hecho para el 16F84 y lo he pasado al 16F877 (con mi aun total ignorancia en este tema)  usando el compilador PICC. El código que queda es el siguiente

//****************************************************************
//* led.c
//* Ejemplo de programa que hace parpadear un LED
//* conectado al PORTE.0
//****************************************************************

#include "16F877.h"
#use delay(clock=20000000)              // Velocidad del Cristal : 20 Mhz

#byte port_e=9                         // Dirección del PORTE

void main() {
   set_tris_e(0);                      // Configura los Pines de Port E como salida
   port_e=0;

   while(TRUE) {                       // Bucle infinito
      port_e=0;                        // Apaga todos los Leds
      delay_ms(500);                   // Espera medio segundo
      port_e=1;                        // Enciende el bit 0.
      delay_ms(500);                   // Espera otro medio segundo
   }
}

Aparte de que el programa esté mal, que seguramente lo esté, cuando lo compilo y lo abro con el Icprog me sale que:
--> "El fichero no tiene configuración": esto sí se porqué es pero pongo la configuración a mano en el icprog)
--> "El fichero no contiene un valor ID para el dispositivo": esto no tengo ni idea de por qué sale

haciendo caso omiso de los warning me dipongo a probar a programar el pic seleccionando el oscilador a RC, CP OFF y todo desactivado excepto WRT, ¿es así? y conecto mi TE20 con el adaptador para el 16F877 que encontré en esta página http://www.mecatronica.es/modules.php?name=News&file=article&sid=9
 
Tras la verificación de sale el error de fallo en la dirección 0000h.

Lo que más me extraña es que si en ICprog pongo la vista en ASM el código que sale es para el PIC 16F84

            LIST      P=16F84, F=INHX8M
            include "P16FXX.inc"
            ORG     0x0000
            ...

No sé por donde empezar, si la cago en el programa en C, en el compilador PICC, en el ICPROG, en el adaptador para el TE20 (por cierto, que el TE20 me funciona bien al programar los 16F84)...

A ver si podéis echar una mano. Muchas gracias y un saludo.

Desconectado paco1980

  • PIC16
  • ***
  • Mensajes: 129
Re: Duda principiante PICC, ICPROG, TE20
« Respuesta #1 en: 16 de Abril de 2007, 16:56:17 »
en primer lugar te aconsejaría que usaras el winpic800 del amigo sisco en vez del icprog.
y luego, si trabajas con una frecuencia de 20mHz el oscilador es HS y no RC.

Desconectado ogris

  • PIC10
  • *
  • Mensajes: 26
Re: Duda principiante PICC, ICPROG, TE20
« Respuesta #2 en: 17 de Abril de 2007, 03:12:59 »
Probé con el winpic800 poniendo el programador en TE20 y al comenzar a grabar me salía un error, ahora mismo no lo tengo delante pero en cuanto pueda lo pongo.

¿podríais pasarme un hex válido para el 16F877 con los fuses configurados correctamente? da igual lo que haga, solo quiero conseguir programar una vez el 16F877 y así voy descartando cosas.

muchas gracias y un saludo

Desconectado pelusac

  • PIC16
  • ***
  • Mensajes: 118
Re: Duda principiante PICC, ICPROG, TE20
« Respuesta #3 en: 17 de Abril de 2007, 12:10:29 »
Yo generaría un nuevo archivo diferente y metería este código:
Código: [Seleccionar]
#include <16f877.h>
#fuses NOBROWNOUT,NOCPD,NOWRT,NODEBUG
#fuses HS,NOWDT,NOPROTECT,PUT,NOLVP
#use delay (clock=20000000)

void main (void)
{
 set_tris_e(0x00);
 disable_interrupts(global);
  do{
     output_high(pin_e0);
     delay_ms(500);
     output_low(pin_e0);
     delay_ms(500);
  }while(1);
}

Te aseguro que funciona con Winpic y el TE-20.
Saludos.

Desconectado juanez

  • PIC12
  • **
  • Mensajes: 90
Re: Duda principiante PICC, ICPROG, TE20
« Respuesta #4 en: 17 de Abril de 2007, 15:13:57 »
Hola ggris, como ya te an comentado utiliza el winpic800, asegurate de tenerlo bien configurado y seleccionar el pic que vas a grabar y luego en la pestaña "DISPOSITIVO",  dale al test hardware, haber si reconoce bien tu programador y luego a detectar dispositivo, si te detecta bien tu pic, borralo antes de grabarlo y luego programalo, que seguro que funciona.


Desconectado ogris

  • PIC10
  • *
  • Mensajes: 26
Re: Duda principiante PICC, ICPROG, TE20
« Respuesta #5 en: 18 de Abril de 2007, 19:10:52 »
lo conseguí!!! :-/ mañana empiezo a practicar con el código

El problema era el puerto RS232 de mi portátil, me di cuenta que al conectar el TE20 al portátil se encendía el led verde mientras que si lo conecto al puerto serie de mi PC fijo se enciende el led rojo, ¿alguien sabe por qué?

tambien me fallaba el icprog con el TE20 al programar el 16F877,  incluso en el ordenador fijo, con el winpic me va perfectamente. De todas formas en cuanto pueda me monto el GTP-USB Lite (no tengo pelas para el plus).

espero que esto pueda ayudar a alguien con el mismo problema, nunca se me habria ocurrido que el puerto serie del portatil fuera diferente.

muchas gracias a todos

Desconectado bones18

  • PIC12
  • **
  • Mensajes: 54
Re: Duda principiante PICC, ICPROG, TE20
« Respuesta #6 en: 23 de Abril de 2007, 04:22:21 »
El puerto serie del portatil viene integrado?  o usas un adaptador usb-rs232, es que los grabadores a veces no funcionan pq el connector no subministra suficiente corriente, llegar a pasar de 0-5v a -12 +12, pero no con la suficiente intensidad para hacer funcionar el grabador.

adios

Desconectado ogris

  • PIC10
  • *
  • Mensajes: 26
Re: Duda principiante PICC, ICPROG, TE20
« Respuesta #7 en: 24 de Abril de 2007, 13:39:45 »
el puerto serie viene integrado, y siempre me ha funcionado bien para otros temas. Lo que me extraña es que se encienda el led verde del TE20 en lugar del rojo. Quizá sea eso y no suministre la suficiente intensidad para grabar el pic.

saludos


 

anything