Autor Tema: Problema al configurar TH y TL en ds1621  (Leído 3754 veces)

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

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Problema al configurar TH y TL en ds1621
« en: 28 de Agosto de 2010, 11:05:01 »
Pues eso, configurar los registros TH y TL del DS1621 me va a volver loco. Hace un tiempo lo hice y no se presentó ningún problema y ahora....no sé que me pasa pero hay algo que no hago bien. El código que he hecho es el siguiente:

   i2c_start();
   i2c_write(0x90);//dirección del dispositivo
   i2c_write(0xac);//registro control
   i2c_write(0x02);//conversión continua

   i2c_start();
   i2c_write(0x90);//dirección del dispositivo
   i2c_write(0xa1);//registro TH
   i2c_write(0x28);
   i2c_write(0x00);
   i2c_start();
   i2c_write(0x90);//dirección del dispositivo
   i2c_write(0xa2);//registro TL
   i2c_write(0x0a);
   i2c_write(00);
   i2c_start();
   i2c_write(0x90);//dirección del dispositivo
   i2c_write(0xee);//comienza la conversion
   i2c_stop();


Este código lo he basado en el ejemplo del datasheet.
El caso es que cuando simulo con proteus el termostato no sirve y los datos TH y TL ni siquiera se cargan en el registro correspondiente. Si alguien ha trabajado con este dispositivo le agradeceria que me copiase el trozo de código donde configura TH y TL. He estado buscando mucho por internet pero no he encontrado ningún proyecto donde usen el sensor como termostato.
Gracias!

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Problema al configurar TH y TL en ds1621
« Respuesta #1 en: 28 de Agosto de 2010, 14:57:45 »
Hola jezus, si estás programando con CCS, este trae una librería lista para el DS1621. Puedes ver como está implementada para que veas cual es tu error o simplemente utilizarla en tu programa.

Saludos!

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Re: Problema al configurar TH y TL en ds1621
« Respuesta #2 en: 28 de Agosto de 2010, 15:01:43 »
Hola jezus, si estás programando con CCS, este trae una librería lista para el DS1621. Puedes ver como está implementada para que veas cual es tu error o simplemente utilizarla en tu programa.

Saludos!

Ya se que trae esa librería, de hecho ya  la mire, pero no trae la opción de fijar el termostato, sólo es para leer datos de temperatura.
Gracias de todos modos

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Problema al configurar TH y TL en ds1621
« Respuesta #3 en: 28 de Agosto de 2010, 15:20:45 »

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Re: Problema al configurar TH y TL en ds1621
« Respuesta #4 en: 29 de Agosto de 2010, 15:44:28 »
Tal vez esto te sirva:

http://www.ccsinfo.com/forum/viewtopic.php?t=31727&highlight=ds1621

Saludos!

muchísimas gracias bmb!!!!
busque mucho por internet y no encontré nada.Me funciona perfectamente.
gracias de nuevo!

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Re: Problema al configurar TH y TL en ds1621
« Respuesta #5 en: 30 de Agosto de 2010, 12:07:04 »
Estoy que me va a dar algo....ayer mismo probé el siguiente código para configurar los registros TH y TL y funcionaba perfectamente y hoy....nada. ¿veis algún fallo en el código?


void initemp(int *r){
   r=r+6;
   i2c_start();     
   i2c_write(0x90);
   i2c_write(0xee);
   i2c_stop();

   i2c_start();
   i2c_write(0x90);
   i2c_write(0xA1);
   i2c_write(*r);
   i2c_write(0);
   i2c_stop();
   r++;
   i2c_start();
   i2c_write(0x90);
   i2c_write(0xA2);
   i2c_write(*r);
   i2c_write(0);
   i2c_stop();
   }


no me lo explico, alguien sabe por que puede pasar eso?se configura bien TH pero TL lo deja como 0. :5]

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Problema al configurar TH y TL en ds1621
« Respuesta #6 en: 30 de Agosto de 2010, 20:00:19 »
Hola jezus, ya intentaste hacerlo de la misma forma que lo hacen en el foro de CCS?  Simplemente configuras en funciones separadas el TH y el TL:

Código: [Seleccionar]
// Escribir al registro de termostato "Temperatura Alta" (TH)
void escribe_TH(signed int8 grados)
{
   i2c_start();
   i2c_write(0x90);
   i2c_write(0xA1);
   i2c_write(grados);
   i2c_write(0);
   i2c_stop();
}

// Escribir al registro de termostato  "Temperatura Baja" (TL)
void escribe_TL(signed int8 grados)
{
   i2c_start();
   i2c_write(0x90);
   i2c_write(0xA2);
   i2c_write(grados);
   i2c_write(0);
   i2c_stop();
}


Y luego llamar las rutinas así:

Código: [Seleccionar]
escribe_TH(25);   // Punto de disparo Alto del termostato = 25 grados.
escribe_TL(10);   // Punto de disparo Bajo del termostato = 10 grados.

Saludos!

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Re: Problema al configurar TH y TL en ds1621
« Respuesta #7 en: 31 de Agosto de 2010, 03:27:48 »
Hola jezus, ya intentaste hacerlo de la misma forma que lo hacen en el foro de CCS?  Simplemente configuras en funciones separadas el TH y el TL:

Código: [Seleccionar]
// Escribir al registro de termostato "Temperatura Alta" (TH)
void escribe_TH(signed int8 grados)
{
   i2c_start();
   i2c_write(0x90);
   i2c_write(0xA1);
   i2c_write(grados);
   i2c_write(0);
   i2c_stop();
}

// Escribir al registro de termostato  "Temperatura Baja" (TL)
void escribe_TL(signed int8 grados)
{
   i2c_start();
   i2c_write(0x90);
   i2c_write(0xA2);
   i2c_write(grados);
   i2c_write(0);
   i2c_stop();
}


Y luego llamar las rutinas así:

Código: [Seleccionar]
escribe_TH(25);   // Punto de disparo Alto del termostato = 25 grados.
escribe_TL(10);   // Punto de disparo Bajo del termostato = 10 grados.

Saludos!


Si, aunque ponga justo ese código no funciona y no me lo explico ya que un día funcionó y al dia siguiente nada......

Desconectado jezus

  • PIC10
  • *
  • Mensajes: 44
Re: Problema al configurar TH y TL en ds1621
« Respuesta #8 en: 31 de Agosto de 2010, 03:39:01 »
Ya estáááá!!!lo acabo de resolver, debo de poner un delay entre configuración de TH y TL si no no funciona.............me iba a volver loco


 

anything