TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: navaismo en 20 de Octubre de 2006, 14:38:10

Título: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo en 20 de Octubre de 2006, 14:38:10
Hola amigos.

Estaba queriendo probar un sensor de temperatura de los que fabrica Microchip, es el TC74 el cual se comunica por SPI (serial port interface), y me surgio una duda ¿El SPI del pic es una comucicacion serie (como serin o serout) o mas bien una comunicacion I2C (i2cwrite i2cread)? esto me pregunto ya que habla del "Simple SMBus/I2C™ Serial Port Interface" y con PBP no encuentro una instruccion que use SPI o que utilice pines como SDA o SCKL, creo i2c si los posee. Y la verdad no se si SHIFTIN y SHIFTOUT me sirvan, ya que  creo que esta instruccion envia o lee por MSB o LSB y el sensor me entrega la lectura entera osea todo el BYTE y eso de recibirlo por partes me va a costar mas trabajo


Podria usar MKB ya que este si tiene libreria de SPI, pero lo dejare como ultima opcion, aun tengo fe en que PBP pueda comunicarse con ese sensor.

Espero me hayan entendido y puedan ayudarme. Gracias
Título: Re: Tengo Dudas acerca del SPI
Publicado por: Mario en 20 de Octubre de 2006, 15:19:55
Es un protocolo parecido al I²C en que es serial y puedes conectar varios dispositivos.

Este usa 3 líneas de control, a diferencia de I²C que usa 2.
La diferencia radica en que en el I²C tu escribes la dirección al dispositivo que quieres; en SPI activas al dispositivo por un ENABLE.
Necesitas un enable por cada dispositivo (una terminal del µicro), en I²C no.

Usar el SPI en hardware del µicro:
http://www.microengineeringlabs.com/resources/samples/pbp/spimast.bas
http://www.microengineeringlabs.com/resources/samples/pbp/spislave.bas

Si puedes usar el Shifin y out.
http://www.microengineeringlabs.com/resources/samples/pbp/shift.bas

O para un ejemplo mas detallado:
http://www.rentron.com/PicBasic/SERLED.htm


Bájate esto:
http://www.parallax.com/html_pages/downloads/siccurriculum/documentation_sic_curriculum.asp#spanish

El manual de analógico-digital y en la página 44 viene un ejemplo de eso.
Es para BS2 pero es lo mismo que PBP.
Título: Re: Tengo Dudas acerca del SPI
Publicado por: navaismo en 20 de Octubre de 2006, 15:38:37
Hola Gracias Mario, ya habia visto los primeros 2 ejemplos del spi, lo que no me quedo claro es donde guardan lo que leen y ni cuando lo leen, aqui los tengo ya. Voy a checar los otros que me pones.

Y ahora que me reafirmas que el shiftin sirve, creo que  lo de MSB o LSB es por donde empieza a leer asi que creo que me servira mucho ese comando mira este es el sensor.

(http://img103.imageshack.us/img103/8558/tc74qr9.jpg)


voy a probar con el shiftin a ver que pasa
Título: Re: Tengo Dudas acerca del SPI
Publicado por: Mario en 20 de Octubre de 2006, 16:03:59
Oye, creo que este se usa por I²C, no por SPI  :?

Tiene su dirección y todo, los SPI no tienen dirección.

Bueno, al trabajo.. hasta la noche.
Título: Re: Tengo Dudas acerca del SPI
Publicado por: Mario en 20 de Octubre de 2006, 16:05:41
O si, es I²C  :lol:

http://forum.microchip.com/m.aspx?m=176963&mpage=1&key
Título: Re: Tengo Dudas acerca del SPI
Publicado por: navaismo en 20 de Octubre de 2006, 16:11:03
Por eso decia que me quedaban dudas si era mas i2c o spi ya que en microchip me decia esto y su data tambien

Citar
Parameter Name   Value
Typical Accuracy (°C)   ±0.5
Max Input/Supply Current (µA)   350
Max Accuracy @ 25°C (°C)   ±2
Temp. Range (°C)   +125
Operating Voltage Range (V)   +5.5
Device Description   Serial Output Temp Sensor
Resolution (bits)   8
 Pb Free Available   Yes

Summary
TC74 is a serially accessible digital temperature sensor particularly suited for low cost and small form-factor applications. Temperature data is converted from the on-board thermal sensing element and made available as an 8-bit digital word. Communication with the TC74 is accomplished via a simple 2-wire SMBus/I2C™-compatible serial port. This bus also can be used to implement multi-drop/multi-zone monitoring. The SHDN bit in the CONFIG register can be used to activate the low-power Standby mode. Temperature resolution is 1°C. Conversion rate is a nominal 8 samples/sec. Power consumption in only 200 µA (5 µA Standby). Small size, low installed cost and ease of use make the TC74 an ideal choice for implementing thermal management in a variety of systems.


Features
Digital Temperature Sensing in SOT-23-5 Package

Outputs Temperature as an 8-Bit Digital Word

Simple Serial Port Interface

Solid State Temperature Sensing:

±2°C Accuracy from +25°C to +85°C
±3°C Accuracy from 0°C to +125°C
3.0, and 5.5V Operating Range
Low Power 200 µA Operating
5 µA Standby Mode

General Description

The TC74 is a serially accessible, digital temperature
sensor particularly suited for low cost and small formfactor
applications. Temperature data is converted from
the onboard thermal sensing element and made
available as an 8-bit digital word.
Communication with the TC74 is accomplished via a 2-
wire SMBus/I2C compatible serial port. This bus also
can be used to implement multi-drop/multi-zone
monitoring. The SHDN bit in the CONFIG register can
be used to activate the low power Standby mode.
Temperature resolution is 1°C. Conversion rate is a
nominal 8 samples/sec. During normal operation, the
quiescent current is 200 μA (typ). During standby
operation, the quiescent current is 5 μA (typ).
Small size, low installed cost and ease of use make the
TC74 an ideal choice for implementing thermal
management in a variety of systems.

Por deduje que es SPI no i2c pero veo que hay ejemplo en i2c :z) ahora estoy peor que antes
Título: Re: Tengo Dudas acerca del SPI
Publicado por: Mario en 20 de Octubre de 2006, 16:14:18
Si te dice que usa 2 terminales es I²C, si te dice 3 es SPI.

Usa I²C write y read.
Título: Re: Tengo Dudas acerca del SPI
Publicado por: navaismo en 20 de Octubre de 2006, 16:23:00
WENO muchas gracias amigo, lo voy hacer como me dices

------------------------------------------------------------------------------------

Me lleva!!! algun dia espero resolver las cosa yo mismo. Me encontre con este ejemplo  :( que mas que ejemplo ya me hicieron el trabajo lo poingo por si a alguien le sirve

Citar
Look in the TC74 datasheet at page # 6 section 3.1.2

[
The TC74 is internally programmed to have a default
SMBus/I2C address value of 1001 101b. Seven other
addresses are available by custom order (contact
Microchip Technology Inc.
]

Unless you have a custom version of the TC74, then your
control byte will always be $9A or 1001 1010

What happened to my b..?

The b in the control byte "1001 101b" is set or cleared for you by
PBP depending on whether you are writing to or reading from the
I2C device. You should always leave this bit clear, hence the
control byte is always $9A or 1001 1010 for the TC74.

Try this --

i2cwrite sda,scl,$9A,$1,[$80] ' Place sensor in stand-by mode
i2cread sda,scl,$9A,$0,[temp] ' Read temperature

Now place something hot or cold on the sensor. The value returned
in temp should never change. The TC74 is in stand-by mode.

Now try this --

i2cwrite sda,scl,$9A,$1,[$00] ' Place in normal operating mode
i2cread sda,scl,$9A,$0,[temp] ' Read temperature

Now the value returned in temp should change as the temperature
changes.

Here's some code to play with;

temp var byte
scl var portc.3
sda var portc.4

Main:
' $9A = Control + I2C device address. This remains constant for the TC74
' as indicated in the TC74 datasheet 1001 101b. The b bit is set by PBP
' depending on whether you are reading or writing to the I2C device.

' $0 or $1 = the I2C internal register address to read or write.
' Note: You can read from address $0 or $1, but only write to address $1.
' You cannot write to address $0 since this is the temperature register.

' The last byte is used to place the sensor in normal or stand-by mode.
' $00 = config sensor for normal operation.
' $80 = place sensor in stand-by mode.

' While in stand-by mode the temperature readings will never change
' since the TC74 is in low power stand-by.

' ** Comment out 1 line below to see the results of stand-by & normal modes **

i2cwrite sda,scl,$9A,$1,[$80] ' Place sensor in stand-by mode
' i2cwrite sda,scl,$9A,$1,[$00] ' Place sensor in normal operation mode

' $9A,$1,[temp] reads address $1 which is the internal config register.

i2cread sda,scl,$9A,$1,[temp] ' Read config byte register.
hserout ["Config = ",bin8 temp,13,10] ' Print config reg value.

' $9A,$0,[temp] reads the temperature register which is at address $0

i2cread sda,scl,$9A,$0,[temp] ' Read temperature
HSEROUT ["Temp = ",bin8 temp," & ",dec temp," deg C",13,10]
pause 500
goto main

I'm not a big fan of this sensor, but that should get you going....;o]


Regards,

-Bruce
te-n.com
http://www.rentron.com


ah y le cambie en nombre al post
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 23 de Octubre de 2006, 20:02:34
Pues nada no funciona o no le he podido echar a andar

Aqui el codigo que uso:
Código: C#
  1. '****************************************************************
  2. '*  Name    : TERMO con TC74.pbp                                *
  3. '*  Author  : Max E. Reyes Vera Juárez                          *
  4. '*  Notice  : Copyright (c) 2006 Protegido por leyes de Autor   *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 23/10/2006                                        *
  7. '*  Version : 1.0                                               *
  8. '*  Notes   :                                                   *
  9. '*          :                                                   *
  10. '****************************************************************
  11. @ DEVICE XT_OSC, PROTECT_OFF, WDT_OFF
  12. include "modedefs.bas"
  13.  
  14. SCLK VAR PORTB.0
  15. SDA  VAR PORTB.1
  16.  
  17. TEMPT VAR BYTE
  18. i var byte
  19.  
  20. INIT:
  21.  i2cwrite sda,sclk,$90,$1,[$80] "' standby "
  22.  pause 1000
  23.  
  24.  for i =0 to 5
  25.   i2cread sda,sclk,$90,$00,[tempT] "' leer temperatura"
  26.   serout2 portb.3,84,["leyendo en standby "]
  27.   serout2 portb.3,84,["temperatura de: ",dec tempT,"°C",13]
  28.   pause 2500
  29.  next i
  30.  
  31. I2cwrite sda,sclK,$90,$01,[$00] " 'CONFIGUARNDO MODO DE OPERACION NORMAL"
  32. PAUSE 1000
  33. serout2 portb.3,84,[13,13]
  34. goto sensa
  35.  
  36. SENSA:
  37.  i2cread sda,sclK,$90,$00,[tempT] "'LEE LA TEMPERATURA"
  38.  serout2 portb.3,84,["temperatura de: ",DEC tempT,"°C",13]
  39.  PAUSE 5000
  40. GOTO SENSA
  41. END

una pregunta mas las lineas se conectan asi sin resistencias de por medio????

y uso la direccion $90 porque segun el datasheet

Citar
Device: TC74: Serial Digital Thermal Sensor
Address Options: A0 = 1001 000
A1 = 1001 001
A2 = 1001 010
A3 = 1001 011
A4 = 1001 100
A5 = 1001 101 *
A6 = 1001 110
A7 = 1001 111
* Default Address
Output Voltage: 3.3 = Accuracy optimized for 3.3V
5.0 = Accuracy optimized for 5.0V
Operating Temperature: V = -40°C ≤ TA ≤ +125°C
Package: AT = TO-220-5
Examples:
a) TC74A0-3.3VAT: TO-220 Serial Digital Thermal Sensor
b) TC74A1-3.3VAT: TO-220 Serial Digital Thermal Sensor
c) TC74A2-3.3VAT: TO-220 Serial Digital Thermal Sensor
d) TC74A3-3.3VAT: TO-220 Serial Digital Thermal Sensor
e) TC74A4-3.3VAT: TO-220 Serial Digital Thermal Sensor
f) TC74A5-3.3VAT: TO-220 Serial Digital Thermal Sensor *
g) TC74A6-3.3VAT: TO-220 Serial Digital Thermal Sensor
h) TC74A7-3.3VAT: TO-220 Serial Digital Thermal Sensor
a) TC74A0-5.0VAT: TO-220 Serial Digital Thermal Sensor
b) TC74A1-5.0VAT: TO-220 Serial Digital Thermal Sensor
c) TC74A2-5.0VAT: TO-220 Serial Digital Thermal Sensor
d) TC74A3-5.0VAT: TO-220 Serial Digital Thermal Sensor
e) TC74A4-5.0VAT: TO-220 Serial Digital Thermal Sensor
f) TC74A5-5.0VAT: TO-220 Serial Digital Thermal Sensor *
g) TC74A6-5.0VAT: TO-220 Serial Digital Thermal Sensor
h) TC74A7-5.0VAT: TO-220 Serial Digital Thermal Sensor
* Default Address

y yo tengo el TC74A05.0VAT y solo logro recibir 0°C osea no lee nada

saludosss
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Mario en 23 de Octubre de 2006, 20:15:09
No tengo mucho tiempo pero, cualquier I²C que tengas debes conectarle resistencias de jalón (I²C funciona con colector abierto).

una pregunta mas las lineas se conectan asi sin resistencias de por medio????

Conéctale resistencias de 10K o 2.2 K cada una en las terminales que usas para I²C.

El manual debería decirte cómo conectarlas.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Marioguillote en 23 de Octubre de 2006, 21:43:56
Hola gente !

Para conectar las líneas de datos y clock no necesitar interponer nada entre el micro y el dispositivo, sólo debes colocar las resistencias pull-up.
2 resistencias de 4,7K o de 10K a los 5Volts.
Después otra cosa:
En la instrucción ic2read, prueba de leer en hex

i2cread sda,sclK,$90,$00,[hex tempT] "'LEE LA TEMPERATURA"

En Protón+ es distinto, se usan las instrucciónes BUSIN y BUSOUT, pero por ejemplo, para leer el DS1307 hay que ponerle [hex variable]

Saludos
Mario
 
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 24 de Octubre de 2006, 00:04:03
Hola lo de las resistencias pullup ya lo hice, las conecte a SDA y SCLK del sensor a 5volts (2 resistencias de 4.7K) y nada, me marca siempre 32°C cosa que no creo que este bien.

Voy a probar lo de leer en Hex.

Saludos Mario's

PD: Mario1 No estoy tan peke como dices  :P  solo me llevas 2 años :D
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 24 de Octubre de 2006, 00:42:14
No esto sigue sin trabajar ya le puse unas de 10k y unas de 4.7k y ahora solo me marca 2°C osea que no jala.

Que mas puede ser??? de 3 que tengo niguno me marca nada ya volvi a la direccion default y nada $9A o $90 y nada de nada
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Mario en 24 de Octubre de 2006, 00:45:25
Voy a revisar la hoja de datos y la comparo con tu código.

Eso lo haré después de que termine la tarea de la maestría (que puede ser dentro de 4 horas  :shock:).


¿Cómo sabes la edad que tengo?
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 24 de Octubre de 2006, 00:54:55
Porque soy brujo :D :D :D
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Mario en 24 de Octubre de 2006, 01:31:25
Oye Navaismo, intenta con $9A para escribir y $9B para leer.

Te conviene mas usar el LM35 por su resolución y por tener menor error (1 grado si no recuerdo mal); éste sensor tiene 3 grados de error.

Hay otro sensor que fabrica la Maxim, el DS18 algo, no recuerdo bien. Ese también es de temperatura y no me acuerdo si es de humedad también...... necesito revisar eso.

Se supone que haría la tarea  :D.

Ahora si  ;-), no mas distracciones.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 24 de Octubre de 2006, 02:01:47
 :8} Nop no jala :sad:, segun el data mi direccion es 1001 000 pero hasta ahi me quedo ya cambie las resistencias de 4.7 por 10 k y nada de nada. sigue marcando 2 y lo de agregar HEX  no se puede no se permite ne la sintaxis
---------------------------------------------

Por cierto migre del lm35 porque este igual tiene margen de +/- 1°C y no necesita adc, crei que era mas facil -jaja veo que no- y como son gratis pues quise probar. Y para lo que lo voy a usar pues bienvenido -quiero un sensor de temperatura para el interioir de mi pc con displays esta MOBOI no trae sensor.

saludos
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 24 de Octubre de 2006, 03:02:33
Bueno me choca trabarme asi que me pico con le tema. Estuve revisando el foro y encontre en el subforo de C que alguien si lo pudo hacer funcionar y es el mismo que el mio. AQUI el LINK (http://www.todopic.com.ar/foros/index.php?topic=4875.msg36456#msg36456)

me llaman la atencion unas lineas (intento interpretarlas bien) y son estas:


Código: [Seleccionar]
....
#define escribir_dispositivo 0b10010000 // ya que la capsula es TC74A0
#define leer_dispositivo 0b10010001 // ya que la capsula es TC74A0
....

  void temperatura(){

  i2c_start();
  i2c_write(escribir_dispositivo);
  i2c_write(0x00);
  i2c_start();
  i2c_write(leer_dispositivo);
  tmp=i2c_read();
  i2c_stop();
.........

veo que hacen una constante para escribir y leer  (10010000 y 10010001 respectivamente), esto es la direccion a la que me referia y que no logro configurar bien.

Luego en la rutina temperatura usan i2c_write(escribir_dispositivo); que sera donde acceden al registro, enseguida ponen i2c_write(0x00); que me imagino sera la configuracion default o de opercacion normal del TC74, (creo que si pusieran 0x80 lo configurarian en modo standby).

Despues ponen  i2c_write(leer_dispositivo); que es la configuracion del registro para leer y enseguida tmp=i2c_read(); que es donde guardan el valor leido.

Ahora lo bueno, yo uso I2cwrite sda,sclK,$90,$00,[$00] para esribir pero despues del noventa pongo $00 segun lei para que sepa que registro y entre corchetes igual [$00] para decirle que opere en modo normal.

Y tambien uso i2cread sda,sclK,$91,$01,[tempT] para leer, lo mismo para el $01 segun la direccion del regitro y en [TEMPT] guardo lo leido pero nada de nada. Aun quitando el $00 y el $01 no me da valores

Que podra ser




Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Mario en 24 de Octubre de 2006, 04:18:52
Mmmmm......... me equivoqué con las direcciones, no había leido que tienes TC74A0, creí que tenías TC74A5.

¿No has considerado colocarle las etiquetas de error al I²C para saber dónde pudiera quedarse colgado? Si es a la hora de escribir o leer.

Otra situación que no he mencionado pero ya es tiempo de hacerlo:
¿Estás seguro que el dispositivo funciona?

Si tienes otro igual y ya lo cambiaste, estamos mal.

El único error que encotré en tu código (así rápido) es que siempre ponías 9 para escribir y leer; cuando debe ser el último bit quien dice si se escribe (o) o lee (1).

Si lo haces todo con el cristal del tema pasado estamos fritos; ese cristal especial que tienes que interactúa con las fuerzas magnéticas de la tierra y que alinea a Neptuno con Marte creado un equinoccio otoñal, produciendo así deflexiones en la perseverancia intrínseca indispensable para la trituración de metal acomulable en las playas de Málaga, provocando que la arena tomada para hacer el silicio esté contaminada de mas y por eso, no te funcionan.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 24 de Octubre de 2006, 04:24:40
:D :D

No es un crystal de 4MHZ el otro es el de 12MHZ -y si con ese nada funciona- lo de cambiar el sensor ya lo hice 3 veces pues me llegaron 3 y dudo que los 3 esten mal.

Lo de los bits pues pongo $90,$00 o $91,$01 segun sea el caso. y como puse en el post anterioir tengo mis dudas aun comparandolo con el codigo de C, voy a probar con MKB haber que tal.


Ya lo probe en MKB y nisiquiera trnsmite los datos a mi PC -maldito mkb yo que me creo que va a funcionar-

aqui les dejo el codigo haber si a alguien le funciona

Código: C#
  1. program tc74
  2.  
  3. dim temp as byte
  4.  
  5. main:
  6.  TRISA=0
  7.  SOFT_I2C_CONFIG(PORTB,0,1)
  8.  SOFT_UART_INIT(PORTA,0,1,1200,0)
  9.  soft_i2c_write(%10010000)
  10.  soft_i2c_write($01)
  11.  soft_i2c_write($00)
  12.  soft_i2c_stop()
  13. GOTO INIT
  14.  
  15. INIT:
  16.  SOFT_I2C_START()
  17.  SOFT_I2C_WRITE(%10010000)
  18.  soft_i2c_write($00)
  19.  soft_i2c_start()
  20.  soft_i2c_write(%10010001)
  21.  temp = soft_i2c_read(0)
  22.  soft_i2c_stop()
  23.  soft_uart_write(temp)
  24.  delay_ms(2500)
  25. goto init
  26. end.
es para un 16F84A con reloj de 4mhz (ni siquiera me saca bien el baudrate el mkb)

Título: Re: Usar un TC74 (sensor de temperatura via i2c)----SOLUCIONADO!!
Publicado por: navaismo en 25 de Octubre de 2006, 14:09:16
 :-/ :-/ :-/ :-/ :-/


Por fin pude echarlo andar, que era? Probablemente como lo direccionaba. Volvi a armar el circuito y a rehacer el programa y sorpresota!!!! Funciono a la primera.

Aqui les dejo el codigo por si a alguien alguna vez le sirve

Código: C#
  1. "'****************************************************************
  2. '*  Name    : TERMO con TC74A0.pbp                               *
  3. '*  Author  : Max E. Reyes Vera Juárez                      *
  4. '*  Notice  :                                                    *
  5. '*          : All Rights Reserved                                *
  6. '*  Date    : 23/10/2006                                         *
  7. '*  Version : 1.0                                                *
  8. '*  Notes   :   La direccion para este sensor es 1001 000        *
  9. '*          :      para leer seria 1001 0001 = $91               *
  10.            :      para escribir     1001 0000 = $90             *
  11.           :      para modo normal $00                           *
  12.            :    para modo standby  $80                          *
  13. '****************************************************************"
  14. @ DEVICE XT_OSC, PROTECT_OFF, WDT_OFF
  15. include "modedefs.bas"
  16.  
  17. SCLK VAR PORTB.0
  18. SDA  VAR PORTB.1
  19.  
  20. TEMPT VAR BYTE
  21. i var byte
  22.  
  23. INIT:
  24.  
  25. I2cwrite sda,sclK,$90,[$00]   " 'CONFIGUARNDO MODO DE OPERACION NORMAL"
  26. PAUSE 1000
  27. serout2 portb.3,84,[13,13]
  28. goto sensa
  29.  
  30. SENSA:
  31.  i2cread sda,sclK,$91,[tempT]  "'LEE LA TEMPERATURA"
  32.  serout2 portb.3,84,["temperatura de: ",DEC tempT,"°C",13] "'envia la temperatura de forma serie 9600 sin invertit"
  33.  PAUSE 5000
  34. GOTO SENSA
  35. END
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Marioguillote en 25 de Octubre de 2006, 15:34:31
Muy Bien MAX !

Encontré una diferencia aquí
Programa viejo:

SENSA:
i2cread sda,sclK,$90,$00,[tempT] "'LEE LA TEMPERATURA"

Programa nuevo:
SENSA:
i2cread sda,sclK,$91,[tempT]  "'LEE LA TEMPERATURA"

Pero lo importante es que ya finciona.
Felicitaciones!
Saludos
Mario

Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 25 de Octubre de 2006, 18:12:01
Si en efecto creo que por ahi estaba el problema, ahora a probarlo a fondo a ver si da el ancho y a rediseñar el dentalcook, entre otras cosas que tengo que hacer.

Ah y ahora que me lleguen unos TC77 Y TC75 probare haber que tal con esos.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 26 de Octubre de 2006, 01:00:41
 :8} :8} :8} :8} :8} :8} :8} :8} :8} :2]


Oh!!!! decepcion el "sensorcillo" este me ha dado muchas sorpresas. Ahora que ya funciona y lo he estado probando pues si da una temperatura fiable, mas cuando le saco el promedio. Pero solo he visto un inconveniente.

Cuando intento leer mas temperatura osea cuando empiezo a subirla con un encendedor, la maxima leida es de 51° mas alla me empieza a marcar desde cero, y cuando baja vuelve 51, 50....etc. Segun el manual mide hasta 125 pero a mi no me resulta, me lo he leido y releido pero nada. Dejo esta parte aqui para ver si alguien me puede dar Luz.

(http://img87.imageshack.us/img87/2336/temppp4.jpg)

Voy a ver como me va con los TC77 y TC75
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Marioguillote en 26 de Octubre de 2006, 01:49:28
Ahora haz la prueba de poner [hex tempT].
A mí me pasaba eso con el DS1307 y lo solucioné de esa forma.

Saludos. Vamos que estás muy cerca !

Mario
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 26 de Octubre de 2006, 02:00:36
Es que la sintaxis de i2cread o i2cwrite no me permite meterle el prefijo HEX, snif snif.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Mario en 26 de Octubre de 2006, 02:22:41
Max, es meterle HEX en lugar de DEC a la hora de desplegar.

Sigo insistiendo que no deberías usar este sensor:
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 26 de Octubre de 2006, 02:57:06
mmmm.... No no es HEX a la hora de desplegar ya que lo que el sensor entrega es en formato binario de 8-bits como dice la imagen de arribita (la mia) si le pongo Hex a la hora de desplegar por ejemplo me saca 17°C y en binario me saca 00010111 que es 23 , la temperatura  la que esta mi cuarto.

Y si veo que efectivamente tiene ese gran margen de error, pero les tengo que dar un uso no? ademas son gratis, espero que los otros (TC77  y TC75) no esten tan chafas...

Yo ya queria hacer mis camisas " I love MICROCHIP" con el logo en lugar de la palabra.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Mario en 26 de Octubre de 2006, 03:53:38
"A caballo dado no se le ve colmillo"  :)

"De lo perdido lo que aparesca"  :lol:

Voy a ver si puedo adaptar las rutinas que dán los de microengineering labs para usar el I²C por hardware.

Tantas cosas que quiero hacer y no me doy abasto  :D
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo en 31 de Octubre de 2006, 16:14:08
Bueno ya me llegaron los otros sensores el TC77 y el TCN75 y veo una tarea algo dificil, son unas micro-miniaturas de sensores. Problemas para mi pulso seguro :D y ahora estos se acceden de forma muy muy diferente el TC77 me da una lectura de 13 bits :shocked: como leo eso y elotro igual. bueno voy a checar que onda y les aviso.

Por cierto no logro leer mas de 52° con el tc74 y creo que la clave esta en la tabla de aqui (http://www.todopic.com.ar/foros/index.php?topic=14413.msg88088#msg88088) arriba y la frase "complemento de dos"

algun tip???
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Marioguillote 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.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Mario 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
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo 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
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo 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
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Marioguillote 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
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo 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.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo 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
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: Marioguillote 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
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo 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.
Título: Re: Usar un TC74 (sensor de temperatura via i2c)
Publicado por: navaismo 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  :-)
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo 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
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo 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
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: Marioguillote 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
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo 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.
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: Marioguillote 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
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: Marioguillote en 24 de Noviembre de 2006, 21:00:37
Aquí estamos Max.

Prueba el código que te dejo en el adjunto. Lo que hice fué setear el registro CONFIG, HYST y TSET a cero.
Lo que me interesa, es ver si puedes leer temperatura ambiente en forma correcta con este código. Si superamos esta prueba, ya luego pasamos a configurar los registros y ver como usar el pin INT/COMPTR.

Está armado en Protón van todos los archivos generados dentro del rar.

Contáme como te vá con este código.

Saludos
Mario
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo en 25 de Noviembre de 2006, 01:12:02
Gracias Mario deja lo pruebo y te comento.... Gracias Gracias Gracias!!!!!!
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: Marioguillote en 25 de Noviembre de 2006, 01:24:57
Hola Max !

Probalo y después contame como te fué.

Un abrazo
Mario
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo en 25 de Noviembre de 2006, 01:36:25
Pues creo que no muy bien en lo de la visualizacion, porque?? creo que esta linea que hice esta mal:

Código: [Seleccionar]
SEROUT PTX,16468,["TEMP: ", DEC MSB,".",DEC LSB, 13]

ahi queria mandar a t9600 por el porta2 el valor decimal de MSB y LSB precedido por la cadena TEMP y un retorno de carro al final pero parece ser que en proton DEC no es decimal si no una funcion de decremento.

Asi que no recibo mas que caracteres extraños nada parecido a  TEMP: MSB.LSB

Como es eso de mandar datos seriales no es igual que en PBP y si de la ayuda de PBP se quejaban yo me quejo mas de esta no hace mas que confundir y no es muy clara.

Gracias Mario por la atenion prestada y tu tiempo
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: Marioguillote en 25 de Noviembre de 2006, 18:17:18
Hola Max !

Vamos a poner la variable TEMP como FLOAT

Probá este código. No reniegues, ya nos vá a salir.

Saludos
Mario
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo en 25 de Noviembre de 2006, 18:24:13
Gracias lo pruebo y Te comento

Gracias gracias!!!!
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: Marioguillote en 25 de Noviembre de 2006, 18:31:06
Si no te funciona con [DEC TEMP], probá de poner [@ TEMP].
Son las dos posibilidades que trae Protón de, poner una variable en decimal.
Otra : En el HELP, buscá SEROUT y fijate que habla de los DECLARE. Tal nos falte poner eso.

Yo voy a estar por aquí.
Espero noticias.
Saludos
Mario
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo en 27 de Noviembre de 2006, 15:51:58
Ups Hola Mario perdon por no responder.

Pues sigo sin poder configurar los otros registros creo que esta mal como los direcciono tendre que reeler el datasheet haber que pasa. Gracias de todas formas!!!
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo en 24 de Diciembre de 2006, 16:17:47
Hola mis amigos bueno parecer que tengo abandonado el tema pero estuve comparando con Proton estos sensores y el LM35 y :S la cosa se pone ruda varian un buen mientras el LM35 me marca 18 cuando hace frio y 22 templado, los otros sensores me marcan 18 y 25 respectivamente con una oscilacion encanijada entre lectura y lectrura.

bueno les iba a poner fotos del TCN75 y del TC74 pero el TC74 no le encuentro ya los perdi :D y solo alcance a tomar una foto toda fea al TCN75 esque la camara se la llevo mi conpadre parece que hoy nace su hij y nos la pidio prestada jjusto cuando estaba tomando fotos. Pero en cuanto regrese les tomo unas mejores...

(http://img109.imageshack.us/img109/5495/tcn75am9.jpg)


Saludos abrazos y felices PEDAS perdon  Felices Fiestas a todos.
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: alexrod en 05 de Abril de 2007, 06:40:47
wow
el desarrollo del proyecto fue el año pasado pero lo acavo de leer completito y en verdad que contagian con su trabajo, en que ha quedado el proyecto navaismo ?    alfin porcual sensor te has decidido ?    soy un novataso pero he aprendido cantidad de i2c y sensores con estos post q solo puedo darles las gracias, y esten seguros q no soy el unico, y a comprar sensores se ha dicho  :D    saludos.
Título: Re: Usar un TC74 y un TCN75 (sensores de temperatura via I2C de Microchip)
Publicado por: navaismo en 05 de Abril de 2007, 14:21:23
Hola pues decidi usar el LM35Dz  :D jaja no el TCN75 funciona bien aunque el proyect solo lo tengoen standby el sensor lo use para armar temporalmente esto (http://miarroba.com/foros/ver.php?foroid=1149907&temaid=5989477).

Saludos