PIEZAS: Termómetro digital I2C (TC74)
El TC74 de Microchip es un sensor de temperatura digital asequible con una interfaz I2C básica. Tiene una resolución de 1 grado Celsius, y una variedad de -40 a +125 grados. Este es un método fácil para agregar la medición de la temperatura a un trabajo sin un convertidor analógico a digital. Le mostraremos cómo utilizar el TC74 a continuación.
Sensor de temperatura digital Microchip TC74 (Búsqueda de octopartes, a partir de $ 0.88)
El TC74 está disponible en paquetes de montaje en el orificio de cinco pines y de montaje en superficie, consulte la hoja de datos TC74 (PDF). No pudimos encontrar una huella de Cádsoft Eagle para cualquier versión de esta parte, si conoce de uno, vincule a él en los comentarios.
Las diferentes versiones del TC74 se calibran para ciertos voltajes, pero todos trabajan de 2.7-5Volts. El TC74A5 que utilizamos es mucho preciso cuando se opera a 5 Volts, pero lo alimentamos de un suministro de 3.3Volt. La conexión I2C necesita 2 resistencias de pull-up para mantener el altura del bus (R1, R2), 2K-10k deben funcionar. C1 es un condensador de desacoplamiento de 0.1UF.
Utilizamos la interfaz serial universal del pirata de bus en el modo I2C para probar el TC74, pero se aplican los mismos principios exactamente a cualquier microcontrolador. Desarrollamos el TC74 de la oferta de 3.3 Volt del pirata del autobús, y utilizamos las resistencias de plumera a bordo para mantener al máximo del bus I2C.
Mando
Valor
Seleccionar registro de temperatura
0x00
Seleccione Registrarse de configuración
0x01
La dirección de composición de TC74 es 0x9a, y la dirección de salida 0x9b. Tiene dos registros de un byte. Dirección de registro 0 Sostiene la lectura de temperatura, registro 1 Sostiene la configuración de configuración.
Registro de configuración
El bit 6 del registro de configuración es 0 en encendido, y modificaciones a 1 cuando está disponible la primera lectura de temperatura válida. El bit 7 es grabable, y pone el TC74 en un modo de espera de ahorro de energía. Leer el registro incluye dos pasos: Utilice un comando de composición parcial para elegir el registro, luego utilice el comando marcado para recuperar el valor.
I2c> {0x9a 1}
210 I2C comience la condición
220 I2C Escribir: 0x9a Got ACK: De hecho, <-WRITE la dirección
220 i2c escribir: 0x01 Got ACK: De hecho, <-Select Config Region
Condición de parada 240 I2C
Primero, elegimos el registro de configuración con un comando de composición parcial. Esto en realidad no compone un valor, selecciona el registro para revisar y escribir. {produce la condición de inicio de I2C, cumplida por la dirección de compensación de TC74 (0x9a) y el comando de registro de configuración de selección (0x01). } Problemas La condición de parada I2C y termina la transacción.
Ahora podemos verificar los contenidos del Registro.
I2c> {0x9b r}
210 I2C comience la condición
220 I2C ESCRITURA: 0x9b GOT ACK: De hecho <-DIGERS
230 I2C Leer: 0x40 <- Valor de registro (01000000)
Condición de parada 240 I2C
I2c>
La dirección marcada (0x9b) devuelve el valor de registro de un byte (R). El valor del registro de configuración, 0x40 o 01000000, muestra que el dispositivo está fuera de espera (BIT 7 = 0), y hay una lectura de temperatura válida disponible (bit 6 = 1).
El TC74 tiene un modo de espera de baja potencia. Permitirlo componiendo 1 a bit 7 del registro de configuración.
I2c> {0x9a 1 0b10000000}
210 I2C comience la condición
220 I2C Escribir: 0x9a Got ACK: De hecho, <-WRITE la dirección
220 i2c escribir: 0x01 Got ACK: De hecho, <-Select Config Region
220 I2C Escribir: 0x80 GOT ACK: De hecho, <-Value para componer (01000000)
Condición de parada 240 I2C
I2c>
El registro está escrito con un solo comando de tres bytes. Primero enviamos la dirección de composición (0x9a), que cumpla con el Registro para elegir (0x01) y, finalmente, el valor para componer (0x80). Solo el bit 7 del registro de configuración es escritura, los valores de los bits 6-0 se ignoran.
Lea el registro nuevamente para confirmar que el comando funcionó.
I2c> {0x9a 1} {0x9b r}
210 I2C comience la condición <-first Command Sets Registrarse
220 I2C Escribir: 0x9a Got ACK: De hecho, <-WRITE la dirección
220 I2C Escribir: 0x01 GOT ACK: De hecho, <-config Registrarse (1)
Condición de parada 240 I2C <-end Primer comando
210 I2C comience la condición <-Begin segundo comando
220 I2C ESCRITURA: 0x9b GOT ACK: De hecho <-DIGERS
230 I2C Leer: 0x80 <- VALOR DE REGISTRO (10000000)
Condición de parada 240 I2C <-end segundo comando
I2c>
El valor de registro, 10000000, ahora muestra que el dispositivo está en espera (BIT 7 = 1). Observe que el bit 6 es ahora 0, no hay datos de temperatura disponibles.
Borde Bit 7 para salir de modo de espera, luego espere en el bit 6 para volver a 1 antes de leer el registro de temperatura.
I2c> {0x9a 1 0b000000}
210 I2C comience la condición
220 I2C Escribir: 0x9a Got ACK: De hecho, <-WRITE la dirección
220 I2C Escribir: 0x01 GOT ACK: SI <-Select Config Register
220 I2C Escribir: 0x00 Got ACK: Sí <-Value para componer (00000000)
Condición de parada 240 I2C
I2c>
Los datos de temperatura se preparan cuando el valor del registro de configuración vuelve a 0x40 (01000000).
Temperatura
El registro de temperatura se revisa en dos pasos. Primero, un comando de composición parcial selecciona el registro de temperatura (0), luego una secuencia marcada devuelve los contenidos.
I2c> {0x9a 0} {0x9b r}
210 I2C comience la condición
220 I2C Escribir: 0x9a Got ACK: De hecho, <-WRITE la dirección
220 i2c escribir: 0x00 Got ACK: De hecho, <-Selectregistro de temperatura
Condición de parada 240 I2C
210 I2C comience la condición
220 I2C ESCRITURA: 0x9b GOT ACK: De hecho <-DIGERS
230 I2C Leer: 0x18 <-grab One Byte
Condición de parada 240 I2C
I2c>
La temperatura es un valor entero de los grados Celsius, los números negativos se representan como un complemento de TWOS. Los valores positivos de 0 a 127 grados Celsius están representados por ese valor. Las temperaturas negativas tienen un bit 7 set, y la variedad de -1 a -65 (255-128), consulte la Tabla 4.4 en la página 8 de la hoja de datos. El valor hexadecimal 0x18 es igual a 24 en decimal, por lo que la lectura de la temperatura es de 24c (75F).
¿Como esta publicación? Inspeccione los artículos de las piezas que puede haber perdido.