Autor Tema: Problemas con el DS1307  (Leído 9079 veces)

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

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Problemas con el DS1307
« en: 25 de Enero de 2015, 20:42:00 »
Estoy con un proyecto que utilizo el DS1307, a los pocos minutos (5min o 1minu) todos los dígitos minutos,seg,horas , pasan a valer 48 (48:48:48). Comienza poco a poco... Me explico: cuando esta contando por ejemplo 1:20:45 pasa, en una decimas de segundo a 48:48:48 y en otras decimas de segundo a 1:20:50... hasta que al final se queda en 48:48:48.

He utilizado el ds1307 en otros proyectos y siempre me pasa algo. en un riego automatico que lo utilice, al pasar los días veía que todos los valores eran FF:FF:FF. y dejaba de funcionar...

Esto le pasa a alguien más ???

 

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problemas con el DS1307
« Respuesta #1 en: 25 de Enero de 2015, 22:12:53 »
No lo he tenido que usar en aplicación práctica, pero en pruebas lo he estado controlando varios días e iba bien, incluso al ponerlo en marcha después de varias semanas me ha funcionado correctamente.
Saludos desde Granada, España.

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Problemas con el DS1307
« Respuesta #2 en: 26 de Enero de 2015, 13:30:10 »
Utilizas interrupciones?

Estoy dándole vueltas y a ver si otro circuito conectado a i2c me provoca este problema...

Cada vez q tengo una idea con un reloj, me tiritan las piernas.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problemas con el DS1307
« Respuesta #3 en: 26 de Enero de 2015, 20:44:22 »
Siempre utilizo interrupciones.
Saludos desde Granada, España.

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re: Problemas con el DS1307
« Respuesta #4 en: 26 de Enero de 2015, 22:51:26 »
Noelillo,

Podrías subir tu codigo y tu esquemático para echarles un vistazo?

Saludos,

Elreypic.

Desconectado krizpin

  • PIC10
  • *
  • Mensajes: 32
Re: Problemas con el DS1307
« Respuesta #5 en: 27 de Enero de 2015, 19:40:07 »
Hola buenas..
Perdonar quizas no sea el hilo donde deberia de preguntar esto pero puede decirme alguien como pasar el codigo bcd que saca el ds1307 ,,ds3231 etc a decimal??? uso proton y no tengo ni idea como separar el bcd de 8 bits en decimal..Graciasss

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Problemas con el DS1307
« Respuesta #6 en: 27 de Enero de 2015, 23:19:30 »
Hola buenas..
Perdonar quizas no sea el hilo donde deberia de preguntar esto pero puede decirme alguien como pasar el codigo bcd que saca el ds1307 ,,ds3231 etc a decimal??? uso proton y no tengo ni idea como separar el bcd de 8 bits en decimal..Graciasss

No entiendo por que deseas pasar BCD a decimal ya que te lo esta claramente dando en decimal!
Utiliza un BCD packed ( es decir 2 numeros BCD en un byte)
el nibble alto (b7:b4) seria tu decenas y tu nibble bajo (b3:b0) tus unidades

Ejemplo:
Si te devuelve en la parte de segundos algo asi:
0x45  o en binario : 0100 0101

Serian 4 decenas y 5 unidades, lo cual es 45 en decimal
Tenes una conversion directa, lo cual lo hace mucho mas facil para mostrarlo en un LCD, sin necesidad de pasarlo a BCD o utilizar otro artilugio.

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Problemas con el DS1307
« Respuesta #7 en: 28 de Enero de 2015, 04:43:53 »
DOGFLU66:

Yo en Proton no he sido capaz de hacer funcionar una INTERRUPCION.

Los programillas que hago utilizo siempre o casi siempre algo asi:
 Inicio:
 Gosub Teclado
 GosuB Pantalla
 Gosub Reloj
Goto inicio
Meto un interrupción y cuando se produce se bloquea.

Puedes poner un ejemplo con interrupión con el ds1307?

ElReyPic:

He cambiado el DS1307 por otro nuevo, lo estoy probando en estos momento y va bien...

Kvizpin:

Quieres hacer un reloj en 7segmentos?

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problemas con el DS1307
« Respuesta #8 en: 29 de Enero de 2015, 07:29:03 »
No creo que sirva de mucho un ejemplo para el uso de interrupciones porque no uso el mismo lenguaje.

La precaución que hay que tener cuando se utilizan las interrupciones son dos: si se utiliza I2C por software hay que deshabilitar las interrupciones al principo de la subrutina o función de control del I2C y activar al salir, y si se usa I2C por hard (modulo I2C) no seria necesario.

Y a nivel de hard (diseño) cuando se usa I2C y uno de los dispositivos o todos tienen los pin programables, se insertan resistencias limitadoras en el bus del dispositivo en los pin multifunción, esto evita que durante las pruebas o incluso durante el arranque se produzcan lucha de niveles y termine el dispositivo más débil estropeándose.

Normalmente no se le da importancia en los foros al diseño del hardware, pero el hardware es la piedra angular de los proyectos y no es nada fácil, hay que distinguir la diferencia del hardware de libro y del real.
« Última modificación: 29 de Enero de 2015, 07:32:14 por dogflu66 »
Saludos desde Granada, España.

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Problemas con el DS1307
« Respuesta #9 en: 31 de Enero de 2015, 13:36:03 »
Yo lo tengo puesto con dos resistencias de 4k7 a +5vcc el los dos pines SCL y SDA.
Están conectados, el DS1307, tres memorias 24lc256 y un pcf8574p.

 

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problemas con el DS1307
« Respuesta #10 en: 31 de Enero de 2015, 21:54:47 »
Usas la configuración de libro.
Saludos desde Granada, España.

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Problemas con el DS1307
« Respuesta #11 en: 01 de Febrero de 2015, 16:31:41 »
Hay otra manera de hacerlo???

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problemas con el DS1307
« Respuesta #12 en: 01 de Febrero de 2015, 19:14:23 »
.
.
.
Y a nivel de hard (diseño) cuando se usa I2C y uno de los dispositivos o todos tienen los pin programables, se insertan resistencias limitadoras en el bus del dispositivo en los pin multifunción, esto evita que durante las pruebas o incluso durante el arranque se produzcan lucha de niveles y termine el dispositivo más débil estropeándose.
.
.
.
Saludos desde Granada, España.

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: Problemas con el DS1307
« Respuesta #13 en: 02 de Febrero de 2015, 09:09:56 »
Muy bien... 4k7 son adecuadas para q no se rompan los circuitillos..

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Problemas con el DS1307
« Respuesta #14 en: 02 de Febrero de 2015, 09:44:39 »
Las resistencias de 4K7 que indicas son resistencias de polarización del bus a positivo, porque los modulos que se conectan al bus I2C en teoria no pueden suministrar positivo, solo suministran negativo (estado bajo) y si algo no da positivo al bus este no puede funcionar. Los pin de los dispositivos I2C solo pueden trabajar generando estado bajo y el otro en espera como entrada (alta impedancia).

Las resistencia de las que hago mención son resistencias limitadora (nada que ver con  resistencias de polarización), estas resistencias son de bajo valor y van en serie con el bus.

Te recomiendo que revises el funcionamiento del I2C, los pin I2C de estos dispositivos son tipo colector abierto, por lo que no pueden generar positivo, solo estado bajo o masa.

Recomiendo que leas sobre:
Resistencias de polarización (Pull-Up, Pull-Down).
Resistencias limitadoras.
Bus tipo colector abierto.
Bus I2C (hardware).
Saludos desde Granada, España.