Autor Tema: Ayuda con DS1621  (Leído 6011 veces)

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

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
Ayuda con DS1621
« en: 26 de Octubre de 2003, 11:14:00 »
Bueno, empiezo a hacer mis pinitos en C. He hecho este programa. La comunicación por RS232 parece que funciona, pero la comunicación con el DS1621 parece no estar bien, o sigo la pautas mal, no se.
Os dejo los archivos y la simulación en proteus para ver si veis mi error.
 Vi unos ejemplos en C para el Hi-tech (creo). Este usa los comandos I2C_COMMAND(X,X), I2C_WRITE(X,X,X) e I2C_ReadWord(X,X). A que equivaldrían en CCS. Mi programa lo hice fijándome en uno hecho en hitech.

Graaaacias!!
Saludos desde Huelva (ESPAÑA)

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con DS1621
« Respuesta #1 en: 26 de Octubre de 2003, 16:05:00 »
Problema resuelto. Miré más detenidamente el datasheet y...
Al menos ahora funciona.
Tengo una duda con la función I2C_READ(x). Si pongo x=1 o lo dejo en blanco la función devuelve el acuse de recibo ACK. Si pongo x=0 no lo envía.
No se si estoy en lo cierto, pero este acuse de recibo se usa para cuando el esclavo es otro micro, no. Vamos que con el DS1621 se pone siempro I2C_READ(0), no??

Si en mi ejemplo en el último read pongo 0 lo hace bien, pero si lo dejo en blanco (=1), en el siguiente paso por el bucle me lee el registro config como 255 en lugar de 139 que es lo que lee en el primer paso.
El ejemplo es algo cutre, pero es sólo para entender el IC. Cuando lo simulen, pulsan pause y entonces pueden leer lo que está enviando.
Por cierto, creo que en mi ejemplo sobraría algún i2c_stop que otro. Probaré a ver...

Comentenme...

Un saludo.

PD: borro el archivo del mensaje anterior y lo reemplazo por este.
Saludos desde Huelva (ESPAÑA)

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con DS1621
« Respuesta #2 en: 26 de Octubre de 2003, 16:15:00 »
He quitado todos los i2c_stop. Sólo he puesto uno al final de la función de inicialización y otro al final del bucle while(1), después del if. Y sigue funcionando.

Saludos!
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Ayuda con DS1621
« Respuesta #3 en: 26 de Octubre de 2003, 23:52:00 »
Cucaracha mira en los ejemplos que trae el CCS, encontrarás el DS1621.c donde configura y lee este dispositivo.

Si consigues hacer que funcione en PROTEUS, sube al FORO los resultados, haz el favor.

Un saludo

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con DS1621
« Respuesta #4 en: 27 de Octubre de 2003, 02:59:00 »
Si pocher, vi el ejemplo que viene en el CCS. Lo que pasa es que quería hacerlo yo mismo y así entender bien como funciona. La cosa es que ahora se lo que hace ese archivo que comentas y además lo entiendo.
En el archivo que dejé arriba está la simulación de lo que hice. (o te refieres a la simulación del ejemplo del ccs?)

Un saludo!!
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Ayuda con DS1621
« Respuesta #5 en: 27 de Octubre de 2003, 09:11:00 »
Del de CCS, ayer intenté simularlo pero no funcionó. Algo debí de hacer mal.

Un saludo

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con DS1621
« Respuesta #6 en: 27 de Octubre de 2003, 09:52:00 »
246, 246 y por que sale 246 ¿!&%·/(!! ...
Estos ingleses...
http://www.futuresource.com/weather/cfcalc.asp
Ahora te lo dejo en el almacén...

Un saludo!
Saludos desde Huelva (ESPAÑA)

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con DS1621
« Respuesta #7 en: 27 de Octubre de 2003, 10:11:00 »
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Ayuda con DS1621
« Respuesta #8 en: 27 de Octubre de 2003, 11:30:00 »
Gracias Cucaracha. Yo lo tenía igual que tú pero no ponía los dos define DAL_SCL y DAL_SDA .

No sé donde se utilizan, en el programa principal no aparecen y en el DS1621.C de CCS támpoco.

Seguramente perteneceran al dispositivo I2C DS1621. No me he mirado el Datasheet, ¿hay que definirlos previamente?

Un saludo

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con DS1621
« Respuesta #9 en: 27 de Octubre de 2003, 14:42:00 »
En el archivo ds1621 se usan en la función init_temp(). Si te fijas, son los pines por donde se va a transmitir el ic2 (SCL y SDA).
En la línea:
#use i2c(master,sda=DAL_SDA, scl=DAL_SCL)
defines sda como DAL_SDA y luego dices con el define que esto sea el PIN_B7. Si no pones define en tu programa, el ds1621.c lo define como PIN_B1 por defecto. Lo mismo con el otro pin. Al que el programa se le ocurrió llamarlos así... no se.
Por cierto, alguién sabe donde se encuentran las funciones del I2C en el ccs, vamos el código. Me interesa verlas.
Creo que es a esto a lo que te referías no??.

Saludos!
Saludos desde Huelva (ESPAÑA)

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Ayuda con DS1621
« Respuesta #10 en: 27 de Octubre de 2003, 23:51:00 »
Ya está, solucionado, hay días que estás espeso y no ves tres en un burro.

 Te cuento, resulta que tengo instalada las dos versiones del CCS, la pcwh y la antigua pcm, pués en la carpeta de proyecto que creé en PROTEUS copié el DS1621.C de la versión antigua que no tiene nada que ver con la del pcwh. La antigua solo mide de 0-255º y en esta nueva se pueden medir hasta grados negativos, y los "defines" no estan.

Para ver el código en ensamblador de las funciones, quizá te pueda servir el PROTEUS, pone la línea correspondiente de C y debajo las instrucciones en ensamblador de esa línea.

Un saludo

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Ayuda con DS1621
« Respuesta #11 en: 28 de Octubre de 2003, 03:17:00 »
pq al ejecutarlo el proteus me pide ds1621.dll????

la verdad nunka he utilizado este programilla.. una introduccion rapidilla me vendria perfecta

gracias

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: Ayuda con DS1621
« Respuesta #12 en: 28 de Octubre de 2003, 11:58:00 »
Hola Venum, para que simule este dispositivo en PROTEUS debes tener el DALLAS.LIB en la carpeta LIBRARY y el DS1621.dll en la carpeta MODELS.

Parece ser que el que te falta es el .dll, te paso el fichero.

Para saber como se configura el PROTEUS bucea en el apartado de simuladores del FORO hay bastantes explicaciones y un tutorial.

Un saludo

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Ayuda con DS1621
« Respuesta #13 en: 28 de Octubre de 2003, 14:16:00 »
ok tngo la SP5 pro, vamos a trastearla un pokilllo parece q ya me voy enterando
gracias

pd: estas dll de donde se sacan?

Desconectado cucaracha

  • PIC24H
  • ******
  • Mensajes: 1409
    • CUCAWEB
RE: Ayuda con DS1621
« Respuesta #14 en: 28 de Octubre de 2003, 14:25:00 »
Si no tiene el ds1621.dll dudo que tenga la librería.
De aquí te puedes bajar todos los archivo y algún modelo más. Por cierto, a mi el I2C-SPY en la versión del proteus que tengo. No se si en la antigua 5.2 funcionaría
Bájalos aquí: http://undongle.newmail.ru/models.dhtml

Por cierto pocher, en un programa que estoy haciendo, si configuro así el 16877 me funciona
#use I2C(master, sda=PIN_C4, scl=PIN_C3)
pero si lo hago así no??
#use I2C(master, sda=PIN_C4, scl=PIN_C3, force_hw)

Saludos!
Saludos desde Huelva (ESPAÑA)