Parti: termometro digitale I2C (TC74)

Uncategorized

Microchip’s TC74 è un sensore di temperatura digitale accessibile con un’interfaccia I2C di base. Ha una risoluzione di celsius a 1 grado e una varietà di -40 a +125 gradi. Questo è un metodo facile per aggiungere la misurazione della temperatura a un lavoro senza un convertitore analogico al digitale. Ti mostreremo come utilizzare il TC74 sotto.

Microchip TC74 Sensore di temperatura digitale (Ricerca Octopart, a partire da $ 0,88)

TC74 è disponibile in cinque confezioni per foro passante e di montaggio superficiale, consultare la scheda tecnica TC74 (PDF). Non siamo riusciti a trovare un impronta di GADSoft Eagle per qualsiasi versione di questa parte, se lo sai per favore collegarlo nei commenti.

Le diverse versioni del TC74 sono calibrate per determinate tensioni, ma tutti funzionano da 2,7-5 volte. Il TC74A5 che abbiamo utilizzato è molto preciso quando si opera a 5Volts, ma lo ha alimentato da una fornitura di 3.3Volt. La connessione I2C ha bisogno di 2 resistori di pull-up per contenere il bus High (R1, R2), 2K-10K deve funzionare. C1 è un condensatore di disaccoppiamento da 0,1UF.

Abbiamo utilizzato l’interfaccia seriale universale del pirata del bus in modalità I2C per testare l’unità TC74, ma gli stessi principali identici si applicano a qualsiasi microcontrollore. Abbiamo alimentato il TC74 dalla fornitura di 3.3Volt del pirata dell’autobus e utilizzava i resistori pull-up a bordo per tenere alto il bus I2C.

Comando
Valore

Seleziona il registro della temperatura
0x00.

Seleziona Registro di configurazione
0x01.

L’indirizzo composto del TC74 è 0x9A e l’indirizzo controllato 0x9b. Ha due registri a un byte. Register Indirizzo 0 Contiene la lettura della temperatura, il registro 1 contiene le impostazioni di configurazione.

Registro di configurazione

Bit 6 del registro di configurazione è 0 a accendere e modifiche a 1 quando è disponibile la prima lettura della temperatura valida. Il bit 7 è scrivibile e mette il TC74 in una modalità di standby di risparmio energetico. Lettura del registro include due passaggi: utilizzare un comando composito parziale per scegliere il registro, quindi utilizzare il comando controllato per recuperare il valore.

I2c> {0x9a 1}
210 I2C Begin condition
220 I2C Scrivi: 0x9a ottenuto ACK: Infatti <-write Indirizzo 220 I2C Scrivi: 0x01 GET ACK: Infatti <-Seleziona il registro di configurazione 240 condizione di arresto I2C Innanzitutto, scegliamo il registro di configurazione con un comando componente parziale. Questo non ha effettivamente comporre un valore, seleziona il registro per controllare e scrivere. {Produce la condizione di inizio I2C, rispettata dall'indirizzo Componi TC74 (0x9A) e dal comando Scegli Registro di configurazione (0x01). } Problemi la condizione di arresto I2C e termina la transazione. Ora possiamo controllare il contenuto del registro. I2c> {0x9b r}
210 I2C Begin condition
220 I2C Scrivi: 0x9b GO ACK: Infatti <-Read Indirizzo 230 I2C Leggi: 0x40 <- Valore del registro (01000000) 240 condizione di arresto I2C I2c >.

L’indirizzo controllato (0x9b) restituisce il valore del registro di un byte (R). Il valore del registro di configurazione, 0x40 o 01000000, mostra che il dispositivo è fuori standby (bit 7 = 0), e una lettura della temperatura valida è disponibile (bit 6 = 1).

TC74 ha una modalità standby a bassa potenza. Abilita la composizione di 1 al bit 7 del registro di configurazione.

I2C> {0x9A 1 0b10000000}
210 I2C Begin condition
220 I2C Scrivi: 0x9a ottenuto ACK: Infatti <-write Indirizzo 220 I2C Scrivi: 0x01 GET ACK: Infatti <-Seleziona il registro di configurazione 220 I2C Scrivi: 0x80 GET ACK: Infatti <-Value per comporre (01000000) 240 condizione di arresto I2C I2c >.

Il registro è scritto con un singolo comando a tre byte. Per prima cosa inviamo l’indirizzo di composizione (0x9A), rispettando il registro per scegliere (0x01) e infine il valore da comporre (0x80). Solo un bit 7 del registro di configurazione è scrivibile, i valori dei bit 6-0 vengono ignorati.

Leggi di nuovo il registro per confermare che il comando ha funzionato.

I2c> {0x9a 1} {0x9b r}
210 I2C Bevvia Conditions <-First Command Sets Register 220 I2C Scrivi: 0x9a ottenuto ACK: Infatti <-write Indirizzo 220 I2C Scrivi: 0x01 GO ACK: Infatti <-Config Register (1) 240 condizione di arresto I2C <-End First Command 210 I2C Bevvia Conditions <-Begin secondo comando 220 I2C Scrivi: 0x9b GO ACK: Infatti <-Read Indirizzo 230 I2C Leggi: 0x80 <- Valore del registro (10000000) 240 condizione di arresto I2C <-End secondo comando I2c >.

Il valore del registro, 10000000, ora mostra che il dispositivo è in standby (bit 7 = 1). Si noti che il bit 6 è ora 0, non sono disponibili dati di temperatura.

Cancella il bit 7 per uscire in standby, quindi attendere il bit 6 per tornare a 1 prima di leggere il registro della temperatura.

I2C> {0x9A 1 0b00000000}
210 I2C Begin condition
220 I2C Scrivi: 0x9a ottenuto ACK: Infatti <-write Indirizzo 220 I2C Scrivi: 0x01 GET ACK: SÌ <-Seleziona il registro di configurazione 220 I2C Scrivi: 0x00 ottenuto ACK: sì <-Value to Compose (00000000) 240 condizione di arresto I2C I2c >.

I dati di temperatura vengono preparati quando il valore del registro di configurazione ritorna a 0x40 (01000000).

Temperatura

Il registro della temperatura viene controllato in due passaggi. Innanzitutto, un comando componente parziale seleziona il registro della temperatura (0), quindi una sequenza controllata restituisce il contenuto.

I2c> {0x9a 0} {0x9b r}
210 I2C Begin condition
220 I2C Scrivi: 0x9a ottenuto ACK: Infatti <-write Indirizzo 220 I2C Scrivi: 0x00 Got Ack: Infatti <-SelezionaRegistro della temperatura 240 condizione di arresto I2C 210 I2C Begin condition 220 I2C Scrivi: 0x9b GO ACK: Infatti <-Read Indirizzo 230 I2C Leggi: 0x18 <-Grab One Byte 240 condizione di arresto I2C I2c >.

La temperatura è un valore intero dei gradi Celsius, i numeri negativi sono rappresentati come un complemento TWS. I valori positivi da 0 a 127 gradi Celsius sono solo rappresentati da tale valore. Le temperature negative hanno un bit 7 set e varietà da -1 a -65 (255-128), vedere la tabella 4.4 a pagina 8 della scheda tecnica. Il valore esadecimale 0x18 è uguale a 24 in decimale, quindi la lettura della temperatura è 24C (75F).

Come questo post? Ispezionare gli articoli delle parti che potresti aver perso.

Leave a Reply

Your email address will not be published.