1-Wire DS18B20

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

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

1-Wire DS18B20

#1 Příspěvek od forbidden »

Píšu si procedury k obsluze tohoto obvodu a zajímala by mě jedna věc. Je nutná nějaká minimální čekací doba mezi čtením jednotlivých bajtů? V datasheetu jsem nic nenašel, ale na netu v některých článcích ji vkládají (cca 500 µs). Já ji mám pár µs, který v podstatě zabere jen skok z procedury a uložení přijatého bajtu a funguje mi to.
Díky.
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#2 Příspěvek od ZdenekHQ »

Nevím, k čemu by to bylo, možná k "posílení" napájení při více kusech na sběrnici.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#3 Příspěvek od forbidden »

Já parazitní napájení nepoužívám. Tak to nechám bez čekání. Dík.
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#4 Příspěvek od forbidden »

Ještě jsem narazil na jeden problém. Za žádnou cenu nemůžu obvod donutit, aby fungoval jako 9b. Pořád mi převádí teplotu na 12b číslo.
Konfigurační registr mám nastavenej správně, to mám ověřený i jeho přečtením. Je to uložený i v EEPROMce, po zapnutí se to i načte, ale jakmile dám převod teploty, převede se na 12b. Už nevím jak jej mám donutit.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#5 Příspěvek od Andrea »

A podle čeho soudíš, že se převádí na 12b? To se dá poznat jen z doby převodu.
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#6 Příspěvek od forbidden »

Podle výsledku, pořád mi to vyhazuje něco kolem: 110010000 což je při 12b rozlišení 1b=0,0625 °C teplota 25 °C. To bych tu měl. Při 9b rozlišení připadá na 1b=0,5 °C to už je na mě příliš :)
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#7 Příspěvek od Andrea »

To jsi to špatně pochopil, to číslo je pořád 12 bitů a LSB je pořád 0,0625°C.

If the DS18B20 is configured for 12-bit resolution, all bits in the temperature register will contain valid data. For 11-bit resolution, bit 0 is undefined. For 10-bit resolution, bits 1 and 0 are undefined, and for 9-bit resolution bits 2, 1 and 0 are undefined.
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#8 Příspěvek od forbidden »

Aj, tak jsem na to přišel, v datasheetu jsem přehlídl, že to nahrazuje insignificant bity nulama. Nějak jsem automaticky předpokládal, že to bude ořezávat shora. Takže mám 110010, což při tom 9b rozlišení dá opravdu 25 °C. :oops:

A ještě k tomu pozdě...

I tak díky za pomoc :)
Uživatelský avatar
Hydrawerk
Příspěvky: 8516
Registrován: 13 pro 2011, 00:00
Bydliště: Earth

#9 Příspěvek od Hydrawerk »

Našel jsem jakousi knihovnu k DS18B20. Nechce někdo?
EDIT: Je to na AVR.
Přílohy
1wire.zip
DS18B20
(1.74 KiB) Staženo 605 x
Naposledy upravil(a) Hydrawerk dne 24 čer 2014, 21:16, celkem upraveno 2 x.
Uživatelský avatar
Hydrawerk
Příspěvky: 8516
Registrován: 13 pro 2011, 00:00
Bydliště: Earth

#10 Příspěvek od Hydrawerk »

Takhle mi funguje teploměr s DS18B20. http://youtu.be/1t1O0cYonzk
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#11 Příspěvek od Atlan »

Tie casy su tam nejake divoke, ale neskumal som to podrobne ked to chodi..... inak je to na AVR
Odpovědět

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