Autor Tema: AYUDA reloj en tiempo real ds1305 DUDA!!!  (Leído 2378 veces)

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

Desconectado JorgitoFRyOle

  • PIC12
  • **
  • Mensajes: 79
AYUDA reloj en tiempo real ds1305 DUDA!!!
« en: 27 de Octubre de 2004, 22:24:00 »
Buenas xavales:

Tengo una duda sobre el reloj ds1305. Estoy utilizando este reloj en la realizacion de mi proyecto y me guio por la poca informacion que doy conseguido. En este caso sigo una explicacion realizad hacia el reloj ds1307. Pero este posee, en el registro utilizado para almacenar el numero de segundos del reloj, en su bit mas significativo un bit usado para la puesta en marcha del reloj. Aki, viene mi duda:
EL RELOJ DS1305 POSEE O NO BIT DE PUESTA EN MARCHA?

Otra cosa, en la informacion que tengo yo sobre el ds1305 en ese bit de dicho registro viene configurado como un 0 directamente. Asique otra duda: EN CASO DE QUE SI HUBIESE BIT DE PUESTA EN MARCHA, EN QUE REGISTRO SE ENCUENTRA Y EN QUE POSICION?

Agradezco vuestra ayuda anticipadamente. Gracias

1saludo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
RE: AYUDA reloj en tiempo real ds1305 DUDA!!!
« Respuesta #1 en: 27 de Octubre de 2004, 23:52:00 »
Según dice el Datasheet hay un bit que permite pararlo y volverlo a arrancar.
Es el BIT7 del Control Register:
CONTROL REGISTER (READ 0FH, WRITE 8FH)
EOSC (Enable Oscillator) – This bit when set to logic 0 startS the oscillator. When this bit is set to a logic 1, the oscillator is stopped and the DS1305 is placed into a low-power standby mode with a current drain of less than 100nA when power is supplied by VBAT or VCC2. The initial power-on state is not defined.

Desconectado JorgitoFRyOle

  • PIC12
  • **
  • Mensajes: 79
RE: AYUDA reloj en tiempo real ds1305 DUDA!!!
« Respuesta #2 en: 28 de Octubre de 2004, 00:16:00 »
Muxas gracias nocturno66.

Que razon tienes, el cambio de nombre del bit me habia despistado

Muxas gracias, ya puedo irme a cama trankilo

Otra duda aunque es de un tema distinto, como puede utilizar la memoria del reloj para almacenar datos

Me explico, el ds1305 tiene 96bytes de RAM y estan comprendidos entre las direcciones 0xA0 y 0xFF, lo que pretendo es utilizar dicha memoria hasta que se llene y una vez ocurrido vaciarla y pasarla a una memoria flash y volverla reutilizar. He construido una funcion:

void DS1305_almacenar_ram(BYTE direccion, BYTE dato)
{
   DS1305_escribe(direccion | 0xA0, dato);
}

Me haria falta hacer la or con 0xA0? Creo que asi no funcionaria bien. Como podria hacerlo?

ds1305_escribe es una funcion que construi yo que escribe en primer lugar la direccion del dato y en segundo lugar el dato

1Saludo y Gracias de nuevo