Autor Tema: Otro hilo sobre el DS1307  (Leído 4746 veces)

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

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Otro hilo sobre el DS1307
« en: 30 de Diciembre de 2010, 20:14:13 »
Hola a todos, llevo bastantes días leyendo en el foro sobre el DS1307 y ya tengo alguna idea sobre él. Así que me he puesto mano a lo obra para intentar simular uno en proteus, pero tengo bastantes errores y dudas al respecto:

1.- El reloj no cuenta con la velocidad apropiada, algunas veces rápido y otras lento.
2.- Algunas veces muestra por el LCD números sin sentido,por ejemplo mes:45
3.- Está habilitado la patilla de señal de 1 HZ, a veces no se ve nada y otras obtengo señales no uniformes.

Además tengo una duda con la inicialización del DS, de otros ejemplos he visto lo siguiente:

ds1307_init(DS1307_ALL_DISABLED);
ds1307_init(DS1307_OUT_ENABLED | DS1307_OUT_1_HZ);

He probado poniendo una sola línea y las dos, obteniendo resultados aparentemente iguales, excepto cuando estaba la segunda, de vez en cuando si obtenía la señal cuadrada (a veces no uniforme: unos pulsos mayores que otros).

Por otros lado, ds1307_init(DS1307_ALL_DISABLED); ¿desabilita el DS y ya no funciona? ¿Que hace exactamente esto? ¿Que otras configuraciones existe y qué significan? (he puesto la librería de nuesto colega "_ds1307"

Además en otros ejemplos he visto  simplemente ds1307_init(); pero esto me arroja un error, ¿Qué significa?

Concluyendo todos los ejemplos que he visto en el foro (que son bastantes), no he consegido que ninguno tenga la velocidad apropiada.

Bueno espero no causarle mucha molestia y espero saber que es lo que está ocurriendo con mi ejemplo.  Gracias de nuevo a todos por vuestro interés. Adjunto están todos los ficheros.

Que pasen un buen día.

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: Otro hilo sobre el DS1307
« Respuesta #1 en: 04 de Enero de 2011, 20:15:43 »
Hola de nuevo, sigo en el intento de hacer funcionar el DS1307, pero ocurren siempre cosas extrañas cuando realizo la simulación. Hasta el momento he llegado a las siguientes conclusiones:

1.- Todos los ejemplos que he probado del foro (que son bastantes) aunque cuentan correctamente (orden adecuado), ninguno lleva el ritmo adecuado.
2.- En la simulación no es necesario que esté el cristal, ya que sin el funciona igual.
3.- Cuando se hace la inicialización del DS, da igual como sea ésta, tanto como si no pongo ninguna línea como cualquier combinación de las siguientes, el funcionamiento es el mismo:

                  ds1307_init(0);
                  ds1307_init(DS1307_ALL_DISABLED);
                  ds1307_init(DS1307_OUT_ENABLED|DS1307_OUT_1_HZ);

4.- Aunque ponga la línea "ds1307_init(DS1307_OUT_ENABLED|DS1307_OUT_1_HZ);",nunca obtengo señal en la patilla 7 del DS
5.- He visto que en algunos ejemplos del foro las resistencias dul bus i2c son PULLUP (de la categoría "modeling primitives" de ISIS), en un principio si no tenía este tipo de resistencias no funcinaba bien, por ejemplo salía hora:45, pero ahora en otro ejemplo funciona bien con cualquier tipo de resistencia.

Ya he pedido todos los componentes para poder montarlo físicamente, para ver que tal funciona, pero sigo sin tenerlo nada claro, si alguien tiene alguna sugerencia, será bienvenida.

¿Tenéis alguna respuesta sobre todas estas dudas que me surgen?

¿Puede ser por culpa de ISIS y en el momento que lo monte físicamente funcionará correctamente?

De nuevo gracias y ya os comentaré cuando lo monte que tal funciona.

Que pasen un buen día

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Otro hilo sobre el DS1307
« Respuesta #2 en: 05 de Enero de 2011, 03:53:23 »
Apuesto a que es un problema de ISIS y que te va a funcionar bien en la vida real.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Otro hilo sobre el DS1307
« Respuesta #3 en: 05 de Enero de 2011, 12:02:45 »
A mi me ha funcionado siempre bien .... ISIS versión 7.4 SP3

Saludos
El papel lo aguanta todo

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: Otro hilo sobre el DS1307
« Respuesta #4 en: 05 de Enero de 2011, 21:04:49 »
Hola a todos primero gracias por las respuestas. Decir que lo he simulado con ISIS 7.4 SP3 y sigue igual, es decir atrasa unos 15 segundos por minuto. Además de lo siguiente:

1.- Si las resistencias son pullup, el conteo es normal, pero lento.
2.- Si las resistencias son convencionales, de vez en cuando en el display se ven incongruencias (fichero con nombre "2").
3.- La señal cuadrada del DS1307, se obtiene esporádicamente y no con una frecuencia de 1 Hz

Bueno como veis he adelantado poco y ya he hecho una gran cantidad de cambios, pero nada. Así que si alguno puede, le agradecería que lo simulara para ver que tal os sale. (Adjunto está .c y fichero ISIS)

De nuevo gracias por vuestra ayuda

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Otro hilo sobre el DS1307
« Respuesta #5 en: 05 de Enero de 2011, 22:04:01 »
Apuesto a que es un problema de ISIS y que te va a funcionar bien en la vida real.

Hola ramirez, lo más común es que Proteus no sea capaz de simular algunos programas a la velocidad real a la que deberian trabajar.  Lo que te está ocurriendo en la simulación es muy común y tal vez solo se acerque a la realidad en una PC con un procesador muy veloz.

Saludos!

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Otro hilo sobre el DS1307
« Respuesta #6 en: 05 de Enero de 2011, 22:15:20 »
1.- Si las resistencias son pullup, el conteo es normal, pero lento.
2.- Si las resistencias son convencionales, de vez en cuando en el display se ven incongruencias (fichero con nombre "2").
3.- La señal cuadrada del DS1307, se obtiene esporádicamente y no con una frecuencia de 1 Hz

a la primera duda... no pongas pullups en el circuito, pon resistencias normales para la simulacion(valor 10k)... las pullups solo las pongo si el proteus no las habilita internamente en los pics cuando yo lo pido....
a la segunda duda.. sube un poco el retardo que hay antes  de la lectura del ds1307... ponlo a 200ms por ejemplo.... ira mas fluiso el proteus, por lo que pone en el archivo .c tienes habilitado el pin MLCR con lo cual te recomendaria que lo pongas en el simulador...
y la 3a y ultima, a mi no me iva en el proteus el pin out del ds, en un circuito de un controlador de acuario simulandolo no iva pero en montaje real sin problemas...

la simulacion es orientativa pero no definitiva...
un saludo
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Otro hilo sobre el DS1307
« Respuesta #7 en: 06 de Enero de 2011, 02:48:40 »
Acabo de probar tu simulación y va perfectamente sincronizado con el reloj.

Lo que ocurre es que no debes comparar la velocidad de ejecución de la simulación con el tiempo real, sino con el reloj que aparece en la parte inferior izquierda de la pantalla de Proteus. Ese es el tiempo real de ejecución en un PIC, aunque Proteus va un poco más lento porque no le es posible conseguir simulación en tiempo real.

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: Otro hilo sobre el DS1307
« Respuesta #8 en: 06 de Enero de 2011, 07:24:38 »
Gracias por vuestras respuestas, en el momento que tenga los componentes y lo monte os comento como funciona

De nuevo mil gracias

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: Otro hilo sobre el DS1307
« Respuesta #9 en: 11 de Enero de 2011, 19:43:11 »
Hola de nuevo a todos.Finalmente llegaron todos los componentes y  logré montarlo. Ahora funciona correctamente, eso sí, después de un par de horas dándole vueltas, ya que al principio no funcionaba bien, se paraba a los dos minutos, salían simbolos raros, etc, todo esto como digo después de dos horas desapareció instalando un condensador en paralelo con la alimentación, aunque lo he leido no creía que hiciera falta, ya que alimento el circuito con un 7805 a travésde una pila de 9V.

¿Porqué ocurre esto?

Otra cosa que no ha funcionado es la señal cuadrada de la patilla 7, ésta no la obtengo de ninguna de las maneras, he puesto todas las combinaciones de las siguientes líneas de código y no hace absolutamente nada.
Código: [Seleccionar]
//ds1307_init(0);
//ds1307_init(DS1307_ALL_DISABLED);
//DS1307_OUT_1_HZ;
//ds1307_init(DS1307_OUT_ENABLED|DS1307_OUT_1_HZ);
//ds1307_init(DS1307_OUT_1_HZ);

¿Qué ocurre aqui? ¿Cómo puedo hacer que esto fucione?

Finalmente decir que que he probado fechas con años bisiestos y éstos los cuenta perfectamente.

De nuevo gracias a todos por la ayuda para que este ejemplo haya funcionado.

Que pasen un buen día.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Otro hilo sobre el DS1307
« Respuesta #10 en: 12 de Enero de 2011, 02:44:41 »
¿Le has puesto una pullup?, mira lo que dice la data: "The SQW/OUT pin is open drain and requires an external pullup resistor."

Desconectado Francirius

  • PIC10
  • *
  • Mensajes: 32
Re: Otro hilo sobre el DS1307
« Respuesta #11 en: 12 de Enero de 2011, 15:04:51 »
Hola compañero. No se como te estará funcionanado ahora el proyecto, lo que es yo revisaria el archivo _ds1307.c, quizas ahi no está bien especificada la palabra de configuracion.
Yo tb experimente con este bicho, y en este archivo deje todo configurado para que dentro del programa principal solo le escribia "configura()" y me quedaba todo seteado.
Adios!

Desconectado ramirez

  • PIC16
  • ***
  • Mensajes: 195
Re: Otro hilo sobre el DS1307
« Respuesta #12 en: 18 de Enero de 2011, 09:03:02 »
Hola a todos de nuevo, no he escrito antes, ya que veía que desaparecían de vez en  cuando los dos últimos mensajes. Solo decir que Nocturno tenía razón y me faltaba la resistencia pullup. Por lo demás todo ok.

De nuevo gracias a todos por la ayuda para continuar aprendiendo.

Que pasen un buen día

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Otro hilo sobre el DS1307
« Respuesta #13 en: 18 de Enero de 2011, 12:06:46 »
Me alegro que lo hayas solucionado.

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Otro hilo sobre el DS1307
« Respuesta #14 en: 19 de Enero de 2011, 22:11:44 »
Hola a todos de nuevo, no he escrito antes, ya que veía que desaparecían de vez en  cuando los dos últimos mensajes. Solo decir que Nocturno tenía razón y me faltaba la resistencia pullup. Por lo demás todo ok.

De nuevo gracias a todos por la ayuda para continuar aprendiendo.

Que pasen un buen día


pero en proteus nada de nada? no te simula bien ? cierto? a mi me paso lo mismo... calentandome la cabeza y resulta que era el puñetero proteus...
un saludo
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...


 

anything