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
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:
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
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:
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 normalbueno entonces tendriamos:
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
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