Alkatrészek: I2C digitális hőmérő (TC74)

October 14, 2022 0 By qixa

A MicroChip TC74 egy megfizethető digitális hőmérséklet-érzékelő, alapvető I2C interfésszel. Az 1 fokos Celsius felbontása és a különböző -40-125 fok. Ez egy egyszerű módszer, hogy hőmérsékletmérést adjon hozzá egy munkahelyhez analóg a digitális átalakítóhoz. Megmutatjuk, hogyan kell használni az alábbi TC74-et.

Microchip TC74 Digitális hőmérséklet-érzékelő (Octopart keresés, 0.88 dollárért)

The TC74 is available in five pin through-hole and surface mount packages, see the TC74 datasheet (PDF). We couldn’t find a Cadsoft Eagle footprint for any version of this part, if you know of one please link to it in the comments.

A TC74 különböző verzióit bizonyos feszültségekre kalibrálják, de minden 2,7-5volt. A TC74A5, amelyet hasznosítottunk, sok pontos, ha 5Volts-on működik, de a 3.3volt kínálatból meghajtottuk. Az I2C-kapcsolatnak 2 pull-up ellenállást igényel a busz magas (R1, R2), 2k-10k-nek kell működnie. A C1 egy 0,1 ° C függetlenítő kondenzátor.

We utilized the Bus Pirate universal serial interface in I2C mode to test drive the TC74, but the exact same principals apply to any microcontroller. We powered the TC74 from the Bus Pirate’s 3.3volt supply, and utilized the on-board pull-up resistors to hold the I2C bus high.

Parancs
Érték

Válassza ki a hőmérséklet-nyilvántartást
0x00

Válassza ki a konfigurációs regisztert
0x01

A TC74 kompozíció címe 0x9a, és a kijelölt 0x9b. Két, egybájtos regiszterje van. Regisztráció A 0 cím A hőmérséklet-olvasást tartja, az 1. regiszter tartja a konfigurációs beállításokat.

Konfigurációs regiszter

A konfigurációs regiszter 6 bitje 0 bekapcsoláskor, és az 1. módosítások, ha az első érvényes hőmérsékleti olvasás elérhető. A 7 bit írható, és a TC74-et egy energiatakarékos készenléti üzemmódba helyezi. reading the register includes two steps: utilize a partial compose command to choose the register, then utilize the checked out command to retrieve the value.

I2C> {0x9a 1}
210 I2C Kezdje a feltételeket
220 I2C Írás: 0x9a kapott ACK: valóban <-Write cím 220 I2C írás: 0x01 kapott ACK: Valóban <-Select Config Register 240 I2C stop állapot Először is kiválasztjuk a konfigurációs regisztert egy részleges komponens parancs segítségével. Ez nem illeszkedik egy értéket, kiválasztja a regiszteret, hogy kijelentkezzen és írjon. { produces the I2C begin condition, complied with by the TC74 compose address (0x9a) and the choose configuration register command (0x01). } Problémák Az I2C leállítási állapot és a tranzakció befejezése. Most ellenőrizhetjük a nyilvántartás tartalmát. I2c> {0x9b r}
210 I2C Kezdje a feltételeket
220 I2C Írás: 0x9b kapott ACK: valóban <-read cím 230 I2C Read: 0x40 <- Regisztráció érték (01000000) 240 I2C stop állapot I2C>

A kijelölt kiadvány (0x9b) visszaadja az egyik bájt regiszterértéket (R). The configuration register value, 0x40 or 01000000, shows that the device is out of standby (bit 7=0), and a valid temperature reading is available (bit 6=1).

A TC74 alacsony teljesítményű készenléti üzemmódban van. Engedélyezze azt, hogy az 1-es 7 -es 7 bitet a konfigurációs regiszter.

I2C> {0x9a 1 0b10000000}
210 I2C Kezdje a feltételeket
220 I2C Írás: 0x9a kapott ACK: valóban <-Write cím 220 I2C írás: 0x01 kapott ACK: Valóban <-Select Config Register 220 I2C Írás: 0x80 kapott ACK: valóban <-Value, hogy összeállítsa (01000000) 240 I2C stop állapot I2C>

A nyilvántartás egyetlen hárombájtos paranccsal íródott. Először elküldjük a Compose címet (0x9a), amelyet a regiszternek meg kell felelnie a (0x01) kiválasztásához, és végül az értéket (0x80). A konfigurációs regiszter 7 bitja írható, a 6-0 bitek értékeit figyelmen kívül hagyják.

Olvassa el újra a regisztert, hogy megerősítse, hogy a parancs működött.

I2C> {0x9a 1} {0x9b r}
210 I2C kezdőállapot <-first parancskészletek regisztrálása 220 I2C Írás: 0x9a kapott ACK: valóban <-Write cím 220 I2C írás: 0x01 kapott ACK: valóban <-config regiszter (1) 240 I2C stop állapot <-end első parancs 210 I2C Kezdje el a <-begin második parancsot 220 I2C Írás: 0x9b kapott ACK: valóban <-read cím 230 I2C Read: 0x80 <- Regisztráció érték (10000000) 240 I2C stop állapot <-end második parancs I2C>

A regiszter érték, 10000000, most azt mutatja, hogy a készülék készenléti állapotban van (bit 7 = 1). FIGYELMEZTETÉS A 6 bit most 0, nincs hőmérsékleti adatok.

Tiszta bit 7 A készenléti állapotból való kilépéshez, majd várjon a 6 bitre, hogy visszatérjen az 1-re, mielőtt elolvassa a hőmérséklet-nyilvántartást.

I2C> {0x9a 1 0b00000000}
210 I2C Kezdje a feltételeket
220 I2C Írás: 0x9a kapott ACK: valóban <-Write cím 220 I2C Írás: 0x01 kapott ACK: Igen <-Select Config Register 220 I2C írás: 0x00 kapott ACK: Igen <-Value a (00000000) összeállításához 240 I2C stop állapot I2C>

Hőmérsékleti adatok állnak rendelkezésre, ha a konfigurációs regiszter érték visszatér 0x40 (01000000).

Hőfok

A hőmérséklet-nyilvántartást két lépésben ellenőrizzük. Először is, egy részleges komponens parancs kiválasztja a hőmérséklet-regisztert (0), majd egy ellenőrzött szekvencia visszaküldi a tartalmat.

I2C> {0x9a 0} {0x9b r}
210 I2C Kezdje a feltételeket
220 I2C WRITE: 0x9A got ACK: indeed <–write address 220 I2C WRITE: 0x00 got ACK: indeed <–selecthőmérséklet-nyilvántartás 240 I2C stop állapot 210 I2C Kezdje a feltételeket 220 I2C Írás: 0x9b kapott ACK: valóban <-read cím 230 I2C Olvassa el: 0x18 <-grab egy byte 240 I2C stop állapot I2C>

A hőmérséklet a Celsius fokos értéke, a negatív számok kettős kiegészítésként vannak képviselve. A negatív hőmérsékletek 7-es bites készletet és -1-tól -65-ig (255-128), lásd a 4.4. Táblázatot az adatlap 8. oldalán. A 0x18 hexadecimális érték decimális 24-es, így a hőmérséklet-olvasás 24 ° C (75F).

Mint ez a hozzászólás? Ellenőrizze a hiányzó alkatrészeket.