Autor Tema: PIC 16F877 que arranca y deja de funcionar  (Leído 8914 veces)

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

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #15 en: 10 de Octubre de 2007, 10:55:33 »
Pos lo que desscribes, dice que es problemas de hardware. Estas con PCB o Protoboard?

Ya decia yo que era Hardware.. FELICITACIONES!!!

jeje, fuiste algo así como el Sherlock Holmes del caso. :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado LABmouse

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3575
    • Juntos es mejor
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #16 en: 10 de Octubre de 2007, 14:22:28 »
jeje, fuiste algo así como el Sherlock Holmes del caso. :mrgreen:

Cierto que si!!!!!!!

SALUDOS!!  :wink:

Desconectado doteiza

  • PIC10
  • *
  • Mensajes: 4
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #17 en: 25 de Noviembre de 2007, 13:48:16 »
Hola a todos!!!

Mi problema es similar al que uds. ya resolvieron y consiste en lo siguiente:
Tengo en protoboard un proyecto con el pic 16F873 y que al igual que akira·ve
uso el puerto análogo y en vío datos al pc vía RS232, la diferencia entonces es que el
pic apaga :z), no lo hace de apoco ni con parpadeos, ni tampoco tiene problemas
con los tiempos asignados sino que funciona excelente por un par de minutos y se apaga.

Espero que me ayuden, entrego el proyecto en un par de semanas más :8}.

Saludos....

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #18 en: 25 de Noviembre de 2007, 14:41:05 »
Hola doteiza,

Pon el código para que le podamos echar un vistazo.

Si fuera un 18F diría que sin querer tenías el WDT activado y al par de minutos te reiniciaba el PIC, pero, siendo un el 16F873... no se.

Prueba a dejar solo la comunicación RS232 (anula la parte de las conversiones) o observa si se cuelga. También lo puedes hacer al reves (anula el RS232 y deja sólo las conversiones) así podrás acotar un poco el problema.

Esperamos noticias.


Un saludo desde Alicante.

Desconectado doteiza

  • PIC10
  • *
  • Mensajes: 4
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #19 en: 26 de Noviembre de 2007, 00:16:58 »

Hola azicuetano!!!
Gracias porla respuesta expedita...

Aviso que yo programo en "c" y quizas está un poquito largo pero ahí va...



#include <16F873A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)  // Jumpers: 8 to 11, 7 to 12
#byte  PuertoB = 0x06
#byte  PuertoC= 0x07

int a=0,h=0,m=0,s=0,d,g,f=0,i=0,cont=1,p=0,tiempo;
int ciclo,temp;
long t[5];

void toma_muestra();    //declaración de procedimientos.
void ejecucion_dia();
void ejecucion_noche();
void ejecucion1_dia();
void ejecucion1_noche();
void fotoperiodo();

#INT_TIMER2               //Rutina de interrupcion por timer 2,
void timer2()            //Funcion que es llamada por la interrupcion
 {                      //del timer para conformar el reloj
      a++;             // de horas miniutos segundos y dias de operacion

   if(a>24)             //Contador de interrupciones
   {
      if(s<59)          //Contador de segundos
      {
         s++;
      }
      else
      {
         if(m<59)        //Contador de minutos
            m++;
         else
         {
           if(h<23)      //Contador de horas
               h++;
            else
            {

               h=0;
            }
            m=0;
         }
         s=0;
      }
      a=0;
   }
 }

void main()
{
setup_port_a(A_ANALOG_RA3_REF);
setup_adc(ADC_CLOCK_INTERNAL);
setup_timer_2(T2_DIV_BY_16,250,10);   //Configurando la duracion de
set_timer2(0);                       //cada interrupcion del timer
set_tris_b(0x01);                   //declaración de los puertos,
set_tris_c(0x00);                  //puerto B de salida menos RB0
enable_interrupts(GLOBAL);        //y puerto C de salida.
enable_interrupts(INT_TIMER2);

do
 {
  if(s%2==0)
  {
  toma_muestra();              //ciclo eterno, que ejecuta los procedimientos
  fotoperiodo();               //de cada una de las variables ambientales
  temp=(t[0]+t[1]+t[2])/3;     //y las envía al pc.
  if(bit_test(PuertoB,0))
    {
     ejecucion_noche();
     ejecucion1_noche();
     if(tiempo<24)
     {ciclo=1;}
     else
     {ciclo=0;}
    }
  else
   {
   ejecucion1_dia();
   ejecucion_dia();
   ciclo=1;
   }
  printf("%u%2U%u\r\n",g,d,ciclo);
  delay_ms(1000);
  }
 }while (true);

}

void Toma_Muestra(void)   //Funcion que toma las muestras de voltaje entregadas
{                         //por los sensores
   for(i=0;i<6;i++)
   {
      if(i==0)
      {bit_set(PuertoB,4);
       bit_set(Puertob,5);
       output_b(0x00);
      }
      if(i==1)
      {bit_set(PuertoB,4);
       bit_set(Puertob,5);
       output_b(0x02);
      }
      if(i==2)
      {bit_set(PuertoB,4);
       bit_set(Puertob,5);
       output_b(0x04);
      }
      if(i==3)
      {bit_clear(PuertoB,4);
       bit_set(Puertob,5);
       output_b(0x06);
      }
      if(i==4)
      {bit_clear(PuertoB,4);
       bit_set(Puertob,5);
       output_b(0x08);
      }
      if(i==5)
      {bit_clear(PuertoB,4);
       bit_set(PuertoB,5);
       output_b(0x0A);
      }
      set_adc_channel(0);
      delay_us(50);
      t=Read_ADC();
      delay_us(50);
   }
}

void ejecucion_dia()
{
 bit_clear(PuertoC,3);    //ejecuta las acciones a tomar segun temperatura
 delay_us(2);
 bit_clear(PuertoC,4);
 delay_us(2);

 if(temp<19)
 {
  bit_set(PuertoC,3);
  delay_us(50);
 }
 else
  if(temp>23)
  {
   bit_set(PuertoC,4);
   delay_us(50);
  }
 d=temp;
 }
void ejecucion_noche()
{
 bit_clear(PuertoC,3);
 delay_us(2);
 bit_clear(PuertoC,4);
 delay_us(2);

 if(temp<17)
 {
  bit_set(PuertoC,3);
  delay_us(50);
 }
 else
  if(temp>21)
  {
   bit_set(PuertoC,4);
   delay_us(50);
  }
 d=temp;
}

void ejecucion1_dia()  //ejecuta las acciones a tomar segun humedad.
{
 bit_clear(PuertoC,5);
 delay_us(2);

 if(t[3]<73)
  {
   bit_set(PuertoC,5);
   delay_us(50);
  }
 g=t[3];
}

void ejecucion1_noche()
{
 bit_clear(PuertoC,5);
 delay_us(2);

 if(t[3]<83)
 {
  bit_set(PuertoC,5);
  delay_us(50);
  }
 g=t[3];
}

void fotoperiodo()     //procedimiento a cargo de la cuenta de horas y encendido
{                 //de las luces.

 tiempo=tiempo+(s/s)+cont;

 if (tiempo>50)
  tiempo=25;

  if(bit_test(PuertoB,0))
   if(tiempo<24)
     {
      bit_set(PuertoC,2);
     }
   else
      {
      bit_clear(PuertoC,2);
      }
 else
      {
      bit_clear(PuertoC,2);
      f++;
      if(f==1)
      tiempo=0;
      }
}

Mañana sin falta pruebo lo que me dices...
Gracias nuevamente.... Saludos :-/.

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #20 en: 26 de Noviembre de 2007, 04:34:06 »
Hola doteiza,

He visto un par de cosas que me resultan un poco extrañas.

#fuses HS,NOWDT,NOPROTECT,NOLVP

Utilizas un cristal de 4Mhz y para ello en lugar de poner HS tienes que poner XT.

Mira a ver si así te funciona bien.

Yo creo que el problema viene por la comunicación. Para ver si estoy en lo correcto necesito que hagas una prueba. No enganches a ningún sitio los pines C6 y C7 y ten el sistema encendido durante mucho tiempo. Me temo que es posible que sufras algún tipo de colisión y que por eso se te queda el PIC parado. Si no tienes esos pines (C6 y C7) enganchados a ningún sitio las colisiones no se producirán y podras saber a la perfección que ese es tu problema.

Mira esto:

http://www.todopic.com.ar/foros/index.php?topic=19026.msg134904#msg134904

Ya nos dices algo.


Un saludo desde Alicante.

Desconectado doteiza

  • PIC10
  • *
  • Mensajes: 4
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #21 en: 26 de Noviembre de 2007, 18:23:11 »
hola de nuevo!!

Corregí lo que me dices, xt (que tonta no me di cuenta!!) y lo dejé sin comunicación...

Pero se sigue apagando!!!! :cry:

sabes??, es como si le afectara la estática, me muevo y se apaga... si lo dejo solito dura
un poco más pero se sigue apagando... buuuuu.

porfa, he probado todo, sigo sin imaginar cual es el problema...

Salu2....

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #22 en: 26 de Noviembre de 2007, 19:09:02 »
doteiza porque no haces un soft simple que solo configures los puertos y enciendes un led.  Ten cuidado de verificar que esté desactivado el WDT y verificas si enciende bien el led.

Si te acercas y anda mal no se en qué puede intervenir la estática, ahora si lo que dices es que si tocas con un dedo el cristal éste hace cosas raras bueno, eso es normal.  Le estás induciendo ruido de 50Hz o 60Hz (depende de la zona donde vivas).

Revisa que todos los pines de GND estén unidos a masa, al igual que los pines de vcc

También que el MCLR esté bien filtrado, y no solamente una resistencia a 5v.

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #23 en: 26 de Noviembre de 2007, 20:39:34 »
Haz lo que te comenta maunix (sabios consejos) y también puedes probar a poner los fuses:

PUT y NOBROWNOUT

Esto es sólo para ver si funciona. Suponiendo que lo haga bien... avísanos para que podamos pulir un poco más el diseño electrónico.

Ya nos dices algo.


Un saludo desde Alicante.

Desconectado doteiza

  • PIC10
  • *
  • Mensajes: 4
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #24 en: 27 de Noviembre de 2007, 00:46:06 »
Hola!!!!

quiero llorar!!!

pero de alegría!!!!  :D :D

lleva 20 min y ningun pare!!!!
el problema simplemente era que había dejado al aire la patilla MCRL(como decía maunix)
llevo muy poquito tiempo trabajando con pic's(4 meses) y esa era una de las cosas que no
sabía... :?

de todas maneras ahora que lo he podido ver trabajar en plenitud le encontré un detalle
pero creo que es un problema de código que creo poder solucionar.

No me queda más que agradacerles y espero poder ser de ayuda para quien lo necesite
asi como uds lo hicieron conmigo...  :g)

Nuevamente gracias...

Salu2...

Desconectado alogic.on

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 772
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #25 en: 27 de Noviembre de 2007, 08:24:06 »
hola
he tenido este mismo problema en un par de placas, se apagaba el pic quedandose sin hacer nada , entonces me di cuenta que algunos 7805 se apagaban y encendian continuamente cada vez mas lento esto a penas se notaba con el polimetro pero con el osciloscopio se veia que habia caidas de tension cada x de esta forma se veian los leds iluminar mucho menos cada vez hasta morir, le puse un disipador al 7805 y mejor no acercarse que quema. Pero ya no se apaga hasta que lo tenga que cambiar.

un saludo espero te sirva

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #26 en: 27 de Noviembre de 2007, 09:09:55 »
doteiza me alegro que te haya funcionado.

No me queda más que agradacerles y espero poder ser de ayuda para quien lo necesite
asi como uds lo hicieron conmigo...  :g)

Cuando puedas y sepas la respuesta a alguna pregunta de un forero, respóndele con paciencia y tratando de explicarle tus conocimientos.  Esa es la mejor forma de agradecer 'al foro' :)


he tenido este mismo problema en un par de placas, se apagaba el pic quedandose sin hacer nada , entonces me di cuenta que algunos 7805 se apagaban y encendian continuamente cada vez mas lento esto a penas se notaba con el polimetro pero con el osciloscopio se veia que habia caidas de tension cada x de esta forma se veian los leds iluminar mucho menos cada vez hasta morir, le puse un disipador al 7805 y mejor no acercarse que quema. Pero ya no se apaga hasta que lo tenga que cambiar.

Sí, con los reguladores lineales hay que tener en cuenta algunas cosas, solo por citar las más simples.


1) El máximo voltage que puede aceptar, en este punto tratar siempre de usar el más pequeño posible respetando el valor del punto 1 .  A mayor voltage , el regulador disipará más y se calentará más.

2) La tensión de dropout (la tensión mínima que necesita entre entrada y salida para poder funcionar). Ej. si la tensión de dropout es de 2V y el regulador es de 5V, deberemos usar al menos 7V en la entrada.

3) Usar los capacitores de compensación de .1uF en la entrada y salida del regulador para evitar que oscile.

4) Si calienta usar el disipador para evitar que deje de funcionar.

5) Respetar el consumo, estos reguladores permiten entregar 0.5A o 1A en forma típica.  Si uno no aclara, te dan siempre los de menor corriente (porque son los más económicos).


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #27 en: 27 de Noviembre de 2007, 10:11:58 »
Hola maunix, ¿entendí bien? ¿el mismo 7805 hay de 0.5 A y 1A?, porque yo tengo entendido que paara bajo consumo está el 78L05
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #28 en: 27 de Noviembre de 2007, 16:26:14 »
Hola maunix, ¿entendí bien? ¿el mismo 7805 hay de 0.5 A y 1A?, porque yo tengo entendido que paara bajo consumo está el 78L05

No, lo que quise decir es que si vas a la tienda y dices "dame un 7805" lo más seguro es que te den uno de 0.5 o de 1A , pero no de 1.5A

Si quieres de más amperes hay que aclararlo, pero sin aclararlo seguro te enchufan uno de 0.5 o 1A

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: PIC 16F877 que arranca y deja de funcionar
« Respuesta #29 en: 27 de Noviembre de 2007, 17:42:40 »
No lo sabía. Que bueno que me lo aclaraste, estoy por hacer una fuente y me viene como anillo al dedo.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.


 

anything