TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: mos 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
-
En el google puedes encontrar varias librerias para este dispositivo, aqui te dejo un link donde puedes encontrar una de ellas (http://users.swing.be/fg/pic/#DS1621).
Suerte!!! :wink:
-
¿Qué ha pasado con el otro post en el que preguntabas lo mismo y yo te había contestado?, ¿lo has borrado Mos?
-
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. :(
-
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.
-
;----------------------------------------------------------------------------
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