Autor Tema: Atención!!!! S.0.S. mi micro va lento!!!  (Leído 1301 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado juliana82

  • PIC10
  • *
  • Mensajes: 12
Atención!!!! S.0.S. mi micro va lento!!!
« en: 10 de Junio de 2016, 03:50:57 »
Hola picamigos!!!

Les cuento:

Tengo un circuito montado con un micro 18f4520 a 4Mhz. Además tiene un DS1307 asociado comunicando por i2c.

Lo monte en la proto y todo iva de maravilla (después de haber consultado y consultado en este maravilloso foro).

El caso es el siguiente:

He diseñado una PCB y he montado unos circuitos. El caso es que  un 20% de ellos "van lentos"..... Me explico: Al inicio del LCD tengo unos parpadeos de unos leds y una información en pantalla que se refresca en un tiempo de 1segundo pero en estos que digo que van mal pues va mucho más lento. Luego en ejecución de programa... "todo va más lento".

¿Qué puede pasar??? :5] :5] :5]

Revise varias veces el apartado del datasheet dónde me habla del hardware necesario para el reloj y demás y creo que está todo bien.

¿Os ha pasado a alguno de vosotros algo parecido alguna vez?

Gracias de antemano.
Saludos.

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1093
Re:Atención!!!! S.0.S. mi micro va lento!!!
« Respuesta #1 en: 10 de Junio de 2016, 05:24:54 »
Hola por lo que indicas, que solo algunos van lentos, lo mas logico es pensar en el circuito impreso. Revisalo bien a fondo con una buena lupa y asegurate de no tener pistas cortadas y/o cortocircuitos entre pistas. Asegurate tambien de tener el PIN MCLR con una resistencia PULL-UP de alrededor de 4K7.

Saludos.

Desconectado juliana82

  • PIC10
  • *
  • Mensajes: 12
Re:Atención!!!! S.0.S. mi micro va lento!!!
« Respuesta #2 en: 10 de Junio de 2016, 05:42:38 »
OK, muchas gracias. Así lo haré.

Revisaré el circuito impreso. La resistencia de 4k7 en mclr la tengo puesta a 5V, eso seguro.

Desconectado juliana82

  • PIC10
  • *
  • Mensajes: 12
Re:Atención!!!! S.0.S. mi micro va lento!!!
« Respuesta #3 en: 10 de Junio de 2016, 14:35:23 »
Hola de nuevo:

Hice unas pruebas y veo que los circuitos que van bien si saco el cristal de cuarzo funcionan igual de mal (lentos) que los otros.

Mi programa comienza asi:

#include <18F4520.h>

#fuses XT,NOWDT,PROTECT,PUT,BROWNOUT,BORV27,NOCPD,NOWRT,NOLVP

#use delay(clock=4000000)
#use i2c(Master, SDA=PIN_A0, SCL=PIN_A1)

#use fast_io(A)
#use fast_io(B)
#use fast_io(C)
#use fast_io(D)
#use fast_io(E)

#byte PA = 0XF80
#byte PB = 0XF81
#byte PC = 0XF82                   
#byte PD = 0XF83
#byte PE = 0XF84

#byte TRISA = 0xF92
#byte TRISB = 0xF93
#byte TRISC = 0xF94
#byte TRISD = 0xF95
#byte TRISE = 0xF96

¿Se puede chequear de algún modo que la frecuencia de reloj real difiere de la configurada?

Utilizo CCS.

 :( :( :(

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re:Atención!!!! S.0.S. mi micro va lento!!!
« Respuesta #4 en: 10 de Junio de 2016, 20:48:15 »
Hola juliana82

sube el esquema eléctrico del circuito para que lo veamos y asi ir descartando.




La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5883
    • Picuino
Re: mi micro va lento
« Respuesta #5 en: 11 de Junio de 2016, 09:09:52 »
Y una foto del circuito no vendría mal.

Tiene pinta de ser el reloj, que no funciona y el micro termina utilizando el oscilador interno:
Citar
23.4 Fail-Safe Clock Monitor
The Fail-Safe Clock Monitor (FSCM) allows the microcontroller to continue operation in the event of an external oscillator failure by automatically switching the device clock to the internal oscillator block. The FSCM function is enabled by setting the FCMEN configuration
bit.

Puedes hacer un programa que tarde exactamente 10 millones de ciclos en hacer parpadear un led. Luego mirando la frecuencia del led puedes saber la frecuencia del reloj.

Con osciloscopio es más sencillo, pones una salida a uno e inmediatamente a cero. Con el osciloscopio puedes medir el tiempo de ciclo y a partir de ahí la frecuencia del reloj.

Saludos.