Autor Tema: ayuda con sensor temperatura DS-1621 (I2C)  (Leído 2209 veces)

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

Desconectado mos

  • PIC10
  • *
  • Mensajes: 35
ayuda con sensor temperatura DS-1621 (I2C)
« en: 19 de Agosto de 2006, 15:06:33 »
Necesito un programita super sencillo en asembler para poder leer la temperatura de este chip, lo estoy intentando y no consigo nada, y con el datasheet no me entero de na, un saludo. :P

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
Re: ayuda con sensor temperatura DS-1621 (I2C)
« Respuesta #1 en: 19 de Agosto de 2006, 15:21:35 »
En el google puedes encontrar varias librerias para este dispositivo, aqui te dejo un link donde puedes encontrar una de ellas.


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: ayuda con sensor temperatura DS-1621 (I2C)
« Respuesta #2 en: 19 de Agosto de 2006, 15:54:01 »
¿Qué ha pasado con el otro post en el que preguntabas lo mismo y yo te había contestado?, ¿lo has borrado Mos?

Desconectado mos

  • PIC10
  • *
  • Mensajes: 35
Re: ayuda con sensor temperatura DS-1621 (I2C)
« Respuesta #3 en: 19 de Agosto de 2006, 16:43:01 »
No encuentro nada para hacerlo funcionar, y ya he probado de todo, no se en que me equivoco, el caso es que en la misma linea utilizo un reloj PCF8583 (I2C), lo que hago es esto: 

1- mando direccion del dispositivo (10010000)
2-genero ACK
3-mando direccion del registro configuracion (AC)
4- genero ACK y mando (00000010) para modo continuo
5-ACK y parada

luego esto para leer la temperatura:
1- mando direccion del dispositivo (10010000)
2-ACK  y direccion a leer (AA)
3- repito direccion  en modo lectura ya (10010001)
4-ACK y recibo byte , otro ACD y otro byte
5- genero NACK y stop
esto parece simple , pero luego no funciona, no se que mas pruebas puedo hacer ni donde me estoy equivocando. :(

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: ayuda con sensor temperatura DS-1621 (I2C)
« Respuesta #4 en: 19 de Agosto de 2006, 19:20:03 »
Hola.
 
para escribir:

1- Envias START
2- mandas direccion del dispositivo (10010000)
3-esperas ACK del DS1621
4-mandas direccion del registro configuracion (AC)
5-Esperas ACK del DS1621 y mandas (00000010) para modo continuo
6- Esperas ACK del DS1621 y STOP

luego esto para leer la temperatura:

1- Envias START y luego mandas direccion del dispositivo (10010000)
2-Esperas ACK del DS1621 y envias direccion a leer (AA)
3- Esperas ACK, envias RESTART y luego repites direccion  en modo lectura ya (10010001)
4- Esperas ACK y recibes byte , generas ACK y recibes otro byte
5- generas NACK y STOP

Asegurate que los pines A0,A1 y A2 del DS1621 esten conectados a masa.
¿En que lenguaje estas programando?

Saludos.
« Última modificación: 19 de Agosto de 2006, 19:24:04 por BrunoF »
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado mos

  • PIC10
  • *
  • Mensajes: 35
Re: ayuda con sensor temperatura DS-1621 (I2C)
« Respuesta #5 en: 20 de Agosto de 2006, 04:59:39 »
;----------------------------------------------------------------------------
       call      Send_Start   ;Envía secuencia de inicio
       movlw   b'10010000'   ;Modo escritura
       call      Send_Byte   ;Dirección del dispositivo DS-1621
   
       movlw   b'10101100'     ;registro configuracion AC
       call      Send_Byte   ;
       
       movlw   b'00000010'
       call      Send_Byte   ;byte para modo continuo
       
       call      Send_Stop
;__________________________________________________________
       

Loop      
     call     Send_Start   ;Envía secuencia de inicio
     movlw     b'10010000'   ;Modo escritura
     call     Send_Byte   ;Dirección del dispositivo
   
     movlw     b'10101010'
     call     Send_Byte   ;Dirección interna a leer (tempera AA)
       
;
     call     Send_Start   ;Envía secuencia de inicio
     movlw     b'10010001'   ;Modo lectura
     call     Send_Byte   ;Dirección del dispositivo
          
     bcf     ACK,0            ;Enviar ACK tras la lectura del byte
     call     Read_Byte   ;Lee el byte de temperatura bajo (byte_L)
     movwf     tempturaL
;               
     bsf     ACK,0      ;Enviar NACK trás la lectura del byte
     call     Read_Byte           ;Lee el byte de  temperatura alta (bite_H)
     movwf    tempturaH
                                       
      call     Send_Stop           ;Envía secuencia de Stop
;      
;               
      movfw   tempturaL
      movwf   Byte_L
      movfw   tempturaH
      movwf   Byte_H
      call        Bits16_BCD
      call      Visualizar_0
      goto      Loop
;
el pic que utilizo es 16f876 y se me sigue resistiendo a funcionar, parece que me odia el chip , vamos, he revisado todos los pasos y nada, lo que es visualizacion y conversion a bcd que es la parte final del programa si me funciona. Gracias compañeros. :P