Teplotní čidlo DS18B20

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
oldaces
Příspěvky: 21
Registrován: 04 led 2009, 01:00

Teplotní čidlo DS18B20

#1 Příspěvek od oldaces »

Nevíte nekdo prosím jak adresovat nekolik teplotních cidel DS18B20 na spolecné sbernici,rekneme 4ks DS18B20,jestli byste nekdo dovedl popsat alespon postup jednotlivych operaci na sbernici,ktere provadi nadřizeny a podrizeny sbrnice.

Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 02:00
Bydliště: Vysočina

#2 Příspěvek od Chenzee »

V čidle je 64bit. kód, podle kterého to čidlo určíš. Tento kód musíš nejprve zjistit (vyčíst) a poté ho používat pro adresaci. Pokud máš pouze jedno čidlo na sběrnici, není potřeba tento kód znát, pokud jich je více (jak uvádíš), je to trošku složitější. Vše je celkem dobře popsáno v datasheetu (aj).

a také se to tu již řešilo. http://www.ebastlirna.cz/modules.php?na ... 3d&start=0

Uživatelský avatar
oldaces
Příspěvky: 21
Registrován: 04 led 2009, 01:00

#3 Příspěvek od oldaces »

Děkuji za odpověď ,na ten odkaz jsem se díval je tam kousek programu
ke ztažení pro PIC jen čistě převod teploty,ještě tam píše že má přelože-
ný datasheet na DS18B20 ale to tam ke ztažení zatím nebylo.
Jinak pro mě to vyčíst z datasheetu je dosti problém,vyčetl jsem tam
že nějak porovnáváš první bity těch součástek pak je nějak porovnáváš,
ale vůbec mi to zatím nění jasné,budu hledat dál ,možná se někdo ještě
ozve kdo ví podrobnější postup.

Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 02:00
Bydliště: Vysočina

#4 Příspěvek od Chenzee »

Datasheet do CZ jsem přkládal já, takže pokud mi zašleš adresu, tak ti ho zašlu. Ale tato část zrovna moc dobře přeložená není resp. není moc pochopitelná, protože v době překladu jsem to také nevěděl. Ale ta procedura vyhledávání ROM kódu je na konci toho vlákna (2 strana) pěkně popsána. Psát znovu to, co již bylo napsáno, je trošku zbytečné. :wink:

Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 02:00
Bydliště: Kladno

#5 Příspěvek od Mendor »

A není jednoduší si napřed rom kódy jednotlivě načíst, než je pak pracně na sběrnici hledat ?

Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 02:00

#6 Příspěvek od Andrea »

Mendor píše:A není jednoduší si napřed rom kódy jednotlivě načíst, než je pak pracně na sběrnici hledat ?
Pro připojení čtyř stále stejných čidel určitě. Zvláště pokud podle čísla čidla určuji, které čidlo to je, jestli v obýváku, v ložnici nebo venku.

Uživatelský avatar
oldaces
Příspěvky: 21
Registrován: 04 led 2009, 01:00

#7 Příspěvek od oldaces »

Díky za odpověď moje adresa je: oldaces@centrum.cz napíšu to
raději ještě slovy kdyby někda se to špatně zobrazí tedy
oldaces zavináč centrum.cz hledal jsem jak píšeš na jedné i na druhé straně několik stránek tam i zpět,ale nepodařilo se mi to najít,moc se v té diskuzi ještě nevyznám,kde by měl být ten druhý konec vlákna jak tam píšeš.Pokud víš přesně kde to je tak bych Tě chtěl poprosit jestli bys ten text z té diskuze zkopíroval k tomu datasheetu až mi to budeš posílat a nebo jestli už teď víš jak se to adresuje.tak jestli bys to mohl stručně popsat já už bych si to v tom překladu snad nějak domyslel o co tady jde,nebo bych to zkusil znovu překladačem přeložit a když už bych trochu věděl jak to je lépe by se mi to přeložilo,ale takhle se s překladem nechytám.

Uživatelský avatar
oldaces
Příspěvky: 21
Registrován: 04 led 2009, 01:00

#8 Příspěvek od oldaces »

S tím načtením všech 4 kódu asi možná ano,ale musel bych si předělat
proceduru na převod do BCD kódu,abych tak velké číslo mohl zobrazit
na LCE displei možná to jde jednodušeji,můžete poradit jakým způsobem to vyčíst a zjistit to číslo,můžete stručně popsat nechám si poradit,možná by to šlo postupně zatím nevím.

Uživatelský avatar
oldaces
Příspěvky: 21
Registrován: 04 led 2009, 01:00

#9 Příspěvek od oldaces »

Tam jsem se spletl v písmenku je to:zobrazit na LCD desplei

Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 02:00
Bydliště: Kladno

#10 Příspěvek od Mendor »

oldaces píše:...abych tak velké číslo mohl zobrazit.
Zase tak velká čísla to nejsou. Po zadání příkazu READROM obdržíš osm čísel v rozsahu 0 - 255. Na jejich zobrazení ti stačí 3 sedmisegmentovky, pokud tedy nepoužíváš znakový LCD.

Uživatelský avatar
Pawalo
Příspěvky: 87
Registrován: 06 říj 2005, 02:00
Bydliště: Tábor
Kontaktovat uživatele:

#11 Příspěvek od Pawalo »

já to asi budu řešit tak že každý čidlo švihnu na svuj pin,,, tudiš ROMku u každýho přeskočim,,,, akorát to má nevýhodu že když budeš mít 4 čidla tak se ti program asi trochu prodlouží.


Chenzee: Mohl bych taky poprosit o překlad k čidlu ? pawalo@seznam.cz

Uživatelský avatar
beagle
Příspěvky: 30
Registrován: 14 bře 2007, 01:00

#12 Příspěvek od beagle »

Já jak jsem si hrál s DS18b20 tak jsem si nainstaloval program LogTemp a tam když připojíš ruzné čidlo tak ti zobrazí jeho ROM kod viz. obrázky program je na adrese http://www.mrsoft.fi/ohj01en.htm
Přílohy
Logtemp1.PNG
(21.91 KiB) Staženo 119 x
Logtemp.PNG
(33.74 KiB) Staženo 245 x

Uživatelský avatar
oldaces
Příspěvky: 21
Registrován: 04 led 2009, 01:00

#13 Příspěvek od oldaces »

Děkuji Vám všem za rady ohleně DS18B20 zkusím se do toho zase pustit.

Uživatelský avatar
oldaces
Příspěvky: 21
Registrován: 04 led 2009, 01:00

#14 Příspěvek od oldaces »

Nevíte někdo prosím jak jdou přesně po sobě příkazy a kde má být
reset při adresování několika DS18B20 na jedné sběrnici?Nevím ani
jak spočítat CRC kod abych mohl ověřit jestli jsem přečetl čísla z těch
DS18B20 správně.Kdybyste někdo věděl jak spočítat CRC kody u DS
tak tady jsou čísla těch 4ks DS18B20

PŘEČTENÉ KODY
CRC sériové číslo rod.kód
1. DS 56 00 00 00 E6 AE F5 28
2. DS A8 00 00 01 B4 60 AA 28
3. DS 7B 00 00 01 B4 5F 57 28
4. DS A5 00 00 01 B4 76 9A 28

Uživatelský avatar
strg
Příspěvky: 26
Registrován: 14 říj 2004, 02:00

#15 Příspěvek od strg »

;**************************************************************
; Vypocet CRC
;..............................................................
; podprogram provede pripocteni dat z bytu T_RDS k CRC
; Na zacatku vypoctu musime nastavit CRC na 00h
;**************************************************************
; definice symbolu
;**************************************************************
;**************************************************************
SWR equ 03h
CTBIT equ 10h
T_RDS equ 11h
TMP equ 12h
CRC equ 13h
f equ 1
#define C SWR,0
;**************************************************************
vypcrc movlw 08h ;pocet pripoctenych bitu 8
movwf CTBIT
movfw T_RDS ;T_RDS do TMP1
movwf TMP
;..............................................................
vypcr0 rrf TMP,f ;LSB do C
btfsc C ;bc vypcr3 ;C=1
goto vypcr3
btfsc CRC,7
goto vypcr4 ;CRC(7)=1,C=0
vypcr1 bcf C ;CRC(7).XOR.C=0
rlf CRC,f
vypcr2 decfsz CTBIT,f
goto vypcr0
return
;..............................................................
vypcr3 btfsc CRC,7
goto vypcr1 ;CRC(7).XOR.C=0
vypcr4 movlw 18h ;CRC(7).XOR.C=1
xorwf CRC,f ;CRC.XOR.18h
bsf C
rlf CRC,f
goto vypcr2
;**************************************************************
end
T_RDS k CRC
Takže asi takto: pred výpočtom crc nastav reg. CRC na 0, do T_RDS vložíš 0 bajt spustíš program na výpočet crc , potom 2 bajt spustíš program na výpočet crc .................. do T_RDS vložíš 8 bajt (crc)
a spustíš program na výpočet crc a nakoniec musí byť v reg. CRC zase 0.
Naposledy upravil(a) strg dne 27 led 2009, 22:15, celkem upraveno 1 x.

Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“