-->

Saturday, February 14, 2009

Sensor de temperatura

Vamos a montar un sensor de temperatura para vuestras DM500, asi podreis controlar esos "calores" que les dan a veces.

Este montaje se ha realizado y probado sobre una DM500C. Es prácticamente seguro que se puede realizar en una DM500S, DM500T o DM500+ sin realizar ningún cambio, pero no ha sido probado. El mod se puede aplicar tambien a otros modelos de dream, pero es necesario localizar los puntos de conexión señalados en este manual.

Introducción

Para empezar, vamos a explicar como funciona este sensor.
El individuo en cuestión es el LM77, un sensor de temperatura con bus I2C.
Para los que no sepais de que va eso del I2C, solo hay que decir que es un tipo de bus de datos creado por Philips para interconectar los primeros microprocesadores que aparecieron en las tv's a mediados y finales de los 80 con el resto de elementos, como el tuner, la eeprom donde se guardan los canales, el receptor de infrarrojos, etc.
Dada su simpleza, y su relativa alta velocidad (no es ninguna maravilla, pero era más rápido que los puertos serie de la época) poco a poco fue saltando de las TV's a los microcontroladores, y hoy en día lo teneis tambien en vuestros pc's (en una versión un poco más simplificada llamada SMBUS).
Como era de esperar, las Dream's no ivan a ser menos, e incluyen uno o dos buses según la versión del core (1 bus para las 600/500 y 2 para las 7000/7020).
En nuestras dreams se utiliza para controlar el tuner, y en las "gorditas" lo teneis tambien en un conector de la parte posterior.



A este bus se le pueden añadir hasta 128 dispositivos "esclavos", y puede conectarse prácticamente de todo, desde memorias eeprom, a controladores de teclado, pasando por displays de todo tipo, dac's, adc's, sensores de todo tipo, etc...
Si quereis aprender algo más sobre el I2C, teneis un enlace en la sección de referencias.
Volviendo al tema del sensor, este pequeñajo de 8 patillas tiene en su interior un sensor de temperatura y un pequeño controlador que lo muestrea cada cierto tiempo y que se comunica con el exterior a traves del anteriormente citado bus de datos.
Tambien tiene un par de patillas que pueden ser programadas para que se activen automáticamente al llegar a ciertas temperaturas que nosotros queramos para, por ejemplo, controlar ventiladores, o simplemente hacer sonar una alarma, pero que de momento no utilizaremos (puede que en un montaje futuro).

Materiales y montaje

Para hacer este mod, necesitaremos lo siguiente:
- Un circuito integrado LM77 (imprescindible)
- Cable de conexiones (yo he utilizado un trozo de cable de cinta, como los de los discos duros IDE o las disqueteras).
- Soldador y estaño.
- Herramientas de corte como alicates o tijeras.
- Goma termoretractil o termofusible. No es imprescindible, pero si muy útil. Tambien se puede utilizar cinta aislante.

Antes de empezar, veamos un poco de que se trata este montaje.
A continuación, teneis una vista del sensor al lado de una moneda para que os hagais una idea del tamaño. Justo despues, el patillaje del sensor que nos servirá de guia para el montaje.





Como podeis ver, el tamaño es minusculo, así que debeis armaros de paciencia, y prácticar un poco antes con el soldador para que todo vaya rodado.
En la imagen del patillaje, los pines que nos interesan para este montaje son tan solo 4, los nombrados como SDA, SCL, GND y VCC.

SDA y SCL se corresponden respectivamente con las lineas de datos y de reloj del bus I2C, por donde nuestro amigo "charla" con nuestra dream.

Las lineas A0 y A1 sirven para seleccionar la dirección que ocupará el chip en el bus. Todos los dispositivos del bus I2C tienen una dirección de 7 bits, la cual se utiliza para identificar con quien quiere "hablar" el host (en nuestro caso la dream). Es algo similar a una dirección IP, pero en chiquitito. Esto tambien supone que en cada bus I2C solo puede haber 128 dispositivos "esclavos".
Por lo general, todos los dispositivos I2C tienen una dirección "base" de fábrica, y ofrecen la posibilidad de configurar los últimos bits de esta para evitar que coincida con la de otros chips del mismo tipo, o de diferente tipo pero con la misma dirección base. Como en el LM77 solo nos dejan los dos últimos bytes, esto quiere decir que se pueden tener hasta 4 chips iguales (las combinaciones posibles con 2 bits binarios) en el mismo bus, obviamente cada uno con una dirección diferente. En nuestro montaje, para simplificar al máximo, los vamos a conectar a la alimentación, lo que significa que la dirección del chip acabara con dos unos binarios (11). Si echais una ojeada al datasheet, llegareis a la conclusión de que nuestro chip tendrá la dirección hexadecimal 0x4b.

Los pines VCC y GND se corresponden con la alimentación y masa (o tierra) en este mismo orden.
¡¡¡ATENCIÓN!!! Cuando compreis el LM77, os pueden dar una de las dos versiones, la de 3.3v o la de 5v.
Debeis de tenerlo en cuenta ya que tendreis que conectarlo a la alimentación que corresponda para que no suceda nada extraño, ni se rompa nada.
La forma de destinguirlos es fácil. En el chip va serigrafiado el nombre del mismo, LM77, junto con un código que puede ser CIM o CIX, seguido de un guión y un número que puede ser 3 ó 5, y que como imaginareis, se corresponde con el voltaje necesario para que funcione el chip.

Aclarado esto último, veamos como y a donde hay que conectar esos pines.

Para empezar, realizaremos las conexiones siguientes en el chip, tal y como se muestra en la siguiente imagen:



¡¡¡ATENCIÓN!!! Fijaros que el chip tiene uno de los lados biselado, y/o con un puntito. Este punto y/o bisel sirven como referencia para indicar el pin número 1, y debeis alinearlo igual que en las imágenes.

Como con imágenes se ve todo mejor, os dejo unas fotos de como lo he hecho yo:



El siguiente paso es opcional, pero muy recomendable. Se trata de aislar el chip y sus conexiones para evitar cortocircuitos en el interior de nuestra dream.
En mi caso he utilizado un macarrón de goma termoretractil (o termofusible). Este tipo de goma se encoge al aplicarle calor, ajustandose al material que hayamos introducido en su interior. Para darle calor puede utilizarse desde el mismo soldador, pasandolo poco a poco por la superficie, una llama de una vela o un mechero (ojo, sin aplicar directamente la llama) o con un secador de pelo al máximo de calor. Por lo general yo utilizo una pistola decapadora, que no es más que un secador con esteroides.
En su defecto, también podemos utilizar cinta aislante, o cualquier método aislante que no afecte a las propiedades térmicas del montaje (no vale envolverlo en pegamento ni nada por el estilo).

Como no, también hay imágenes para esto:



Ahora toca hacer las conexiones en el deco. Para eso, debemos identificar los puntos de conexión del bus I2C.
Como recordareis haber leido más arriba, las dream (al igual que todo decodificador digital) utilizan el bus I2C para controlar el tuner, así que la forma más fácil de obtener las señales es directamente de este. En la sección de referencias teneis el datasheet completo de uno de los tuners de cable, con su correspondiente patillaje. Aunque la dream sea satélite os vale igual de referencia ya que el pineado es el mismo.

De todos modos, como sé que ese tipo de documentos no son la delicia de nadie, os dejo otro documento más gráfico:



Fijaros que he marcado dos pines como VCC. Uno es el de 5V para los chips que funcionen a 5V, y el otro es de 3,3V para los chips que funcionan a 3,3V. Ojo, solo debe de conectarse uno de ellos, el que corresponda al chip que tenemos.

¿Sabeis lo que toca ahora?...
¡¡¡Efectivamente!!!. Es hora de hacer el resto de conexiones.
Uniremos uno a uno los cables que hemos soldado al chip del sensor con su homonimo en el tuner. Es decir, el cable que va a las patitas de VCC, A0 y A1 se conecta con el pin del tuner con el mismo nombre que la primera de ellas (y que corresponda al voltaje del chip), el que va a la patita GND al pin GND del tuner, y las SDA y SCL a los pines SDA y SCL del tuner.

Al final, os tiene que quedar algo como esto:



Como podeis ver, mi dream tiene un disipador sobre el core, y he encajado el sensor justo entre las aletas de aluminio. Es posible que vuestra dream no tenga disipador, con lo que quizas necesiteis fijar el sensor de otra forma. Con un trozo de cinta de doble cara seria suficiente, pero lo dejo a vuestra elección.

Software

¿Que es el hardware sin el software?... Pues básicamente un ladrillo tecnológico.
Así que lo que necesitamos para sacarle partido a nuestro nuevo y flamante añadido es un poquito de soft que haga algo útil con él.
Y estais de suerte porque os he preparado un pequeño programita que hace lo que se le pide... mostrar la temperatura.
No es nada vistoso, ni super currao y se puede mejorar, pero lo he hecho en menos de media hora y es lo que hay.

Lo primero que teneis que hacer es descargaros este fichero:
AQUI

Luego lo subis a vuestra dream por ftp (o el método que prefirais) al directorio /tmp de vuestra dream.

Acto seguido, y con la dream encendida y en un canal, entrais en el blue panel:



Y seleccionais la opción 2, Addons.

Os saldra la siguiente ventana:



Escogeis la opción Manual install y os saldra esta otra pantallita:



Bajais con las flechitas del mando hasta la linea donde aparece el archivo que habeis subido al deco, y pulsais el botón verde (OK). En este caso solo habia este archivo, así que ya salia seleccionado por defecto.

Ahora empieza la instalación, pero antes os pedira confirmación de la siguiente manera:



Ahora solo os queda pulsar de nuevo el botón verde para volver al canal, y estareis preparados para ver la temperatura de vuestra pequeña.

Muy bien, pues vamos a por ello...

De nuevo, botoncito azul desde un canal cualquiera, y de nuevo aparece el blue panel:



Esta vez escogemos la opción 7, Plugins:



Ahora tenemos una lista con nuestros plugins instalados. Seleccionamos el plugin con nombre "Temperatura" (obvio), en mi caso el 2 y...



Antes de que os alarmeis por la temperatura, en mi caso 53 grados, os digo que es normal que el core ande entre los 50 y los 56 grados, siendo lo habitual 53,50.
Esta temperatura es la del propio core, y no la del "ambiente" interior de la dream, que está sobre unos 30 grados.
En standby, el core puede llegar a bajar hasta los 22 grados, eso sí, con prácticamente toda actividad parada, es decir, sin emuladora, ni red, ni nada por el estilo

Posibles mejoras

Como nada es perfecto, todo es susceptible de mejoras, y esto no iba a ser menos.
Por la parte del hardware se pueden hacer algunas cosillas, como conectar un ventilador al sensor para que se active al llegar a cierta temperatura y poco más...
En la parte de software si que se pueden hacer más cosas. Empezando por un panel en enigma como dios manda, hasta un driver que loguee todos los cambios de temperatura, la temperatura media, que recolecte estadisticas, etc...

Referencias

Información sobre el bus I2C: http://es.wikipedia.org/wiki/I2C
Datasheet chip sensor de temperatura: http://www.tododream.com/team/ferix/lm77.pdf
Datasheet sintonizador para cable: http://www.tododream.com/team/ferix/CU1216LS.pdf

Agradecimientos al autor: Ferix

 
Ir arriba Ir abajo