Autor Tema: Como evitar el reset del PIC? (Urge)  (Leído 7221 veces)

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

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #15 en: 11 de Marzo de 2006, 06:43:00 »
Escrito originalmente por DS26
Ok, pero el problema me da despues de meter el 1 no antes?

Mañana la comprare y probare a ver.

Gracias

PD:Adjunto el .hex del codigo x si alguien puede simularlo y saber si le pasa lo mismo

Edito: como no deja adjuntar aqui esta subido:    http://rapidshare.de/files/15198338/Piro5.HEX.html[/cita]

Espero que hayas puesto mal el formato del oscilador, ya que debiera ir un extremo del oscilador a sendos pines OSC1 y OSC2.

Lo de la resistencia en RC0 a gnd es una obligacion! NUNCA DEJES PINES AL AIRE, no solo por temas de ruido eléctrico sino por peligro de descargas electrostáticas.

Podrias subir un .asm?  has subido un .hex.  Te quiero ayudar pero trata de hacernos las cosas más faciles.

Saludos

- 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 DS26

  • PIC10
  • *
  • Mensajes: 15
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #16 en: 11 de Marzo de 2006, 07:07:00 »
He modificado algo y solo con un tiempo de aproximadamente 7 segundos y los cuenta pero en vez de poner el el 1 en el puerto b donde yo le digo se enciende otra vez la patilla rb7.

Aqui tienes la dire del .asm : http://rapidshare.de/files/15231473/PruebaB.asm.html

Gracias por el interes.

Entonces todas las patillas que ahora mismo no uso las conecto a masa directamente y a la rc2 (que uso en lugar de la rc0 en esta prueba) le pongo ademas una resistencia de 10k ?

PD: la idea era para controlar unas luces a tiempos determinados guardados en un 24lc256, pero si no lo hace sin ella pos imaginate xD. Aunque las rutinas para el control i2c ya me han pasado unas que estan probadas y funcionan ^^. Pero quien sabe

Desconectado poi5on

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 127
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #17 en: 11 de Marzo de 2006, 07:47:00 »
Ya corregiste el error que tienes en el cristal?

salu2

Desconectado DS26

  • PIC10
  • *
  • Mensajes: 15
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #18 en: 11 de Marzo de 2006, 08:21:00 »
jejejje fallo mio al dibujar. Una patilla del cristal va a osc1 y la otra a osc2.

Mira el asm a ver si a ti te rula bien o no.

Gracias

Desconectado DS26

  • PIC10
  • *
  • Mensajes: 15
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #19 en: 11 de Marzo de 2006, 17:45:00 »
Pues eso esperar a que los contadores sean iguales por eso en espera solo comparo los contadores que se incrementan en TM1INT con los valores de los otros contadores y si son iguales pos es cuando enciende.

A ver si me explico mejor...

Ese trozo de codigo es:

El de la interrupcion para incrementar los contadores de tiempo (1 incremento cada vez que se llama a la interrupcion por comparacion con ccp1)

Y la de espera solo para comparar los contadores CONT1,2y3 con CON1,2y3 y si son iguales pues enciende.

Creo que me he explicado mejor, no? sino pos pregunta que contesto gustoso ya que estas intentando ayudarme es lo menos que puedo hacer ^^

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #20 en: 14 de Marzo de 2006, 05:30:00 »
Según lo que puedo ver, la variable CON1, CON2, CON3 y CON4 están siempre en 0.

Esto hace que la comparación llegue hasta 2^32 x tiempo timer = 4.294.967.296 x tiempo timer...

Tardará unos cuantos años en lograr dicho valor [Giño]

Revisa eso y continuamos.

Si dices que sí o sí se te resetea, entonces te propongo que hagas otra prueba.  Que quites ese timer, que hagas un software más corto y simple en el que solo prendas y apagues un led, sin usar timers ni interrupciones.  Si el pic se resetea entonces tienes algún problema de hardware.

Saludos
- 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 DS26

  • PIC10
  • *
  • Mensajes: 15
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #21 en: 14 de Marzo de 2006, 09:40:00 »
Pues va ser que con este codigo:
Codigo:
   list    p=16f877
   #include p16f877.inc
 __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_ENABLE_ON & _LVP_OFF & _DEBUG_OFF & _CPD_OFF

   ORG   0
   GOTO   MAIN
   ORG   4
   GOTO   MAIN
   ORG   8
MAIN   BCF   STATUS,RP0   
   BCF   STATUS,RP1
   CLRF   PORTB
   CLRF   PORTC
   BSF   STATUS,RP0
   CLRF   TRISB
   MOVLW   B"00000100"
   MOVWF   TRISC
   BCF   STATUS,RP0
   BSF   PORTB,7
ACTIVO   BTFSS   PORTC,2
   GOTO   ACTIVO
   BCF   PORTB,7
   BSF   PORTB,0
      END


Hasta poner el 1 en el bit 7 del puerto B llega. La comprobacion la hace, cuando le doy en 1 por la RC2 pone 1 en la RB0 y pasado un rato va perdiendo luz el led y se va encendiendo el de la RB7 luego se apaga y si acerco la mano se enciende. Ahora va ser que he hecho un detector de presencia xDDDDD (hay que joerse).

Entonces maumix es cosa del programador (programador hardware) que uso o alguna idea?

En cuanto a las variables cuando lo simulo en el MPLAB si me cogen valores Enfurruñado nose.

Gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #22 en: 14 de Marzo de 2006, 16:42:00 »
A ver intentá esto.
Codigo:

   list    p=16f877

   #include p16f877.inc

    __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_ENABLE_ON & _LVP_OFF & _DEBUG_OFF & _CPD_OFF


   ORG   0

MAIN   
   bcf   INTCON,GIE

   bsf   STATUS,RP0
   bcf   STATUS,RP1
   clrf   TRISB
   movlw   B"00000100"
   movwf   TRISC
   bcf   STATUS,RP0

   clrf   PORTB
   clrf   PORTC

   bsf   PORTB,7

ACTIVO
   BTFSS   PORTC,2
   GOTO   ACTIVO

   BCF   PORTB,7
   BSF   PORTB,0
FIN:
   goto   FIN   

   end



Realmente tu no estabas terminando bien el software, tienes uqe tener presente que el pic todo el tiempo tiene "algo" en toda su memoria de programa.  Si tu no le programas nada..... no importa,  siempre tiene algo.  Si es una instrucción no valida la ejecutará como un NOP , si es una instrucción válida sencillamente la ejecutará.

Entonces, tu le debes indicar al pic donde ir SIEMPRE.
Si no le pones nada, no se que pueda llegar a hacer el pic porque depende que haya quedado grabado en el pic! se entiende?

Entonces prueba este código, si funciona.... habremos dado un paso importante , el que tu hardware no está malo.

Otra cosa, cuanta corriente le estas sacando al PIC? Fijate que el máximo son 25mA por pin, pero tampoco s epuede sacarle 25 mA de todos los pines a la misma vez, esto está aclarado en la datasheet.

Fijate como puse antes la declaración de los tris y luego el seteo o borrado del PORTB.

Pruebalo y comentame los resultados.
- 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 DS26

  • PIC10
  • *
  • Mensajes: 15
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #23 en: 15 de Marzo de 2006, 04:57:00 »
Pues ahora aguanta 9 segundos antes de apagarse el led de la rb0 y encenderse de nuevo el de la rb7.

Podria ser que el programador no grabara bien la palabra de configuracion el el pic y este activado el WDT? O que otra cosa puede ser?

He probado con dos pic16f877 por si uno estaba mal pero los dos hacen lo mismo Enfurruñado

Gracias maunix por el interes, tu diras que pruebo ahora. De momento a ver si me pillo otro programador mientras pa probar si pasa lo mismo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #24 en: 15 de Marzo de 2006, 06:22:00 »
Escrito originalmente por DS26
Pues ahora aguanta 9 segundos antes de apagarse el led de la rb0 y encenderse de nuevo el de la rb7.

Podria ser que el programador no grabara bien la palabra de configuracion el el pic y este activado el WDT? O que otra cosa puede ser?

He probado con dos pic16f877 por si uno estaba mal pero los dos hacen lo mismo Enfurruñado

Gracias maunix por el interes, tu diras que pruebo ahora. De momento a ver si me pillo otro programador mientras pa probar si pasa lo mismo


Tu programador es ICSP? o quitas el pic para programarlo fuera? La pregunta viene porque el RB7 casualmente es un pin de programación y si lo tienes como ICSP no te aconsejo que lo uses.

Sino, yo buscaría armar otro circuito, busca algo más simple.  El WDT si has visto el encabezado del programa está desactivado, salvo que en el software de ut programador lo vuelvas a activar.  De todas formas 8 segundos es mucho para un WDT incluso con el Prescaler al máximo.

Saludos
- 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 DS26

  • PIC10
  • *
  • Mensajes: 15
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #25 en: 15 de Marzo de 2006, 16:27:00 »
En mi circuito como ya dije necesito 25 salidas para cada una de los 25 pulsos de las luces y como comunicacion i2c con una 24lc256 (puertoC) y con un pc o otro pic por rs232(puertoC).

Contestando a las preguntas, quito el pic del circuito y lo pogo en un programador para programarlo, el circuito para las luces solo es lectura y comunicacion(i2c y rs232) pero no programacion.

Con respecto al WDT si lo dejo desactivado y si tienes razon 9 segundos es mucho tiempo asi que no se que puede ser Enfurruñado

Gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #26 en: 15 de Marzo de 2006, 20:18:00 »
Escrito originalmente por DS26
En mi circuito como ya dije necesito 25 salidas para cada una de los 25 pulsos de las luces y como comunicacion i2c con una 24lc256 (puertoC) y con un pc o otro pic por rs232(puertoC).

Contestando a las preguntas, quito el pic del circuito y lo pogo en un programador para programarlo, el circuito para las luces solo es lectura y comunicacion(i2c y rs232) pero no programacion.

Con respecto al WDT si lo dejo desactivado y si tienes razon 9 segundos es mucho tiempo asi que no se que puede ser Enfurruñado

Gracias


Ok, si ese programa simple no te funciona es OTRA COSA.

Yo que tu verifico bien el hardware, el circuito de reset, la alimentación, TODO!

Además cuanta corriente le sacas a cada pin? Fijate que el máximo no es 25mA por pin x numero de pines!  Si mal no recuerdo PORTB y D juntos no podias sacarle mas de 200mA o algo así era.  Por eso si bien el máximo por pin es 25mA , el máximo por puertos no es lo mismo multiplicado por la cantidad de pines!  Espero se me haya entendido.

- 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 DS26

  • PIC10
  • *
  • Mensajes: 15
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #27 en: 16 de Marzo de 2006, 09:45:00 »
Como ya dije es para 25 señales para los trial que encienden las bombillas pero nunca mas de 1 a la vez es decir lo maximo que va a estar a 1 un pin es 0.01 y hasta que se apague y encienda otro pasaran otros 0.01 lo maximo en todo caso serian 2 a la ez pero dudo se de el caso. Asique no creo que pase nada por ese lado.

Todos los componentes los he comprobado y estan bien. no hay ningun corto por hay ni nada por el estilo.

El circuito de reset pues le he metido un +5 por la patilla 1 y iba bien el programilla ese sencillo, pero cargue uno de los anteriores para ver y ahora me parpadea como si se apagase(0,5seg),encendiese(0,5 seg),apagase(0,25 seg),encendiese(1 seg). Incluso si ahora cargo el otro programa simple Enfurruñado

Lo de los tiempos es porque no es siempre igual sino que el ultimo tarda menos en encenderse y dura mas hace todo el tiempo esa secuencia.
A ver que me habre cargado ahora?

La alimentacion es desde una pla con entrada +9v y salida para colocar otros circuitos a +5v (esos +5 salen por medio de un LM3405, encima tb pone PM19AE)

Espero respuesta, gracias.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Como evitar el reset del PIC? (Urge)
« Respuesta #28 en: 16 de Marzo de 2006, 14:27:00 »
Escrito originalmente por DS26
Como ya dije es para 25 señales para los trial que encienden las bombillas pero nunca mas de 1 a la vez es decir lo maximo que va a estar a 1 un pin es 0.01 y hasta que se apague y encienda otro pasaran otros 0.01 lo maximo en todo caso serian 2 a la ez pero dudo se de el caso. Asique no creo que pase nada por ese lado.

Todos los componentes los he comprobado y estan bien. no hay ningun corto por hay ni nada por el estilo.

El circuito de reset pues le he metido un +5 por la patilla 1 y iba bien el programilla ese sencillo, pero cargue uno de los anteriores para ver y ahora me parpadea como si se apagase(0,5seg),encendiese(0,5 seg),apagase(0,25 seg),encendiese(1 seg). Incluso si ahora cargo el otro programa simple Enfurruñado

Lo de los tiempos es porque no es siempre igual sino que el ultimo tarda menos en encenderse y dura mas hace todo el tiempo esa secuencia.
A ver que me habre cargado ahora?

La alimentacion es desde una pla con entrada +9v y salida para colocar otros circuitos a +5v (esos +5 salen por medio de un LM3405, encima tb pone PM19AE)

Espero respuesta, gracias.


Amigo, bien, es que con tantas idas y venidas no me puedo acordar de todo lo que hablamos antes.  El punto es el siguiente.

Te pido que postees el esquemático de tu circuito de reset y de alimentación.  No puedo seguir mas que hasta aquí, ya te puse código que anda bien y carece de complejidad alguna.  Si ese diseño no mantiene encendido a tu pic es porque tienes UN PROBLEMA DE HARDWARE.

Cuanto antes lo asumas, antes lo resolverás.

Como no estoy a tu lado es que pido que subas el esquemático para ver de que trata tu circuito.  Además no te vendría mal que pruebes darle alimentación a un pic, un led , el cristal y el circuito de reset en una protoboard.  Si ahí tampoco te anda entonces o tu pic tiene problemas o realmente el circuito que estas armando está muy mal hecho.

Saludos
- 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)


 

anything