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

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

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
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
« Última modificación: 19 de Noviembre de 2006, 22:26:20 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 Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Tengo Dudas acerca del SPI
« Respuesta #1 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.
« Última modificación: 20 de Octubre de 2006, 15:23:21 por Mario »
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: Tengo Dudas acerca del SPI
« Respuesta #2 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.




voy a probar con el shiftin a ver que pasa
"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 Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Tengo Dudas acerca del SPI
« Respuesta #3 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.
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 Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Tengo Dudas acerca del SPI
« Respuesta #4 en: 20 de Octubre de 2006, 16:05:41 »
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: Tengo Dudas acerca del SPI
« Respuesta #5 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
"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 Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Tengo Dudas acerca del SPI
« Respuesta #6 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.
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: Tengo Dudas acerca del SPI
« Respuesta #7 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
« Última modificación: 20 de Octubre de 2006, 17:02:29 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 #8 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
"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 Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #9 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.
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 Marioguillote

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1926
    • Servisystem
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #10 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
 

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #11 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
"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 #12 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
"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 Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Usar un TC74 (sensor de temperatura via i2c)
« Respuesta #13 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?
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 #14 en: 24 de Octubre de 2006, 00:54:55 »
Porque soy brujo :D :D :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."


 

anything