Proiect - Termometrul Digital DS18B20 si Arduino...

25
1 Proiect - Termometrul Digital DS18B20 si Arduino Uno 1.Informatii despre senzor 2.Componente necesare 3.Schema circuitului 4.Concluzii Cirnici Loredana Elena RD

Transcript of Proiect - Termometrul Digital DS18B20 si Arduino...

1

Proiect - Termometrul Digital DS18B20 si Arduino Uno

1.Informatii despre senzor

2.Componente necesare

3.Schema circuitului

4.Concluzii

Cirnici Loredana Elena

RD

2

1.Informatii despre senzorul DS18B20

Termomentrul digital

www.maxim-ic.com

CARACTERISTICI Interfața unică 1-Wire® necesită numai un

Port Pin pentru comunicare

Fiecare dispozitiv are un cod serial unic de

64 de biți stocat într-un ROM la bord

Capabilitatea Multidrop simplifică aplicațiile

distribuite de sensibilizare a temperaturii

Nu necesită componente externe

Poate fi alimentat din linia de date;

Intervalul de alimentare este de 3.0 V până

la 5.5V

Măsurători: Temperaturi de la -55 ° C la +

125 ° C (-67 ° F până la + 257 ° F)

0,5 ° C Precizie de la -10 ° C la + 85 ° C

Rezoluția termometrului este selectabilă de

la 9 la 12 biți

Convertește temperatura la 12 biți cuvânt

digital în 750ms (Max)

Setări de alarmă nonvolatile definite de

utilizator (NV)

Comandă de căutare alarmă. Identifică și

adresează dispozitive ale căror temperaturi

sunt în afara limitelor programate (starea

alarmă de temperatură)

Disponibil în pachete SO-8-Pin (150 mils),

8-Pin SOP și 3 pini TO-92

Software compatibil cu DS1822

Aplicațiile includ controale termostatice,

sisteme industriale, produse de consum,

termometre sau orice sistem cu sensibilitate

termică

DESCRIERE

CONFIGURATIA PINILOR

Termometrul digital DS18B20 oferă măsurători de temperatură de la 9 biți până la 12 biți Celsius și dispune de o funcție de alarmă cu puncte de declanșare superioare și inferioare programabile, utilizator nonvolatile. DS18B20 comunică printr-o magistrală de 1 fir care, prin definiție, necesită doar o singură linie de date pentru a comunica cu un microprocesor central. Are o temperatură de funcționare cuprinsă între -55 ° C și + 125 ° C și este precisă la ± 0,5 ° C în intervalul -10 ° C până la + 85 ° C. În plus, DS18B20 poate obține energie direct de la linia de date, eliminând necesitatea unei surse externe de alimentare. Fiecare DS18B20 are un cod serial unic pe 64 de biți, care permite mai multor DS18B20s să funcționeze pe aceeași magistrală de tip 1-Wire. Astfel, este simplu să utilizați un microprocesor pentru a controla multe DS18B20 distribuite pe o suprafață mare. Aplicațiile care pot beneficia de această caracteristică includ controale de mediu pentru HVAC, sisteme de monitorizare a temperaturii în interiorul clădirilor, echipamente sau mașini, precum și sisteme de monitorizare și control al proceselor.

TO-92

(DS18B20)

(BOTTOM VIEW)

SOP (DS18B20U)

1 2 3

VDD

N.C.

N.C.

N.C.

DQ

N.C.

N.C.

GND

SO (150 mils) (DS18B20Z)

N.C.

GND

VDD

DQ

1 2 3

N.C.

N.C.

N.C.

N.C.

DALLAS 18B20

3

DA

LL

AS

18

B20

18

B20

DS18B20

4 of 22

INFORMATII DESPRE COMANDA PART INTERV TEMP PIN-PACKAGE TOP MARK

DS18B20 -55C la +125C 3 TO-92 18B20

DS18B20+ -55C la +125C 3 TO-92 18B20

DS18B20/T&R -55C la +125C 3 TO-92 (2000 Piece) 18B20

DS18B20+T&R -55C la +125C 3 TO-92 (2000 Piece) 18B20

DS18B20-SL/T&R -55C la +125C 3 TO-92 (2000 Piece)* 18B20

DS18B20-SL+T&R -55C la +125C 3 TO-92 (2000 Piece)* 18B20

DS18B20U -55C la +125C 8 SOP 18B20

DS18B20U+ -55C la +125C 8 SOP 18B20

DS18B20U/T&R -55C la +125C 8 SOP (3000 Piece) 18B20

DS18B20U+T&R -55C la +125C 8 SOP (3000 Piece) 18B20

DS18B20Z -55C la +125C 8 SO DS18B20

DS18B20Z+ -55C la +125C 8 SO DS18B20

DS18B20Z/T&R -55C la +125C 8 SO (2500 Piece) DS18B20

DS18B20Z+T&R -55C la +125C 8 SO (2500 Piece) DS18B20

DESCRIEREA PINILOR PIN

NUME FUNCTIE SO SOP TO-92

1, 2, 6,

7, 8

2, 3, 5,

6, 7 — N.C. Fara conexiune

3 8 3 VDD Optional VDD.VDD trebuie să fie legat la masă pentru

a funcționa în modul de alimentare cu paraziți.

4

1

2

DQ

Intrare / ieșire de date. Open-drain 1-Wire interfață PIN.

Oferă și alimentarea dispozitivului când este utilizat în

modul de alimentare cu paraziți (consultați secțiunea

Powering the DS18B20.)

5 4 1 GND Masă.

PREZENTARE GENERALĂ Figura 1 prezintă o diagramă bloc a DS18B20, iar descrierea pinilor este prezentata în tabelul cu descrierea

pinului. ROM-ul pe 64 de biți stochează codul serial unic al dispozitivului. Memoria scratchpad conține

registrul de temperatură de 2 octeți care stochează ieșirea digitală de la senzorul de temperatură. În plus,

scratchpad-ul oferă acces la registrele de declanșare de alarmă superioară și inferioară de 1 octet (TH și TL)

și registrul de configurație de 1 byte. Registrul de configurare permite utilizatorului să stabilească rezoluția

conversiei de la temperatură la digital la 9, 10, 11 sau 12 biți. Registrele TH, TL și de configurare sunt non-

volatile (EEPROM), astfel încât acestea vor păstra datele atunci când dispozitivul este oprit.

DS18B20 utilizează protocolul exclusiv al magistralei 1-wire de la Maxim, care implementează

comunicația cu magistrală utilizând un semnal de comandă. Linia de control necesită o rezistență de tragere

slabă, deoarece toate dispozitivele sunt conectate la magistrala printr-un port de 3 stații sau de scurgere

deschisă (pinul DQ în cazul DS18B20). În acest sistem de magistrală, microprocesorul (dispozitivul

principal) identifică și adresează dispozitivele din magistrală utilizând codul unic pe 64 de biți al fiecărui

dispozitiv.

Protocolul cu bus 1-wire, care include explicații detaliate ale comenzilor și "sloturilor de timp", este acoperit

în secțiunea Sistemul 1-Wire Bus System.

DS18B20

5 of 22

O altă caracteristică a dispozitivului DS18B20 este capacitatea de a funcționa fără o sursă externă de

alimentare. Puterea este furnizată prin intermediul rezistorului de tracțiune 1-Wire prin pinul DQ atunci

când busul este ridicat. De asemenea, semnalul de magistrală înaltă acționează un condensator intern (CPP),

care apoi alimentează dispozitivul atunci când autobuzul este scăzut. Această metodă de extragere a

energiei de la magistrala 1-Wire este denumită "putere parazitară". Ca alternativă, DS18B20 poate fi de

asemenea alimentat de o sursă externă pe VDD.

Figura 1. DS18B20 Diagrama Bloc

MASURAREA TEMPERATURII Funcționalitatea principală a senzorului DS18B20 este senzorul de temperatură digital-direct. Rezoluția

senzorului de temperatură este configurabilă de utilizator la 9, 10, 11 sau 12 biți, corespunzătoare creșterilor

de 0.5 ° C, 0.25 ° C, 0.125 ° C și, respectiv, 0.0625 ° C. Rezoluția prestabilită la pornire este de 12 biți.

Modulul DS18B20 se activează într-o stare de repaus redusă. Pentru a iniția o măsurare a temperaturii și o

conversie de la A la D, masterful trebuie să emită o comandă Convert T [44h]. În urma conversiei, datele

termice rezultate sunt stocate în registrul de temperaturi de 2 octeți din memoria scratchpad și DS18B20

revine la starea de repaus. Dacă DS18B20 este alimentat de o sursă externă, masterul poate emite "sloturi

de timp pentru citire" (vezi secțiunea Sistemul 1-Wire Bus) după comanda Convert T și DS18B20 va

răspunde prin transmisia 0 în timp ce conversia temperaturii este în desfășurare și 1 când se face conversia.

În cazul în care dispozitivul DS18B20 este alimentat cu energie parazitară, această tehnică de notificare nu

poate fi utilizată deoarece autobuzul trebuie tras în sus printr-o tragere puternică în timpul întregii conversii

de temperatură. Cerințele privind magistralele pentru alimentarea cu paraziți sunt explicate în detaliu în

secțiunea Powering the DS18B20.

Datele privind temperatura de ieșire DS18B20 sunt calibrate în grade Celsius; pentru aplicațiile Fahrenheit,

trebuie utilizat un tabel de căutare sau o rutină de conversie. Datele de temperatură sunt stocate ca un număr

de completare a semnalului pe 16 biți extins în registrul de temperatură (a se vedea figura 2). Semnalele

biți (S) indică dacă temperatura este pozitivă sau negativă: pentru numere pozitive S = 0 și pentru numere

negative S = 1. Dacă DS18B20 este configurat pentru rezoluție pe 12 biți, toți biții din registrul de

temperatură vor conține date valide . Pentru rezoluția pe 11 biți, bitul 0 este nedefinit. Pentru rezoluția pe

10 biți, biții 1 și 0 sunt nedefiniți, iar pentru biți de rezoluție pe 9 biți 2, 1 și 0 sunt nedefiniți. Tabelul 1

prezintă exemple de date digitale de ieșire și citirea corespunzătoare a temperaturii pentru conversiile de

rezoluție pe 12 biți.

POWER- SUPPLY SENSE

VDD

CPP GND

INTERNAL VDD

SENZOR TEMPERATURA

DQ

DS18B20 MEMORY CONTROL LOGIC

PARASITE POWER CIRCUIT

4.7k

VPU

8-BIT CRC GENERATOR

REGISTRU CONFIGURARE (EEPROM)

ALARM LOW TRIGGER (TL)

REGISTRU (EEPROM)

ALARM HIGH TRIGGER (TH)

REGISTRU (EEPROM)

SCRATCHPAD

64-BIT ROM AND

1-Wire PORT

DS18B20

6 of 22

S = SIGN

BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0

Figura 2. Temperatura - Registri

BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0

LS BYTE 23 22 21 20 2-1 2-2 2-3 2-4

BIT 15 BIT 14 BIT 13 BIT 12 BIT 11 BIT 10 BIT 9 BIT 8

MS BYTE S S S S S 26 25 24

Tabel 1. Temperatura/Date

TEMPERATURA (C) DIGITAL OUTPUT

(BINAR)

DIGITAL OUTPUT

(HEX)

+125 0000 0111 1101 0000 07D0h

+85* 0000 0101 0101 0000 0550h

+25.0625 0000 0001 1001 0001 0191h

+10.125 0000 0000 1010 0010 00A2h

+0.5 0000 0000 0000 1000 0008h

0 0000 0000 0000 0000 0000h

-0.5 1111 1111 1111 1000 FFF8h

-10.125 1111 1111 0101 1110 FF5Eh

-25.0625 1111 1110 0110 1111 FE6Fh

-55 1111 1100 1001 0000 FC90h

SEMNALIZARE ALARMĂ După ce DS18B20 efectuează o conversie a temperaturii, valoarea temperaturii este comparată cu valorile

de declanșare a alarmelor complementare definite de utilizator, stocate în registrele TH și TL de 1 octet (a

se vedea figura 3). Bitul semnelor (S) indică dacă valoarea este pozitivă sau negativă: pentru numerele

pozitive S = 0 și pentru numerele negative S = 1. Regiștrii TH și TL sunt non-volatili (EEPROM), astfel

încât vor păstra datele atunci când dispozitivul este oprit . TH și TL pot fi accesate prin octeți 2 și 3 ai

scratchpad-ului, așa cum se explică în secțiunea Memorie.

Figura 3. TH si TL - Registri

S 26 25 25 25 22 21 20

Doar biții 11 până la 4 ai registrului de temperatură sunt utilizați în compararea TH și TL deoarece TH și

TL sunt registre pe 8 biți. Dacă temperatura măsurată este mai mică sau egală cu TL sau mai mare sau egală

cu TH, există o condiție de alarmă și un semn de alarmă este setat în interiorul DS18B20. Acest steguleț

este actualizat după fiecare măsurare a temperaturii; prin urmare, în cazul în care condiția de alarmă dispare,

stegulețul va fi oprit după următoarea transformare de temperatură.

DS18B20

7 of 22

Dispozitivul master poate verifica starea alarmelor de alarmă pentru toate dispozitivele DS18B20 din

magistrală prin emiterea unei comenzi de căutare a alarmelor [ECh]. Orice DS18B20 cu un semn de alarmă

setat va răspunde la comandă, astfel încât comandantul poate determina exact care DS18B20 au experimentat

o condiție de alarmă. Dacă există o condiție de alarmă și setările TH sau TL s-au schimbat, trebuie efectuată

o altă conversie a temperaturii pentru a valida starea de alarmă.

Alimentarea DS18B20 Dispozitivul DS18B20 poate fi alimentat de o sursă externă de pe pinul VDD sau poate funcționa în modul

"parazit", ceea ce permite ca DS18B20 să funcționeze fără o sursă externă locală. Puterea parazitului este

foarte utilă pentru aplicațiile care necesită detectarea temperaturii la distanță sau care sunt foarte

restricționate. Figura 1 prezintă circuitele de control al puterii parazite ale dispozitivului DS18B20, care

"fură" energia de la magistrala 1-Wire prin pinul DQ atunci când busul este ridicat. Încărcarea alimentează

dispozitivul DS18B20 în timp ce busul este ridicat, iar o parte din încărcare este stocată pe condensatorul

de putere parazit (CPP) pentru a furniza energie atunci când magistrala este scăzută. Când modulul

DS18B20 este utilizat în modul de alimentare cu paraziți, pinul VDD trebuie conectat la masă.

În modul de alimentare cu paraziți, magistrala 1-Wire și CPP pot furniza curent suficient pentru DS18B20

pentru majoritatea operațiunilor, atâta timp cât sunt îndeplinite cerințele de sincronizare și de tensiune

specificate (vezi Caracteristicile electrice DC și Caracteristicile electrice de CA). Cu toate acestea, atunci

când DS18B20 efectuează conversii de temperatură sau copierea datelor din memoria scratchpad în

EEPROM, curentul de funcționare poate fi la fel de mare ca 1,5mA. Acest curent poate provoca o scădere

de tensiune inacceptabilă prin rezistența de tragere slabă cu 1 fir și este mai curent decât poate fi furnizat

de CPP. Pentru a vă asigura că circuitul DS18B20 are un curent de alimentare suficient, este necesar să

asigurați o tragere puternică pe magistrala 1-Wire, ori de câte ori au loc conversii de temperatură sau dacă

datele sunt copiate de la scratchpad la EEPROM. Acest lucru poate fi realizat prin utilizarea unui MOSFET

pentru a trage magistrală direct pe șină, așa cum este arătat în figura 4. Busul 1-Wire trebuie să treacă la o

tragere puternică în limita a 10 μs (max) după un Convert T [44h] sau Copiere Se emite comanda Scratchpad

[48h], iar magistrala trebuie să fie ținută ridicată de pullup pe durata conversiei (tCONV) sau transferul de

date (tWR = 10ms). Nici o altă activitate nu poate avea loc pe magistrala 1-Wire în timp ce pull-up este

activat.

De asemenea, DS18B20 poate fi alimentat prin metoda convențională de conectare a unei surse de

alimentare externe la pinul VDD, așa cum se arată în figura 5. Avantajul acestei metode este că nu este

necesară extragerea MOSFET și magistrala 1-Wire este liberă să efectuează un alt trafic în timpul perioadei

de conversie a temperaturii.

Utilizarea puterii de parazit nu este recomandată pentru temperaturi de peste + 100 ° C, deoarece este posibil

ca DS18B20 să nu poată susține comunicațiile datorită curenților de scurgere mai mari care pot exista la

aceste temperaturi. Pentru aplicații în care astfel de temperaturi sunt probabile, este recomandat ca

dispozitivul DS18B20 să fie alimentat de la o sursă de alimentare externă.

În unele situații, comandantul magistralei poate să nu știe dacă dispozitivele DS18B20 din autobuz sunt

alimentate de paraziți sau alimentate de surse externe. Comandantul are nevoie de această informație pentru

a determina dacă tragerea puternică a autobuzului ar trebui utilizată în timpul conversiilor de temperatură.

Pentru a obține aceste informații, comandantul poate emite o comandă Skip ROM [CCh], urmată de o

comandă de citire a alimentării [B4h], urmată de un "slot de citire". În timpul intervalului de citire,

DS18B20s alimentate cu paraziți vor trage autobuzul jos, iar dispozitivele DS18B20 cu alimentare externă

vor permite autobuzului să rămână înalt. Dacă magistrala este trasă scăzută, comandantul știe că trebuie să

furnizeze tragerea puternică pe magistrala 1-Wire în timpul conversiilor de temperatură.

DS18B20

8 of 22

Figura 4. Alimentarea DS18B20 pe durata conversiei temperaturii

Figure 5. Alimentarea DS18B20 cu o sursa externa

64-BIT LASERED ROM COD Fiecare DS18B20 conține un cod unic de 64 de biți (a se vedea figura 6) stocat în ROM. Cele mai puțin

semnificative 8 biți din codul ROM conțin codul familiei 1-Wire a lui DS18B20: 28h. Următorii 48 de biți

conțin un număr de serie unic. Cele mai semnificative 8 biți conțin un byte de verificare a redundanței

ciclice (CRC), care se calculează de la primele 56 de biți ale codului ROM. O explicație detaliată a biților

CRC este furnizată în secțiunea CRC Generation. Codul ROM pe 64 de biți și logica de control a funcțiilor

ROM asociate permit ca dispozitivul DS18B20 să funcționeze ca un dispozitiv cu 1 fir utilizând protocolul

detaliat în secțiunea Sistemul 1-Wire Bus System.

Figura 6. 64-Bit Lasered ROM Cod

8-BIT CRC 48-BIT SERIAL NUMBER 8-BIT FAMILY CODE (28h)

MSB LSB MSB LSB MSB LSB

1-WIRE DEVICES

1-Wire BUS

4.7k

VP

P

DS18B20

GND DQ V

VP

1-WIRE DEVICES

1-Wire BUS

4.7k

GND DQ VDD

VP

P

VDD

EXTERNALSUPPLY) DS18B20

DS18B20

9 of 22

SCRATCHPAD

(POWER-UP STATE)

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

Byte 8

EEPROM

MEMORIA

Memoria DS18B20 este organizată așa cum este arătat în figura 7. Memoria constă dintr-un dispozitiv de

ștergere SRAM cu stocare EEPROM nonvolatila pentru registrele de declanșare de alarmă ridicată și joasă

(TH și TL) și registrul de configurare. Rețineți că dacă funcția de alarmă DS18B20 nu este utilizată,

registrele TH și TL pot servi ca memorie generală. Toate comenzile de memorie sunt descrise în detaliu în

secțiunea Comenzile funcțiilor DS18B20.

Byte 0 și octetul 1 al scratchpad-ului conțin LSB și MSB ale registrului de temperatură, respectiv. Acești

octeți sunt numai pentru citire. Batele 2 și 3 oferă acces la registrele TH și TL. Baza 4 conține datele din

registrul de configurare, care este explicat în detaliu în secțiunea Înregistrări de configurare. Batele 5, 6 și

7 sunt rezervate pentru utilizare internă de către dispozitiv și nu pot fi suprascrise.

Baza 8 a scratchpad-ului este numai pentru citire și conține codul CRC pentru octeții de la 0 la 7 ai

scratchpad-ului. DS18B20 generează acest CRC utilizând metoda descrisă în secțiunea CRC Generation.

Datele sunt scrise în octeții 2, 3 și 4 ale scratchpad-ului folosind comanda Write Scratchpad [4Eh]; datele

trebuie transmise la DS18B20 începând cu cel mai puțin semnificativ bit al octetului 2. Pentru a verifica

integritatea datelor, cititorul poate fi citit (folosind comanda Read Scratchpad [BEh]) după scrierea datelor.

La citirea scratchpad-ului, datele sunt transferate pe magistrala 1-Wire începând cu cel mai puțin

semnificativ bit de octet 0. Pentru a transfera TH, TL și datele de configurare de la scratchpad la EEPROM,

masterul trebuie să emită comanda Scratchpad Copiere [48h] .

Datele din registrele EEPROM sunt reținute când aparatul este oprit; la pornire, datele EEPROM sunt

reîncărcate în locațiile corespunzătoare pentru zgârieturi. De asemenea, datele pot fi reîncărcate din

EEPROM la scratchpad în orice moment utilizând comanda Recall E2 [B8h]. Comandantul poate emite

sloturi de citire după comanda Recall E2, iar DS18B20 va indica starea apelului prin transmiterea lui 0 în

timp ce apelul este în curs de desfășurare și 1 când se face recapitulări.

Figura 7. DS18B20 Memoria

Temperature LSB (50h) (85°C)

Temperature MSB (05h)

TH Register or User Byte 1*

TL Register or User Byte 2*

Configuration Register*

Reserved (FFh)

Reserved

Reserved (10h)

CRC*

TH Register or User Byte 1

TL Register or User Byte 2

Configuration Register

DS18B20

10 of

22

BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0

CONFIGURATIA REGISTRILOR Byte-ul 4 al memoriei scratchpad conține regiștrii de configurare, care este organizat așa cum este ilustrat

în Figura 8. Utilizatorul poate seta rezoluția de conversie a DS18B20 utilizând biții R0 și R1 din acest

registru, așa cum se arată în Tabelul 2. Valoarea implicită de pornire din acești biți este R0 = 1 și R1 = 1

(rezoluție pe 12 biți). Rețineți că există un compromis direct între rezoluție și timpul de conversie. Bitul 7

și biții 0 până la 4 din registrul de configurare sunt rezervate pentru utilizare internă de către dispozitiv și

nu pot fi suprascrise.

Figura 8. Configuratia Registrilor

0 R1 R0 1 1 1 1 1

Tabel 2. Configuratia rezolutiei termometrului

R1 R0 RESOLUTION

(BITS)

MAX CONVERSION

TIME

0 0 9 93.75ms (tCONV/8)

0 1 10 187.5ms (tCONV/4)

1 0 11 375ms (tCONV/2)

1 1 12 750ms (tCONV)

GENERAREA CRC CRC-urile sunt furnizate ca parte a codului ROM pe 64 biți al DS18B20 și în cel de-al 9-lea byte al

memoriei scratchpad. Codul CRC CRC se calculează de la primele 56 de biți din codul ROM și este conținut

în cel mai semnificativ octet al ROM-ului. CRC scratchpad se calculează pornind de la datele stocate în

scratchpad și, prin urmare, se schimbă atunci când datele din scratchpad se schimbă. CRC furnizează

magistrului magistralei o metodă de validare a datelor atunci când datele sunt citite de la DS18B20. Pentru

a verifica dacă datele au fost citite corect, comandantul magistralei trebuie să recalculeze CRC-ul din datele

recepționate și apoi să compare această valoare fie cu codul CRC CRC (pentru ROM-ul citit), fie cu CRC-

ul pentru scratchpad (pentru citirea scratchpad-ului). Dacă CRC calculat se potrivește cu CRC citit, datele

au fost primite fără erori. Comparația valorilor CRC și decizia de a continua cu o operație sunt determinate

în întregime de magistrala magistralei. În interiorul DS18B20 nu există circuite care să împiedice

continuarea unei secvențe de comandă dacă DS18B20 CRC (ROM sau scratchpad) nu se potrivește cu

valoarea generată de magistrala magistralei.Funcția polinomială echivalentă a CRC (ROM sau scratchpad)

este:CRC = X8 + X5 + X4 + 1

Master-ul magistralei poate recalcula CRC-ul și îl poate compara cu valorile CRC de la DS18B20 utilizând

generatorul polinomial prezentat în Figura 9. Acest circuit constă dintr-un registru de deplasare și porți

XOR, iar biții registru de deplasare sunt inițializați la 0. Pornire cu bitul cel mai puțin semnificativ al codului

ROM sau cu bitul cel mai puțin semnificativ de octet 0 din scratchpad, un biți la un moment dat ar trebui

să se deplaseze în registrul de deplasare. După deplasarea în biți 56 din ROM sau cel mai semnificativ bit

al octetului 7 de la scratchpad, generatorul polinomial va conține CRC recalculat. Apoi, codul ROM pe 8

biți sau CRC pentru scratchpad de la DS18B20 trebuie să fie transferat în circuit. În acest moment, dacă

CRC re-calculat a fost corect, registrul de deplasare va conține toate cifrele. Informații suplimentare despre

verificarea de redundanță ciclică Maxim 1-Wire

DS18B20

11 of

22

este disponibil în Nota de aplicație 27: Înțelegerea și utilizarea controalelor de redundanță ciclică cu produse

Maxim iButton.

Figura 9. Generator CRC

SISTEM 1-WIRE BUS Sistemul 1-Wire bus utilizează un singur bus master pentru a controla unul sau mai multe dispozitive slave.

DS18B20 este întotdeauna un slave. Atunci când există un singur slave în magistrală, sistemul este denumit

sistem "single-drop"; sistemul este "multidrop" în cazul în care există mai multi slave pe bus.

Toate datele și comenzile sunt transmise mai întâi de biți semnificativ mai mare pe magistrala 1-Wire.

Următoarea discuție a sistemului de bus cu 1 fir este împărțită în trei subiecte: configurația hardware,

secvența tranzacțiilor și semnalarea 1-wire (tipuri de semnale și sincronizare).

CONFIGURATIE HARDWARE Busul 1-Wire are, prin definiție, o singură linie de date. Fiecare dispozitiv (master sau slave) interfațează

cu linia de date printr-un port de debit deschis sau de 3 stări. Acest lucru permite fiecărui dispozitiv să

"elibereze" linia de date atunci când dispozitivul nu transmite date, astfel încât magistrala să fie disponibilă

pentru utilizarea de către un alt dispozitiv. Portul 1-Wire al DS18B20 (pinul DQ) este golit cu un circuit

intern echivalent cu cel prezentat în Figura 10.

Busul 1-Wire necesită o rezistență de tracțiune externă de aproximativ 5k; astfel, starea de mers în gol

pentru magistrala 1-Wire este ridicată. Dacă din orice motiv o tranzacție trebuie suspendată, magistrala

TREBUIE să fie lăsată în starea inactivă dacă tranzacția trebuie reluată. Timpul de recuperare infinit poate

avea loc între biți, atât timp cât magistrala 1-Wire este în starea inactivă (înaltă) în timpul perioadei de

recuperare. Dacă busul este menținut scăzut pentru mai mult de 480 ms, toate componentele din magistrală

vor fi resetate.

Figura 10. Configuratie Hardware

(LSB) (MSB)

XOR XOR XOR

INPUT

TX

MOSFET

Tx

TY

Rx

1-Wire BUS R

x

DQ PI

4.7k

DS18B20 1-Wire PORT

VP

Rx

Tx

DS18B20

10 of 22

Secventa de tranzactii Secvența de tranzacții pentru accesarea DS18B20 este:

Pasul 1. Inițializare

Pasul 2. Comanda ROM (urmată de orice schimb de date necesar)

Pasul 3. Comanda funcției DS18B20 (urmată de orice schimb de date necesar). Este foarte important să urmați această secvență de fiecare dată când este accesat DS18B20, deoarece DS18B20 nu va

răspunde dacă lipsesc sau nu sunt executate pași din secvență. Excepții la această regulă sunt comenzile Search ROM

[F0h] și Cautarea alarmei [ECh]. După emiterea uneia dintre aceste comenzi ROM, comandantul trebuie să revină la

Pasul 1 în ordine.

INITIALIZAREA Toate tranzacțiile de pe magistrala 1-Wire încep cu o secvență de inițializare. Secvența de inițializare constă

dintr-un impuls de resetare transmis de masterul de magistrală, urmat de impulsurile prezenței transmise de

către sclavul (s). Pulsul de prezență permite comandantului de bord să știe că dispozitivele slave (cum ar fi

DS18B20) se află pe magistrală și sunt gata de funcționare. Timpul pentru resetarea și impulsurile de

prezență este detaliat în secțiunea 1-Wire Signaling.

COMANDA ROM După ce comandantul magistralei a detectat un impuls de prezență, poate emite o comandă ROM. Aceste

comenzi funcționează pe codurile unice pe 64 de biți ale fiecărui dispozitiv slave și permit comandantului

să elaboreze un anumit dispozitiv dacă multe dintre ele există pe magistrala 1-Wire. Aceste comenzi permit,

de asemenea, comandantului să determine câte tipuri de dispozitive sunt prezente pe magistrală sau dacă

un dispozitiv a suferit o stare de alarmă. Există cinci comenzi ROM și fiecare comandă are lungimea de 8

biți. Dispozitivul master trebuie să emită o comandă ROM corespunzătoare înainte de a emite o comandă

de funcție DS18B20. O schemă de funcționare a comenzilor ROM este prezentată în Figura 11.

CAUTARE ROM [F0h] Când un sistem este inițial alimentat, comandantul trebuie să identifice codurile ROM ale tuturor

dispozitivelor slave de pe magistrală, ceea ce permite comandantului să determine numărul de sclavi și

tipurile de dispozitive. Comandantul învață codurile ROM printr-un proces de eliminare care necesită ca

masterul să efectueze un ciclu Search ROM (adică comanda Search ROM urmată de schimbul de date) de

câte ori este necesar pentru a identifica toate dispozitivele slave. Dacă în autobuz există doar un singur

slave, se poate utiliza în locul procesului Search ROM cea mai simplă comandă Read ROM (a se vedea

mai jos). Pentru o explicație detaliată a procedurii Search ROM, consultați Cartea de Standarde iButton®

la www.maxim-ic.com/ibuttonbook. După fiecare ciclu Search ROM, magistrala magistralei trebuie să

revină la Pasul 1 (Initializare) în secvența de tranzacții.

CITIRE ROM [33h] Această comandă poate fi utilizată numai atunci când există un slave pe magistrală. Permite busului master

să citească codul ROM pe 64 de biți al slave-ului, fără a utiliza procedura Search ROM. Dacă această

comandă este utilizată atunci când există mai mult de un slave prezent pe magistrală, va apărea o coliziune

de date atunci când toți slaveii încearcă să răspundă în același timp.

MATCH ROM [55h] Comanda ROM de potrivire, urmată de o secvență de coduri pe 64 de biți, permite masterului de magistrală

să adreseze un anumit dispozitiv slave pe o magistrală multidrop sau una singură. Numai slave-ul care se

potrivește exact secvenței codului ROM pe 64 de biți va răspunde la comanda funcției emisă de master; toți

ceilalți slave din bus vor aștepta un impuls de resetare.

DS18B20

11 of 22

SKIP ROM [CCh] Master-ul poate folosi această comandă pentru a aborda simultan toate dispozitivele din magistrală fără a

trimite informații despre codul ROM. De exemplu, master-ul poate face toate DS18B20s pe magistrală să

efectueze simultan conversii de temperatură prin emiterea unei comenzi Skip ROM urmată de o comandă

Convert T [44h].

Rețineți că comanda Read Scratchpad [BEh] poate urma comanda Skip ROM numai dacă există un singur

dispozitiv slave pe magistrală. În acest caz, timpul este salvat, permițând masterului să citească de la slave

fără a trimite codul ROM pe 64 de biți al dispozitivului. O comandă Skip ROM urmată de o comandă Read

Scratchpad va cauza o coliziune de date pe magistrală dacă există mai mult de un slave, deoarece mai multe

dispozitive vor încerca să transmită date simultan.

ALARM SEARCH [ECh] Funcționarea acestei comenzi este identică cu funcționarea comenzii Search ROM, cu excepția faptului că

doar slave cu un semn de alarmă setat vor răspunde. Această comandă permite dispozitivului principal să

determine dacă vreun echipament DS18B20 a experimentat o stare de alarmă în timpul celei mai recente

conversii de temperatură. După fiecare ciclu de căutare a alarmei (adică, comanda Căutare alarme urmată

de schimbul de date), magistrala magistralei trebuie să revină la Pasul 1 (Initializare) din secvența de

tranzacții. Vedeți secțiunea Semnalizare funcționare-alarmă pentru o explicație a funcționării semnalizării

alarmei.

DS18B20 Comanda functiei După ce master-ul magistralei a folosit o comandă ROM pentru a adresa DS18B20 cu care dorește să

comunice, comandantul poate emite una dintre comenzile funcției DS18B20. Aceste comenzi permit ca

masterul să scrie și să citească din memoria scratchpad-ului DS18B20, să inițieze conversii de temperatură

și să determine modul de alimentare cu energie electrică. Comenzile funcției DS18B20, care sunt descrise

mai jos, sunt rezumate în Tabelul 3 și ilustrate de schema de evoluție din Figura 12.

CONVERSIA T [44h] Această comandă inițiază o singură conversie a temperaturii. În urma conversiei, datele termice rezultate

sunt stocate în registrul de temperaturi de 2 octeți din memoria scratchpad, iar DS18B20 revine la starea de

mers în gol la putere redusă. Dacă dispozitivul este utilizat în modul de alimentare cu paraziți, în limita a

10 μs (max) după ce această comandă este emisă, comandantul trebuie să permită o tragere puternică pe

magistrala 1-Wire pe durata conversiei (tCONV) secțiunea DS18B20. Dacă dispozitivul DS18B20 este

alimentat de o sursă externă, masterul poate emite sloturi de timp pentru citire după comanda Convert T și

DS18B20 va răspunde prin transmiterea unui număr 0 în timp ce conversia temperaturii este în desfășurare

și a 1 când conversia este terminată. În modul de alimentare cu paraziți, această tehnică de notificare nu

poate fi utilizată, deoarece autobuzul este tras în sus de tragerea puternică în timpul conversiei.

SCRIERE SCRATCHPAD [4Eh] Această comandă permite master-ului să scrie 3 octeți de date pe scratchpad-ul DS18B20. Primul octet de

date este scris în registrul TH (octetul 2 al scratchpad-ului), cel de-al doilea octet este înscris în registrul

TL (octetul 3), iar cel de-al treilea octet este înscris în registrul de configurație (octetul 4). Datele trebuie

transmise mai întâi bitului cel mai puțin semnificativ. Toti cei trei octeți TREBUIE să fie scrisi înainte ca

masterul să emită o resetare sau datele să fie corupti.

CITIRE SCRATCHPAD [BEh] Această comandă permite comandantului să citească conținutul scratchpad-ului. Transferul de date începe

cu bitul cel mai puțin semnificativ de byte 0 și continuă prin scratchpad până când este citit cel de-al 9-lea

byte (byte 8 - CRC). Comandantul poate emite o resetare pentru a termina citirea în orice moment, dacă

este necesară doar o parte din datele despre scratchpad.

DS18B20

12 of 22

COPIAZA SCRATCHPAD [48h] Această comandă copiază conținutul registrelor TH, TL și de configurare a scratchpad-ului (octeți 2, 3 și

4) în EEPROM. Dacă dispozitivul este utilizat în modul de alimentare cu paraziți, în limita a 10 μs (max)

după emiterea acestei comenzi, master-ul trebuie să permită o tragere puternică pe magistrala 1-Wire timp

de cel puțin 10 ms, așa cum este descris în secțiunea Powering the DS18B20.

REAPELARE E2 [B8h] Această comandă reamintește valorile de declanșare a alarmei (TH și TL) și datele de configurare din

EEPROM și plasează datele în octeți 2, 3 și, respectiv, 4 în memoria scratchpad. Dispozitivul master poate

emite sloturi de timp pentru citire în urma comenzii Recall E2, iar DS18B20 va indica starea apelului prin

transmisia 0 în timp ce recuperarea este în curs de desfășurare și 1 când se termină rechemarea. Operația

de rechemare se efectuează automat la pornire, astfel încât datele valide să fie disponibile în scratchpad de

îndată ce aparatul este alimentat cu energie electrică.

CITIRE SURSA ALIMENTARE[B4h] Dispozitivul master emite această comandă urmat de un slot de citire pentru a determina dacă orice

dispozitive DS18B20 din magistrală folosesc energie parazitară. În timpul intervalului de citire, DS18B20s

alimentate cu paraziți vor trage busul jos, iar dispozitivele DS18B20 cu alimentare externă vor permite

busului să rămână înalt. Vedeți secțiunea Powering the DS18B20 pentru informații despre utilizare pentru

această comandă.

Tabel 3. DS18B20 Functii

Comanda

Descriere

Protocol

Activitate 1-Wire BUS

Notite

Comenzi Conversie Temperatura

Converteste T Initiates temperature

conversion.

44h

DS18B20 transmits

conversion status to master

(not applicable for parasite- powered DS18B20s).

1

Comenzi Memorie

Read Scratchpad

Reads the entire scratchpad including the CRC byte.

BEh DS18B20 transmits up to 9 data bytes to master.

2

Write

Scratchpad

Writes data into scratchpad

bytes 2, 3, and 4 (TH, TL,

and configuration

registers).

4Eh

Master transmits 3 data bytes

to DS18B20.

3

Copy

Scratchpad

Copies TH, TL, and

configuration register data

from the scratchpad to

EEPROM.

48h

None 1

Recall E2 Recalls TH, TL, and

configuration register data

from EEPROM to the scratchpad.

B8h

DS18B20 transmits recall

status to master.

Read Power

Supply

Signals DS18B20 power

supply mode to the master. B4h DS18B20 transmits supply

status to master.

DS18B20

13 of 22

Figura 11. ROM Comenzi Flowchart

Initialization Sequence

DS18B20 TX PRESENCE

PULSE

33h N

READ ROM COMMAND

55h

MATCH ROM N

COMMAND

F0h N SEARCH ROM

COMMAND

ECh N ALARM SEARCH

COMMAND

CCh

SKIP ROM N

COMMAND

Y Y Y Y Y

DS18B20 TX CRC BYTE

N BIT 0

MATCH?

Y

N BIT 0

MATCH?

Y

DEVICE(S) N WITH ALARM FLAG SET?

Y

N BIT 1

MATCH?

Y

N

BIT 63 MATCH?

N BIT 1

MATCH?

Y

DS18B20 TX BIT 63

DS18B20 TX BIT 63

MASTER TX BIT 63

N

BIT 63 MATCH?

Y Y

DS18B20 TX FAMILY CODE

1 BYTE

DS18B20 TX BIT 0

DS18B20 TX BIT 0

MASTER TX BIT 0

DS18B20 TX BIT 0

DS18B20 TX BIT 0

MASTER TX BIT 0

MASTER TX

BIT 63

MASTER TX ROM

COMMAND

MASTER TX

BIT 0

MASTER TX FUNCTION COMMAND

(FIGURE 12)

MASTER TX BIT 1

DS18B20 TX SERIAL NUMBER

6 BYTES

MASTER TX

RESET PULSE

DS18B20 TX BIT 1

DS18B20 TX BIT 1

MASTER TX BIT 1

DS18B20

14 of 22

Figura 12. DS18B20 Functii Flowchart

44h

CONVERT N

TEMPERATURE ?

48h

COPY N

SCRATCHPAD ?

Y Y

N PARASITE Y POWER

?

N PARASITE Y

POWER ?

DEVICE

CONVERTING N TEMPERATURE

?

COPY IN N PROGRESS

?

Y

Y

MASTER RX “0s”

MASTER RX “0s”

B4h

N READ POWER SUPPLY

?

Y

N B8h

RECALL E2 ?

Y

BEh

N READ SCRATCHPAD

?

Y

4Eh

N WRITE SCRATCHPAD

?

Y

N PARASITE

Y

POWERED

?

DEVICE N BUSY RECALLING

DATA ?

Y

MASTER Y

TX RESET ?

N

N HAVE 8 BYTES

BEEN READ ?

Y

DS18B20 BEGINS

CONVERSION MASTER ENABLES

STRONG PULLUP ON DQ

MASTER ENABLES

STRONG PULL-UP ON DQ

DATA COPIED FROM SCRATCHPAD TO EEPROM

MASTER TX TL BYTE

TO SCRATCHPAD

MASTER RX SCRATCHPAD

CRC BYTE

MASTER TX TH BYTE

TO SCRATCHPAD

MASTER TX CONFIG. BYTE

TO SCRATCHPAD

MASTER DISABLES STRONG PULLUP

MASTER

RX “1s”

MASTER

RX “0s”

MASTER

RX “1s”

MASTER BEGINS DATA

RECALL FROM E2 PROM

MASTER RX DATA BYTE

FROM SCRATCHPAD

MASTER

RX “1s”

MASTER

RX “1s”

MASTER DISABLES

STRONG PULLUP

DS18B20 CONVERTS TEMPERATURE

MASTER TX FUNCTION

COMMAND

MASTER

RX “0s”

DS18B20

15 of 22

1-WIRE SEMNAL DS18B20 utilizează un protocol strict de comunicație cu 1 fir pentru a asigura integritatea datelor. Mai

multe tipuri de semnale sunt definite de acest protocol: impulsul de resetare, impulsul de prezență, scrierea

0, scrierea 1, citirea 0 și citirea 1. Autorul magistralei inițiază toate aceste semnale, cu excepția impulsului

de prezență.

INITIALIZATION PROCEDURE—RESET AND PRESENCE PULSES Toată comunicarea cu DS18B20 începe cu o secvență de inițializare care constă dintr-un impuls de resetare

de la master, urmat de un impuls de prezență de la DS18B20. Acest lucru este ilustrat în figura 13. Atunci

când DS18B20 trimite impulsul de prezență ca răspuns la resetare, acesta indică master-ului că este pe

magistrală și este pregătit să funcționeze.

În timpul secvenței de inițializare, magistrala transmite (TX) impulsul de reset prin tragerea busului 1-Wire

la minimum 480 ms.Busul eliberează magistrala și intră în modul de recepție (RX). Când magistrala este

eliberată, rezistența de tracțiune de 5k pull trage busul cu 1 fir înălțat. Când detectorul DS18B20 detectează

această margine în creștere, așteaptă 15 μs la 60 μs și apoi transmite un impuls de prezență prin tragerea

busului 1-Wire scăzut de la 60 μs la 240 μs.

Figura 13. Initializare TIMP

CITIRE/SCRIERE TIME SLOTS Busul de master scrie date către DS18B20 în timpul sloturilor de timp de scriere și citește date din

DS18B20 în timpul sloturilor de timp pentru citire. Un bit de date este transmis prin busul 1-Wire pe slotul

de timp.

SCRIERE TIME SLOTS Există două tipuri de sloturi de timp pentru scriere: sloturi de timp "Write 1" și sloturi de timp "Write 0".

Masterul de magistrală utilizează un slot de scriere 1 pentru a scrie o logică 1 în slotul de timp DS18B20 și

0 Write 0 pentru a scrie o logică 0 la DS18B20. Toate sloturile de timp de scriere trebuie să aibă o durată

minimă de 60 μs, cu un timp de recuperare de cel puțin 1 μs între sloturile individuale de scriere. Ambele

tipuri de sloturi de timp de scriere sunt inițiate de către maestrul care trage busul 1-fir redus (a se vedea

figura 14).

Pentru a genera un slot de scriere 1, după tragerea busului 1-Wire, magistrala magistralei trebuie să

elibereze magistrala 1-Wire în 15 luni. Când autobuzul este eliberat, rezistența de tracțiune de 5k will va

trage autobuzul la înălțime. Pentru a genera un slot de scriere 0, după ce trageți busul 1-Wire scăzut,

magistrala magistralei trebuie să continue să mențină bus-ul scăzut pe durata slotului (cel puțin 60 μs).

1-WIRE BUS

GND

60-240s

MASTER RX

480s minimum

DS18B20 TX presence pulse DS18B20

waits 15-60s VPU

MASTER TX RESET PULSE

480s minimum

LINE TYPE LEGEND Bus master pulling low

DS18B20 pulling low

Resistor pullup

DS18B20

16 of 22

Probele DS18B20 preiau busul 1-Wire în timpul unei ferestre care durează de la 15 μs la 60 μs după ce

master-ul inițiază slotul de timp de scriere. Dacă magistrala este ridicată în timpul ferestrei de eșantionare,

un număr 1 este înscris la DS18B20. Dacă linia este scăzută, se scrie 0 la DS18B20.

Figura 14. Citeste/Scrie Time Slot

CITESTE TIME SLOTS Dispozitivul DS18B20 poate transmite date numai masterului atunci când masterul emite intervale de timp

pentru citire. Prin urmare, masterul trebuie să genereze sloturi de citire imediat după emiterea unei comenzi

Read Reader [BEh] sau Read Power Supply [B4h], astfel încât DS18B20 să poată furniza datele solicitate.

În plus, masterul poate genera sloturi de timp pentru citire după emiterea comenzilor Convert T [44h] sau

Recall E2 [B8h] pentru a afla starea operațiunii așa cum este explicat în secțiunea Comenzile funcțiilor

DS18B20.

Toate intervalele de citire trebuie să aibă o durată minimă de 60 μs, cu un timp de recuperare minim de 1

μs între sloturi. Un slot de timp pentru citire este inițiat de dispozitivul principal care trage busul 1-Wire la

un nivel minim de 1 μs și apoi eliberează magistrala (vezi Figura 14). După ce master-ul inițiază slotul

pentru citirea timpului, DS18B20 va începe să transmită 1 sau 0 pe magistrală. DS18B20 transmite un a 1

ieșind din magistrală înalt și transmite un 0 tragând autobuzul jos. Când transmiteți un 0, DS18B20 va

elibera magistrala până la sfârșitul intervalului de timp, iar magistrala va fi trasă înapoi în starea inactivă

ridicată de către dispozitivul de pullup.

15s 45s 15s

> 1s

Master samples > 1 s Master samples

1-WIRE BUS

GND

MASTER READ “1” SLOT

1s < TREC < VPU

MASTER READ “0” SLOT

30s 15s 15s 30s 15s 15s

VPU

1-WIRE BUS

GND

START OF SLOT

MASTER WRITE “0” SLOT MASTER WRITE “1” SLOT

1s < TREC < 60s < TX “0” < 120s

> 1s

START OF SLOT

DS18B20 pulling low

LINE TYPE LEGEND

Bus master pulling low

Resistor pullup

DS18B20 Samples MIN TYP MAX

DS18B20 Samples MIN TYP MAX

DS18B20

17 of 22

Datele de ieșire de la DS18B20 sunt valabile pentru 15 μs după marginea de cădere care a declanșat fanta

de citire. Prin urmare, comandantul trebuie să elibereze magistrala și apoi să probeze starea magistralei în

15 luni de la începutul slotului.

Figura 15 ilustrează faptul că suma TINIT, TRC și TSAMPLE trebuie să fie mai mică de 15 μs pentru un

slot de citire. Figura 16 arată că marja de sincronizare a sistemului este maximizată prin menținerea

TINIT și TRC cât mai scurte posibil și prin localizarea timpului eșantionului principal în timpul sloturilor

pentru citirea timpului către sfârșitul perioadei de 15 μs.

Figura 15. Master Citire 1 Timp

Figura 16. Recomandare

Aplicație Nota 27: Înțelegerea și utilizarea controalelor de redundanță ciclică cu produse Maxim iButton

Notă aplicativă 122: Utilizarea circuitelor 1-Wire din Dallas în pachete de acumulatori Li-Ion cu 1-celulă

cu FET-uri de siguranțe N-canal de joasă parte Master

Aplicație Nota 126: Comunicarea prin cablu prin software

Notă aplicativă 162: Interfața senzorului de temperatură cu 1 sârmă DS18x20 / DS1822 într-un mediu de

microcontroler

Aplicație Nota 208: Curba de montare a erorii unui senzor de temperatură digitală bazat pe bandgap Notă

de aplicație 2420: Comunicare cu 1 microcontroler PICmicro Notă de aplicare a microcontrolerului 3754:

Serial Bus Single Wire Carrys Power and Data Izolate

Exemple de subrutine 1-Wire care pot fi utilizate împreună cu Nota de aplicație 74: Citirea și scrierea

iButtons prin interfețele Serial pot fi descărcate de pe site-ul Maxim.

15s

TRC TINT > 1s

GND

VIH of Master

VPU

1-WIRE BUS

Master samples

15s

Master samples TINT = TRC = small small

GND

VIH of Master

VPU

1-WIRE BUS

LINE TYPE LEGEND Bus master pulling low

Resistor pullup

DS18B20

18 of 22

DS18B20 OPERATII EXEMPLUL 1 În acest exemplu există mai multe DS18B20s pe bus și folosesc puterea de parazit. Masterul magistralei

inițiază o conversie a temperaturii într-un anumit DS18B20 și apoi își citește scratchpad-ul și recalculează

CRC pentru a verifica datele.

MASTER MOD DATA (LSB PRIMUL)

COMENTARII

Tx Reset Probleme majore de resetare a impulsului.

Rx Presence DS18B20s răspund cu un impuls de prezență.

Tx 55h Probleme principale Comandă ROM.

Tx 64-bit ROM code Master-ul trimite codul DS18B20 ROM.

Tx 44h Probleme principale Comanda de conversie T.

Tx DQ line held high by

strong pullup

Master-ul aplică o tragere puternică la DQ pe durata

conversiei (tCONV). Tx Reset Probleme majore de resetare a impulsului.

Rx Presence DS18B20s răspund cu un impuls de prezență.

Tx 55h Probleme principale Comandă ROM.

Tx 64-bit ROM code Master-ul trimite codul DS18B20 ROM

Tx BEh Probleme principale Citiți comanda Scratchpad.

Rx

9 data bytes

Maestrul citește întregul scratchpad, inclusiv CRC.

Comandantul apoi recalculează CRC a primilor opt octeți de

date de pe scratchpad și compară CRC calculat cu CRC citit

(octet 9). Dacă se potrivesc, maestrul continuă; dacă nu,

operația de citire se repetă.

DS18B20 OPERATII EXEMPLUL 2 În acest exemplu, există doar un singur DS18B20 în bus și acesta utilizează puterea de parazit. Comandantul

scrie în registrele TH, TL și de configurare în scratchpad-ul DS18B20 și apoi citește scratchpad-ul și

recalculează CRC pentru a verifica datele. Comandantul copiază apoi conținutul de zgârieturi pe

EEPROM..

MASTER MOD DATA (LSB FIRST) COMENTARII

Tx Reset Probleme majore de resetare a impulsului.

Rx Presence DS18B20 răspunde cu impulsuri de prezență.

Tx CCh Probleme principale Skip comandă ROM.

Tx 4Eh Probleme principale Scrieți comanda Scratchpad.

Tx 3 data bytes Masterul trimite trei octeți de date la scratchpad (TH, TL și config).

Tx Reset Probleme majore de resetare a impulsului.

Rx Presence DS18B20 răspunde cu impulsuri de prezență.

Tx CCh Probleme principale Skip comandă ROM.

Tx BEh Probleme principale Citiți comanda Scratchpad.

Rx

9 data bytes

Maestrul citește întregul scratchpad, inclusiv CRC. Comandantul apoi recalculează CRC a primilor opt octeți de date de pe scratchpad și compară CRC calculat cu CRC citit (octet 9). Dacă se potrivesc, maestrul continuă; dacă nu, citiți Operatia se repeta.

Tx Reset Probleme majore de resetare a impulsului.

Rx Presence DS18B20 răspunde cu impulsuri de prezență.

Tx CCh Probleme principale Skip comandă ROM.

Tx 48h Probleme principale Copiați comanda Scratchpad.

Tx DQ line held high by

strong pullup

Master-ul aplică o tragere puternică la DQ timp de cel puțin 10

ms în timp ce operația de copiere este în desfășurare.

DS18B20

19 of 22

Valori maxime Voltage Range on Any Pin Relative to Ground.....................................................................-0.5V to +6.0V

Operating Temperature Range...........................................................................................-55C to +125C

Storage Temperature Range ..............................................................................................-55C to +125C

Solder Temperature .......................................................Referitor la IPC/JEDEC J-STD-020 Specificatii.

.

DC Caracteristici electrice(-55°C to +125°C; VDD=3.0V to 5.5V) PARAMETERI SIMBOL CONDITII MIN TYP MAX UNIT NOTE

Alimentare VDD Local Power +3.0 +5.5 V 1

Pullup

Alimentare VPU

Parasite Power +3.0 +5.5 V 1,2

Local Power +3.0 VDD

Eroare

Termometru tERR

-10°C to +85°C ±0.5 °C 3

-55°C to +125°C ±2

Input Logic-Low VIL -0.3 +0.8 V 1,4,5

Input Logic-High

VIH

Local Power +2.2 The lower of

5.5

or

VDD + 0.3

V

1, 6

Parasite Power +3.0

Sink Curent IL VI/O = 0.4V 4.0 mA 1

Standby Curent IDDS 750 1000 nA 7,8

Active Curent IDD VDD = 5V 1 1.5 mA 9

DQ Input Curent IDQ 5 A 10

Drift ±0.2 °C 11

NOTITE: 1)Toate tensiunile sunt raportate la masa.

Specificația tensiunii de alimentare a traseului presupune că dispozitivul de tragere este ideal și, prin

urmare, nivelul ridicat al tragerii este egal cu VPU. Pentru a satisface spec. VIH al modelului DS18B20,

rețeaua de alimentare efectivă pentru tranzistorul puternic de tracțiune trebuie să includă o marjă pentru

căderea de tensiune pe tranzistor atunci când acesta este pornit; astfel: VPU_ACTUAL = VPU_IDEAL +

VTRANSISTOR.

3) Vezi curba tipică de performanță din Figura 17.

4) Tensiunile joase logice sunt specificate la un curent de 4mA.

5) Pentru a garanta un impuls de prezență în condiții de putere parazitară de joasă tensiune, este posibil

ca VILMAX să fie redus la 0,5V.

6) Tensiunile logice ridicate sunt specificate la un curent sursă de 1mA.

7) Curent în așteptare specificat până la + 70 ° C. Curentul de standby este de obicei 3 μA la + 125 ° C.

8) Pentru a minimiza IDDS, DQ trebuie să se încadreze în următoarele intervale: GND DQ GND + 0.3V

sau VDD - 0.3V DQ VDD.

9) Curentul activ se referă la curentul de alimentare în timpul conversiilor de temperatură activă sau în

EEPROM.

10) Linia DQ este mare (starea "high-Z").

11) Datele drift se bazează pe un test de stres de 1000 ore la + 125 ° C cu VDD = 5.5V.

DS18B20

20

AC Caracteristici electrice — MEMORIE NV (-55°C to +100°C; VDD = 3.0V to 5.5V)

PARAMETERI SIMBOL CONDITII MIN TIP MAX UNIT

NV Write Cycle Time tWR 2 10 ms

EEPROM Writes NEEWR -55°C to +55°C 50k writes

EEPROM Data Retention tEEDR -55°C to +55°C 10 years

AC Caracteristici electrice (-55°C to +125°C; VDD = 3.0V to 5.5V) PARAMETERI SIMBOL CONDITII MIN TIP MAX UNIT NOTE

Temperature Conversion

Time

tCONV

9-bit resolution 93.75 ms

1

10-bit resolution 187.5

11-bit resolution 375

12-bit resolution 750

Time to Strong Pullup On tSPON Start Convert T Command Issued

10 s

Time Slot tSLOT 60 120 s 1

Recovery Time tREC 1 s 1

Write 0 Low Time tLOW0 60 120 s 1

Write 1 Low Time tLOW1 1 15 s 1

Read Data Valid tRDV 15 s 1

Reset Time High tRSTH 480 s 1

Reset Time Low tRSTL 480 s 1,2

Presence-Detect High tPDHIGH 15 60 s 1

Presence-Detect Low tPDLOW 60 240 s 1

Capacitance CIN/OUT 25 pF

Figura 17. Curba performantei

Temperatura (°C)

-3s Error

Mean Error

+3s Error

0.5

0.4

0.3

0.2

0.1

-0.1 0

DS18B20 Typical Error Curve

Th

erm

om

ete

r E

rror

(°C

)

DS18B20

21

Figura 18. Diagrama Timpului

DS18B20

2.Componente necesare:

Arduino board

Senzorul DS18B20

Breadboard

Jumpere

Rezistente 4.7K

PC

3.Schema bloc a sistemului :

DS18B20

Conectam pinii senzorului la Arduino folosind jumperii în următoarea ordine:

pin 1 la GND;

pin 2 la orice pin digital (PIN 2 în cazul nostru);

pin 3 până la + 5V sau + 3.3V, la sfârșit punem rezistorul pull-up.

Pentru afisarea rezultatelor, folosim computerul.

4.Concluzii:

Acest sensor de temperature este foarte accesibil pentru proiectele educationale.Impreuna cu placa Arduino Uno se pot dezvolta aplicatii diverse.Termometrul digital DS18B20 oferă măsurători de temperatură de la 9 biți până la 12 biți și dispune de o funcție de alarmă cu puncte de declanșare superioare și inferioare programabile. DS18B20 comunică printr-o magistrală de 1 fir care, prin definiție, necesită doar o singură linie de date pentru a comunica cu un microprocesor central. Are o temperatură de funcționare cuprinsă între -55 ° C și + 125 ° C și este precisă la ± 0,5 ° C în intervalul -10 ° C până la + 85 ° C. În plus, DS18B20 poate obține energie direct de la linia de date, eliminând necesitatea unei surse externe de alimentare.Este foarte practice si usor de folosit intr-o gama variata de aplicatii.