Autor Tema: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)  (Leído 20039 veces)

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

Desconectado Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #30 en: 31 de Octubre de 2006, 16:39:24 »
A leer datasheets se ha dicho !
Ahí encontrarás todas las respuestas.
Mientras te voy contando.
Tuve que hacer una aplicación de leer 15 bits y Protón+ me dió la posibilidad de leer una variable WORD como HGHBYTE Y LOWBYTE,  o sea, partirla en dos y manejarlas como dos variables byte independientes.
Entrále por ese lado y vas a ver que no es tan complicado. Al menos para mí no lo fué.

Un abrazo Max !
Mario.

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #31 en: 31 de Octubre de 2006, 21:17:19 »
Intenta desplegar el binario de la temperatura en el LCD.

Por cada incremento en número binario tendrás un grado centígrado (25 en la tabla = 0001 1001).

Lo de complemento a dos no tiene nada que ver, a menos que tengas temperaturas negativas: 1001 1001 = -25.

El último bit te da el signo.

Sobre lo de 13 bits:
Deben tener una precisión importante para tener 13 bits. Como Mario lo recomienda, puedes usar el Highbyte o Lowbyte en PBP también ó, definir una palabra y mover
Palabra.0=XXXX XXXX
Palabra.1= XXXX XXXX
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #32 en: 01 de Noviembre de 2006, 04:04:52 »
Hola pues lo de desplegar el valor en binario de hecho lo hago solo que uso el purto serie de la PC, pongo el decimal y el binario pero llegando a 52 me empieza a marcar 0 1 2 etc y cunado baja de nuevo empieza a marcar 52 51 etc. pero bueno.

La verdad estoy muy emocionado porque estuve leyendo rapidamente los datasheets de  los otros sensores y me hanfascinado mas el TCN75 ya que este es un sensor de temperatura y un monitor termico. es decir lo puedo programar para cierta temperatura y cuando este sobrepasandola o cerca por 5° se activa un pin que puede ser usado como una interrupcion o como una alarma haci cualquier dispositivo. y lo mejor es I2C. como el otro Tc74

El tc77 tiene mejor precision que el tc74 pero es por spi y como no tengo experincia pues aun no le tocare.

Ambos el TCN75 y el TC77 tienen una precision de +/-0.5°C cuando se usan apropiadamente y a cierto rango de temperatura. El unco "inconveniente" que les veo es su manejo por el tamaño ya que nunca he trabajado con componentes SMD pero leere los tutoriales de Nocturno, ya que el TC77 mide aproximadamente 3x2 mm y tiene 5 pines y el que pienso usar que es el TCN75 mide 3x2.5mm y tiene 8 pines.

La verdad es muy emocionante para mi empezar a trabajar con esto, espero comprtir mis resultados cuando los tenga con ustedes.

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #33 en: 10 de Noviembre de 2006, 22:05:37 »
Bueno despues de unos cuantos dias peleandome tratando de entender el funcionamiento del sensor parece que por fin he entendido com usarlo. Pero ahora tengo otro problema, ya no tengo impresora laser y no puedo hacer el modulo para probarlo :8} :roll: si no es una es otra.

Bueno les cuento rapidamente:

El sensor tiene un registro cuya direccion es 1001000X donde la X si es 1 indica que se va a leer y si es cero se va a escribir.

Seguido de eso hay que enviar el valor del pointer(un registro interno) el cual nos apuntara al registro con el que queremos trabajar, el valor del pointer es un byte que tiene una direccion 000000XX, donde XX especifica el regostro a apuntar:

TEMP para leer la temperatura, es de solo lectura (XX=00)
CONFIG para configurar el dispositivo, lectura y escritura(XX=01)
Tset donde ponemos la temperatura -si queremos- a la que trabaje, lectura y escritura(XX=11)
Thyst donde le especificamos en que rango trabaja la hystieresis, lectura y escritura(XX=10)

Cabe mencionar que cuando lo encendemos -al tcn75- trabaj a una temperatura de 80° y una Thyst de 5° por defecto,  el tcn75 tiene un pin llamado INT/CMPTR que actua como una interrupcion o bien un comparador de termostato, este es muy util ya que avisaria al PIC cuando se paso la lectura. su salida es a colector abierto y su estado es programable a activo bajo o activo alto.

para configurar hay que tener en cuenta  que se envian 8 bits del registro CONFIG donde:

D7-D5: deben ser puestos a CERO

D4-D3: determinan el numero de conversiones hechas antes de enviar el resulatdo por el bus:
            00  una conversion (valor por defecto)
            01  dos conversiones
            10  tres conversiones
            11  cuatro conversiones

D2: determina la polaridad del pin INT/CMPTR
             0  activa baja
             1 activa alta

D1: determina como trabajara el pin INT/CMPTR
             0 Modo comparador
             1 Modo interrupcion

D0: determina el modo de opoeracion del TCN75
             0  Modo Normal
             1 Modo shutdown o de bajo consumo.

Con respecto al valor leido del registro TEMP cada valor representa medio grado y un dato importante es que si el bit D7 del LSB esta a 1, representa medio grado. algo asi como un numero decimal donde la parte entera es representada por el MSB del registro TEMP y si el D7 del LSB es uno seria MSB.5 ya que es medio grado.
-----------------------------

Bueno a resumidas cuentas para configurar el TCN75 tendriamos que hacer lo siguiente:

Código: [Seleccionar]
I2Cwrite sda, scl, $90,[$00]  '$90 porque equivale a 10010000 y $00 para apuntar al registro TEMP

'despues para saber que temperatura es seria

I2Cread sda, scl, $91,[vtemp] 'donde $91 es para leer ya que equivale a 10010001 y vtemp es para almacenar el valor del registro TEMP.

Hasta aqui no hay mucha diferencia con el TC74 verdad? de hecho es lo mismo. Pero si quisieramos configurarlo y sacar mas provecho ahi si esta el detallazo, por ejemplo:

Si quisiera configurar el TC75 a que trabaje en modo normal el pin INT/CMPTR como comparador, con 3 lecturas antes de entregarme el valor y el estado del INT/CMPTR sea activo alto seria algo asi

Código: [Seleccionar]
I2Cwrite sda, scl, $90,[$01] ' apuntamos al registro CONFIG
I2Cwrite sda, scl, $90,[$14] ' aqui configuramos el registro CONFIG con un valor HEX de 14 que es igual a 00010100 que nos da la configuarcion que queriamos.

Ahora para configurar la temperatura ala que el comparador o la interrupcion se activaran seria algo asi:
 
Código: [Seleccionar]
I2Cwrite sda, scl, $90,[$11] ' apuntamos al registro Tset

Ahora lo importante es saber que para configurar la temperatura se debe mandar primero el MSB y despues el LSB entonces digamos que queremos una temperatura de 25°; pero como cada 1 vale medio grado seria 50 entonces su valor seria 0 00110010 donde el LSB seria cero y el MSB seria 00011001 lo cual equivale a 19HEX, hasta aqui me di cuenta de que no habia dicho un detalle importante : los registros Tset, TEMP y Thyst usan un formato de complemento a 2  y  su longitud es de 16 bits; mientras que CONFIG y POINT son de 8 bits en formato normal

bueno entonces tendriamos:

Código: [Seleccionar]
I2Cwrite sda, scl, $90,[$11] ´apuntamos a Tset
I2Cwrite sda, scl, $90,[$19] ´ mandamos el MSB
I2Cwrite sda, scl, $90,[$00] ´ mandamos el LSB


Como veran no parece complicado y parecia que tenia abandonado este post, pero la verdad me costo mucho trabajo entender el datasheet del sensor, y lamentablemente por lo dicho de la impresora aun no he podido comprobar que esto que les comento sea 100% verdad ya que no he podido probarlo fisicamente. En la teoria pinta muy bonito pero aun no se los resulatdos de la practica. Espero poder dar mas resultados en lo que queda de la semana o a principios de la otra.

Tal vez no interese mucho pero a mi si me mega intersa y algunos saben porque :mrgreen: asi que les dejo esto por si les sirve a alguien.


se me olvido aun tengo unas dudas con respecto a  escribir el valor de los registros ya apuntados, no se si tenga que omitir la direccion $90 cuando meta el valor del registro, bueno eso lo sabre cuando haga el modulo pcb

Saludos
« Última modificación: 10 de Noviembre de 2006, 22:09:33 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #34 en: 11 de Noviembre de 2006, 01:15:16 »
Bien Max !!!  :)  :)  :)

Buen trabajo !
Ojalá toda la teoría te coincida en la práctica y que lo puedas corroborar pronto.
Sigo atento el hilo.

Saludos
Mario

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #35 en: 18 de Noviembre de 2006, 19:19:35 »
Hola amigos bueno empece a hacer pruebas y despues de un trabajo todo de malabarista y relojero, pude hacer la PCB para el sensor,y cuando lo probe no funciono  :8} y reviso todo continuidad que no se juntaran ya que es muy pequeño y nada, hasta que vi que lo solde al reves, asi que hare otra PCB y les cuento.

Les dejo el pcb en pdf pa que vean lo pequeño que es.
« Última modificación: 18 de Noviembre de 2006, 19:23:22 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #36 en: 18 de Noviembre de 2006, 19:36:24 »
Ups me acabo de enterar que podia rotar toda la placa y listo, Pero el Imbecil de Mi trato de desoldar el IC y nada la eche a perder, soy un idiota  :5] :5] :5] ni modo tendre que hacer otra
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #37 en: 18 de Noviembre de 2006, 19:43:51 »
Paciencia .... paciencia ....

Realmente es muy pequeña.
Ojalá todas las cosas salieran siempre al primer intento !!!
Todo el apoyo desde acá.
En un par de horas seguramente ya está hecha la nueva placa y en marcha.

Vamos Max !  :)

Saludos
Mario

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #38 en: 18 de Noviembre de 2006, 23:59:51 »
Bueno 5 intentos y el toner se funde tanto que se pega, mañana le sigo, y por aquello de las dudas voy a pedir otros pero en SOIC ya que tengo mas espacio y si pude con el MSOP me imagino sera mas facil con el SOIC. Pero aun asi seguire intentandolo mañana con estos.

Saludos y gracias Mario por el apoyo.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #39 en: 19 de Noviembre de 2006, 19:04:46 »
 :-/ :-/ :-/ EXITOS a MEDIAS :( :( :(

Bueno porfin me quedo la placa hace unos minutos, solde el TCN75 y lo probe, solo leyendo el registro TEMP y funciono  :-/ :-/ jalo y mostraba la temperatura pero al meterle calor con un encendedor lo queme!!! :cry: :cry: :8} :5] :z) solo vi como salio humito del TCN75 y empezo a mandar sol un 2 al puerto serie. :cry:

Ya no me dio tiempo de probar la configuarcion del TCN75 como la habia propuesto, no se como desoldarlo para evitar hacer otra placa... Ya me eche 2 de 10 :D :x

les dejo el codigo que use para probar el TCN75

Código: C#
  1. '****************************************************************
  2. '*  Name    : UNTITLED.BAS                                      *
  3. '*  Author  : Max E. Reyes Vera Juárez                          *
  4. '*  Notice  : Copyright (c) 2006 GPL                          *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 19/11/2006                                        *
  7. '*  Version : 1.0                                               *
  8. '*  Notes   :                                                   *
  9. '*          :                                                   *
  10. '****************************************************************
  11. @ DEVICE XT_OSC, WDT_OFF, PROTECT_OFF
  12. INCLUDE "MODEDEFS.BAS"
  13.  
  14. SDA  VAR PORTB.1
  15. SCL  VAR PORTB.2
  16. TX   VAR PORTA.2
  17.  
  18. TEMP  var word
  19. LSB   var TEMP.BYTE0
  20. MSB   VAR TEMP.BYTE1
  21.  
  22.  
  23. GO:
  24.  HIGH 3
  25.  I2CWRITE SDA,SCL,$90,[00]
  26.  PAUSE 1000
  27.  LOW 3
  28.  
  29. LEE:
  30.  
  31. I2CREAD SDA,SCL,$91,[TEMP]
  32.  
  33.  if (LSB & $80) = $80 then
  34.      LSB = 5
  35.   ELSE
  36.      LSB = 0
  37.  ENDIF
  38.  
  39.  
  40. SEROUT2 TX,84,["TEMP: ",DEC MSB, ".", DEC LSB,"-- ", BIN16 TEMP,13]              
  41.  
  42. PAUSE 5000
  43.  
  44. GOTO LEE

Creo que todo me indica que siga usando el LM35 o bien comprare un DS1620 :D.... porque para lo pretendia usarlo no creo que soporte tanto calor el TCN75 :cry: pero me ha servido para aprender a Usar la I2C y a soldar empaquetados MSOP. Seguire hasta comprobar la teoria que propuse; y dare por finalizado el Tema cuando todo concuerde con el datasheet.

Saludos  :-)
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
« Respuesta #40 en: 21 de Noviembre de 2006, 03:59:04 »
Pues continuan los exitos a medias.. trate de configurar el sensor y se volvio loco al parecer la teoria anda fallando este es el codigo que quise utilizar para configurar el sensor:

Código: C#
  1. "'****************************************************************
  2. '*  Name    : UNTITLED.BAS                                      *
  3. '*  Author  : Max E. Reyes Vera Juárez                          *
  4. '*  Notice  : Copyright (c) 2006 Protegido por leyes de Autor   *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 19/11/2006                                        *
  7. '*  Version : 1.0                                               *
  8. '*  Notes   :                                                   *
  9. '*          :                                                   *
  10. '****************************************************************"
  11. @ DEVICE XT_OSC, WDT_OFF, PROTECT_OFF
  12. INCLUDE "MODEDEFS.BAS"
  13.  
  14. SDA  VAR PORTB.1
  15. SCL  VAR PORTB.2
  16. TX   VAR PORTA.2
  17.  
  18.  
  19. TEMP  var word
  20. rft   var word
  21. LSB   var TEMP.BYTE0
  22. MSB   VAR TEMP.BYTE1
  23.  
  24. i var byte
  25.  
  26. GO:
  27.  HIGH 3
  28.  
  29.  I2Cwrite sda, scl, $90,[$01] " apuntamos al registro CONFIG "
  30.  pause 50
  31.  I2Cwrite sda, scl, $90,[$14]
  32.  pause 50
  33.  I2Cwrite sda, scl, $90,[$11] "apuntamos a Tset"
  34.  pause 50
  35.  I2Cwrite sda, scl, $90,[$19]
  36.  pause 50
  37.  I2Cwrite sda, scl, $90,[$00]  "leemos el registro temp"
  38.  pause 1000
  39.  
  40.  I2CWRITE SDA,SCL,$90,[00]
  41.  PAUSE 1000
  42.  LOW 3
  43.  
  44. LEE:
  45.  
  46. for i = 0 to 4
  47.  I2CREAD SDA,SCL,$91,[TEMP]
  48.  rft=rft+temp
  49.  pause 250
  50. next i
  51.  
  52.  temp=rft/4
  53.  if (LSB & $80) = $80 then
  54.      LSB = 5
  55.   ELSE
  56.      LSB = 0
  57.  ENDIF
  58.    
  59. SEROUT2 TX,84,["TEMP: ",DEC MSB, ".", DEC LSB,"-- ", BIN16 TEMP,13]              
  60. PAUSE 2000
  61.  
  62. rft=0
  63. GOTO LEE

Y bueno no respondio muy bien que digamos, trate de enviar la configuracion en una sola linea, en lugar de hacer esto:

Código: [Seleccionar]
I2Cwrite sda, scl, $90,[$01] ' apuntamos al registro CONFIG
 pause 50
 I2Cwrite sda, scl, $90,[$14]

Hacer esto

Código: [Seleccionar]
I2Cwrite sda, scl, $90,[$01,14]

y no funcino ya que me despliega solo ceros. seguire intentando de 10 que tenia ya solo me quedan 5, murieron en el proceso los otros 5.

Bueno parece ser una partida ganada por el LM35 o el DS1620 a estos sensores, pero aun no el juego.

Saludos
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
« Respuesta #41 en: 24 de Noviembre de 2006, 02:13:37 »
 :? :roll: :cry: Hola amigos pues con malas noticias, no puedo configurar el TCN75, solo puedo leerlo ya lo he intentado con MKB, PBP, Proton y Swordfish y he llegado a la conclusion de que el inutil soy yo :mrgreen:.


Aqui les dejo lo que he intentado, les pediria que lo revisaran pero dudo que alguien ademas de mi tenga un TCN75. pero haber si encuentran algo raro. lo comentado es solo para modificar.

el codigo en PBP son los anteriores.

Este es el de MKB: aqui solo recibo 255 via serie uso le F84A y un xt de 4mhz

Código: FreeBasic
  1. program TCN75
  2.  
  3. DIM VALOR AS WORD
  4.  
  5.  
  6. MAIN:
  7.   TRISB=0
  8.   PORTB.3=1
  9.   SOFT_I2C_CONFIG(PORTB,1,2)          ' CONFIGURACION DE I2C
  10.   SOFT_UART_INIT(PORTA,1,2,1200,0)    ' CONFIGURACION DE COMUNICACION SERIE
  11.   SOFT_I2C_START()                    ' INICIAMOS LA COMUNICACION
  12.   SOFT_I2C_WRITE(%10010000)           ' ENVIAMOS EL BYTE DE ESCRITURA
  13.   SOFT_I2C_WRITE(%00000000)           ' APUNTAMOS AL REGISTRO TEMP
  14.   SOFT_I2C_STOP()                     ' DETENEMOS LA COMUNICACION
  15.   DELAY_MS(1000)
  16.   PORTB.3=0
  17.  LEE:
  18.   SOFT_I2C_START()
  19.   SOFT_I2C_WRITE(%10010001)  ' ENVIAMOS EL BYTE DE LECTURA
  20.   VALOR = SOFT_I2C_READ(1)   ' LEEMOS EL REGISTRO TEMP Y LO GUARDAMOS
  21.   SOFT_I2C_STOP()
  22.   SOFT_UART_WRITE(VALOR)      ' ENVIAMOS EL VALOR VIA SERIE
  23.   DELAY_MS(2500)
  24.  GOTO LEE
  25.  END.
 

Este es el del Swordfish: uso el 18F452 un hs de 12mhz y de igual forma solo recibo 255

Código: FreeBasic
  1. ****************************************************************
  2. *  Name    : UNTITLED.BAS                                      *
  3. *  Author  : Max E. Reyes Vera Juárez                          *
  4. *  Notice  : Copyright (c) 2006                                *
  5. *          : All Rights Reserved                               *
  6. *  Date    : 21/11/2006                                        *
  7. *  Version : 1.0                                               *
  8. *  Notes   :                                                   *
  9. *          :                                                   *
  10. ****************************************************************
  11. }
  12.  
  13. Device = 18F452                 'definicion del pic y del crystal
  14. Clock  = 12
  15.  
  16. '#option LCD_DATA = PORTD.4
  17. '#option LCD_RS   = PORTD.2
  18. '#option LCD_EN   = PORTD.3
  19.  
  20. #option I2C_SCL = PORTD.1       ' pines para I2C
  21. #option I2C_SDA = PORTD.0
  22.  
  23. Include "CONVERT.BAS"           'librerias a usar
  24. Include "LCD.BAS"
  25. Include "UTILS.BAS"
  26. Include "SI2C.BAS"
  27. Include "SUART.BAS"            
  28.                        
  29. Const ADRESSWR = $90
  30. Const ADRESSRD = $91            ' direccion de lectura y escritura
  31.  
  32. Dim TX   As PORTB.7             ' alias pin de transmision serie
  33. Dim TEMP As Word                ' variable para guardar el registro leido
  34. Dim tempt As String             ' variable para convertir a cadena el registro leido
  35.  
  36. ADCON1= 7                       ' Puerto A digital
  37. DelayMS(1000)
  38.  
  39. 'LCD.CLS()
  40. 'LCD.COMMAND(CMDCURSOROFF)
  41. 'LCD.COMMAND(CMDHOME)
  42. {+++++++++++++++++++++++++++++++
  43.    configuracion del sensor
  44. ++++++++++++++++++++++++++++++++}
  45.  
  46. INICIO:
  47.  'LCD.WRITE("INICIANDO")
  48.  High (PORTB.0)                 ' Visualizacion de incio
  49.  SI2C.Initialize                ' inicio de la comunicacion
  50.  SI2C.Start
  51.  SI2C.WriteByte(%10010000)       ' direccion de escritura
  52.  SI2C.WriteByte(%00000000)       ' apuntando al registro TEMP del sensor
  53.  SetTX(TX)                      ' Pin de transmision
  54.  SetBaudrate(sbr9600)           ' Baud Rate de 9600
  55.  SetMode(umTrue)                ' No invertido
  56.  DelayMS(1000)
  57.  Low (PORTB.0)                  ' visualizacion de fin
  58.  
  59. {*************************************
  60.   rutina de lectura y envio de datos
  61. **************************************}  
  62. LEE:
  63.  'LCD.Cls()
  64.  'LCD.Command(cmdHome)                
  65.  SI2C.Restart
  66.  TEMP = SI2C.ReadByte           ' leer el registro previamente apuntado y guardarlo en TEMP
  67.  'tempt = DecToStr(TEMP)         ' convertir el registro a cadena
  68.  UART.Write(TEMP, 13)          ' enviar el valor del registro
  69.  'LCD.WRITE(TEMPT)               ' ESCRIBIR EN EL LCD
  70.  DelayMS(1000)
  71.  
  72.  
  73. GoTo LEE
  74. End

Como que me esta ganando este mugre sensor, Ya me llego el SOIC para asi confirmar que no solde mal el MSOP. Cuando tenga mi camara de nuevo subire fotos del sensor para que lo vean.


PD hay alguien ahi?? esto suena a monologo :D
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
« Respuesta #42 en: 24 de Noviembre de 2006, 10:22:01 »
PD hay alguien ahi?? esto suena a monologo :D

 :D  :D  :D :D

Seguro que no estás sólo Max !  :)

MKB y PBP no los he trabajado, pero leí por ahí que has probado en Protón.
Postea ese código que le hecho un vistazo.

No te desanimes .....

Espero el código.  :)
Saludos
Mario
« Última modificación: 24 de Enero de 2007, 18:23:28 por Marioguillote »

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
« Respuesta #43 en: 24 de Noviembre de 2006, 14:40:57 »
Hola Mario gracias por contestar y aqui el codigo pero solo veo caracteres extraños en el terminal, creo que despues de probar con MKB, PROTON, y SWORDFISH definitivamente me quedo con PBP :roll:

Código: FreeBasic
  1. '****************************************************************
  2. '*  Name    : UNTITLED.BAS                                      *
  3. '*  Author  : Max Eduardo Reyes Vera Juárez                     *
  4. '*  Notice  : Copyright (c) 2006 Protegido por leyes de autor   *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 24/11/2006                                        *
  7. '*  Version : 1.0                                               *
  8. '*  Notes   :                                                   *
  9. '*          :                                                   *
  10. '****************************************************************
  11. device = 16f84a
  12.  
  13. sda_pin = portb.1
  14. SCL_PIN = PORTB.2
  15.  
  16. DIM PTX AS PORTA.2
  17. DIM LED AS PORTB.3
  18.  
  19. dim temp as word
  20. DIM LSB  AS TEMP.BYTE0
  21. DIM MSB  AS TEMP.BYTE1
  22.  
  23. CONFIGURA:
  24.  high led
  25.  BUSOUT $90,[$00]
  26.  DELAYMS 1000
  27.  LOW LED
  28.  
  29. LEE:
  30.  buSIN $91,[TEMP]
  31.  
  32.  IF (LSB & $80)= $80 THEN
  33.   LSB = 5
  34.  ELSE
  35.   LSB = 0
  36.  ENDIF  
  37.      
  38.  SEROUT PTX,16468,["TEMP: ", dec msb,".",dec lsb, 13]
  39.  delayms 1000
  40. goto lee
  41. end

esta mugre cosa ya me da dolor de cabeza.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
« Respuesta #44 en: 24 de Noviembre de 2006, 15:30:03 »
Hola Max !

Gracias por subir el código, esta tarde al terminar el trabajo me pongo a escribir un código en Protón, entre lo tuyo y el datasheet del TCN75.

Esta tarde estoy de vuelta, ahora me tengo que poner a trabajar, estoy de pasadita antes del trabajo.
No me aflojes.

Saludos
Mario