Upload
others
View
43
Download
0
Embed Size (px)
Citation preview
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
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
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.