problem z DS18B20
Masz problem? Zapytaj na forum elektroda.pl
From: "kpiotrek" <removeit_piokacz_at_nospam_proterians.net>
Subject: problem z DS18B20
Date: Mon, 13 Aug 2001 13:52:56 +0200
Witam,
Mam problem z odczytem temperatury z czujnika DS18B20.
Robię mniej więcej tak:
1. Reset:
Ustawiam zero na wej¶ciu DQ czujnika na 500us
Daje na DQ wysoką impedancję na 500us sprawdzając czy Dallas odpowie
2. Je¶li odpowie to wysyłam polecenie CCh - Skip ROM
3. Wysyłam polecenie 44h, ustawiam DQ na wysoką impedancję - Convert T
czyli tu powinien zacząć mierzyć temperaturę
4. Czekam ok. 1s
5. Resetuję czujnik (jak w p. 1)
6.Wysyłam polecenie CCh - Skip ROM
7. Wysyłam polecenie BEh - Read Scratchpad
8. ... i za każdym razem odbieram warto¶ć 0550h czyli jak powinna być po
włączeniu zasilania
Sygnały podglądam na oscyloskopie więc zależno¶ci czasowe mam zgodne z
dokumentacja DS1820. Co robię źle?
Bedę wdzięczny za każdą sugestię.
PK
From: ams_at_nospam_e7.pl (Andzej Sarbinowski)
Subject: Re: problem z DS18B20
Date: Mon, 13 Aug 2001 18:43:41 GMT
On Mon, 13 Aug 2001 13:52:56 +0200, "kpiotrek"
<removeit_piokacz_at_nospam_proterians.net> wrote:
Mam problem z odczytem temperatury z czujnika DS18B20.
Bedę wdzięczny za każdą sugestię.
Wyglada, ze robisz wszystko OK(no prawie, inaczej by dzialalo).
Na pierwszy rzut wyglada, je chodzi o problem z zasilaniem DS podczas
konwersji temp. I teraz jesli :
1. Uzywasz parasite power : bardzo wazne jest podciagniecie DQ do VCC
NATYCHMIAST po wyslaniu ostatniego bitu rozkazu ConwertT. Odczekanie
np 100 uS zniweczy cala sprawe i da dokladnie taki efekt jak na
obrazku.
2. Uzywasz zasilania zewnetrznego - sprawdz czy nie kupiles DS18B20P -
przystosowanej tylko do parasite power.
Jesli te wskazowki nie pomoga to bedziemy myslec dalej ...
Powodzenia :
From: Ireneusz Niemczyk <i.niemczyk_at_nospam_multispedytor.com.pl>
Subject: Re: problem z DS18B20
Date: Tue, 14 Aug 2001 09:09:31 +0200
--------------1F69D9DB59DE5677652DCAB4
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
Kiedy¶ napisałem cu¶ takiego....
CALL W_RST
MOV A,#0CCH ;SKIP ROM
CALL W_WR8
MOV A,#044H ;CONVERT
CALL W_WR8
PORES: CALL W_RD8
CJNE A,#0FFH,PORES
CALL W_RST
MOV A,#0CCH ;SKIP ROM
CALL W_WR8
MOV A,#0BEH ;READ SCRATCHPAD
CALL W_WR8
MOV A,#030H
CALL W_RD64
CALL W_RD8
MOV 038H,A
W_RST resetuje i czeka na potwierdzenie
W_WR8 - zapis bajtu
W_RD8 - odczyt bajtu.....itd.
--
PZD, Irek.N. (ALIAS)
--------------1F69D9DB59DE5677652DCAB4
Content-Type: text/html; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Kiedy¶ napisałem cu¶ takiego....
<p><tt> CALL
W_RST</tt>
<br><tt> MOV
A,#0CCH ;SKIP ROM</tt>
<br><tt> CALL
W_WR8</tt>
<br><tt> MOV
A,#044H ;CONVERT</tt>
<br><tt> CALL
W_WR8</tt>
<br><tt>PORES: CALL W_RD8</tt>
<br><tt> CJNE
A,#0FFH,PORES</tt>
<br><tt> CALL
W_RST</tt>
<br><tt> MOV
A,#0CCH ;SKIP ROM</tt>
<br><tt> CALL
W_WR8</tt>
<br><tt> MOV
A,#0BEH ;READ SCRATCHPAD</tt>
<br><tt> CALL
W_WR8</tt>
<br><tt> MOV
A,#030H</tt>
<br><tt> CALL
W_RD64</tt>
<br><tt> CALL
W_RD8</tt>
<br><tt> MOV
038H,A</tt>
<p>W_RST resetuje i czeka na potwierdzenie
<br>W_WR8 - zapis bajtu
<br>W_RD8 - odczyt bajtu.....itd.
<p>--
<br>PZD, Irek.N. (ALIAS)
<br> </html>
--------------1F69D9DB59DE5677652DCAB4--