RTV forum PL | NewsGroups PL

Problemy z odczytem temperatury DS18B20 na starym komputerze Celeron 400MHz

DS18B20 i komputer

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z odczytem temperatury DS18B20 na starym komputerze Celeron 400MHz

Osadnik
Guest

Thu Jan 22, 2009 3:45 pm   



znany i standardowy motyw, DS18B20 + podłączanie przez DS9097E.
Testowałem to na jednym komputerze chodziło gadko wyniki ładnie
zapisywały sie do MySQL (program LogTemp).
Przeniosłem teraz to wszystko na inny komputer i zaczęło dziać się źle a
mianowicie czasem temperatura wskazuje 127*C, komputer łapie muła przy
zapisywaniu do MySQL, czasem temperatury sie różnią o kilka stopni od
linii trendu, i to tylko takie "szpilki".

Pracuje to teraz na Celeronie 400MHz, 256MB RAM, zamiast dysku karta CF.
Zużycie mocy obliczeniowej nie sięga nigdy 100%.
Kto jest w tym wypadku winny takiego stanu rzeczy? karta CF? czy może
procesor że wskazuje jakieś nieprawidłowe pomiary? Ten sam DS9097E na
innych komputerach sobie radzi idealnie.

Mogę CPU wymienić na PIII 500MHz jeśli to pomoże.

T.M.F.
Guest

Thu Jan 22, 2009 7:23 pm   



Quote:
Mogę CPU wymienić na PIII 500MHz jeśli to pomoże.

DS9097 to zwykly pasywny adapter, bazuje na pewnych parametrach portu
RS232, m.in. wydajnosci pradowej. A ze porty we wspolczesnych PCtach sa
rozne to i zachowuje sie to roznie. Zrob porzadny adapter to problemy
znikna. Zreszta niedawno byl tu podobny watek.

Osadnik
Guest

Thu Jan 22, 2009 8:04 pm   



T.M.F. pisze:
Quote:
Mogę CPU wymienić na PIII 500MHz jeśli to pomoże.

DS9097 to zwykly pasywny adapter, bazuje na pewnych parametrach portu
RS232, m.in. wydajnosci pradowej. A ze porty we wspolczesnych PCtach sa
rozne to i zachowuje sie to roznie. Zrob porzadny adapter to problemy
znikna. Zreszta niedawno byl tu podobny watek.

Porządny czyli jaki?

We współczesnym PC wszystko ok, w archaicznym padaka.

T.M.F.
Guest

Thu Jan 22, 2009 9:20 pm   



Quote:
DS9097 to zwykly pasywny adapter, bazuje na pewnych parametrach portu
RS232, m.in. wydajnosci pradowej. A ze porty we wspolczesnych PCtach
sa rozne to i zachowuje sie to roznie. Zrob porzadny adapter to
problemy znikna. Zreszta niedawno byl tu podobny watek.

Porządny czyli jaki?

We współczesnym PC wszystko ok, w archaicznym padaka.

To zalezy jak trafisz. Podlacz mu jakies dodatkowe zasilanie, albo kup
konwerter scalony USB-1-wire lub RS232-1-wire. To jeden scalak, proste
do zmajstrowania, kosztuje ciut wiecej niz pare rezystorow i zenerek,
ale bedzie dzialac.
Nie wykluczam tez, ze soft jest trefny. Masz zrodla?

Sylwester Łazar
Guest

Thu Jan 22, 2009 9:35 pm   



Quote:
Mogę CPU wymienić na PIII 500MHz jeśli to pomoże.
Przyjąłbym następujące kroki w diagnozie:

1) Podłączenie oscyloskopu do szyny danych pokaże problem.
Master musi wysłać krótką szpilkę do DS18B20,
a ten odpowiada.
a) trzeba zobaczyć czy PC z tym DS9097E wysyła RESET i szpilki o poprawnej
długości.
Musi być tak jak w karcie katalogowej DS18B20 050102 na stronie16
http://www.alpro.pl/DS18B20/slot.jpg
b) Czy poziomy napięć są odpowiednie?
c) Czy Windows nie buforuje danych wysyłanych i odbieranych przez RS232.
Można wyłączyć FIFO w ustawieniach portu COM
2) Przyjrzeć się programowi jeśli parametry napięciowe są w zakresie
tolerancji.
W szczególności dobrze by było wiedzieć, czy Master czyta w odpowiednim
momencie daną.
Przypuszczam, że jeśli użyto RS232 do odczytu, to może być problem z
zsynchronizacją nadawania i odbierania.
Tak czy inaczej oscyloskop.
3) Te piny w tej przejściówce to tragedia. Ten typ złącza był przeznaczony
do analogowej transmisji telefonicznej, a nie do transmisji sygnałów
cyfrowych.
Należy odgiąć i przeczyścić.
Nie widzę sensu wymiany procesora. Raczej:
a) korekta programu
b) podłączenie DS18B20 do portu Centronics, jeśli się nie da do COM.
c) dodanie normalnego interfejsu w miejsce tego DS9097E.
"The serial port must support a data transmission rate of 115.2kbps in order
to create the 1-WireR time slots correctly. _Nearly_ all PCs support the
required data rate and are fully compatible with the DS9097."
Proszę zwrócić uwagę na słowo _Nearly_. W tłumaczeniu oznacza to: Rzadko
który PC spełni te parametry, a jak nawet spełni to spędzisz 3 dni na
konfiguracji :-)

Ten DS9097E to wydaje mi się dość prymitywny.
I jeszcze taki opis z karty.
"When powering up, the DS2480B performs a master reset cycle and enters the
Command Mode, which is one of the two
static states. The device now expects to receive one 1-Wire reset command on
the TXD line sent by the host at a data rate of
9600bps (see Communication Commands section for details). This command byte
is required solely for calibration of the baud
rate timing generator the DS2480B and is not translated into any activity on
the 1-Wire bus. After this first command byte the
device is ready to receive and execute any command as described later in
this document. NOTE: Baud rate calibration is valid
only for the VDD operating voltage at which calibration is performed.
Post-calibration changes in VDD by more than 5% may
cause calibration error to exceed  5%. The DS2480B requires a 1-Wire reset
command sent by the host at a data rate of
9600bps for calibration. Data rates of 115200bps or higher during
calibration may put the DS2480 in an undefined state,
requiring a power-down reset to restore normal operation."
Czytając to mam wrażenie, że MAXIM chce ludzi wpędzić kłopoty. Wygląda mi na
to, że ten układ jest MOCNO zależny od protokołu RS232 i buforowania danych.
Wydaje mi się, że najlepiej by było zamienić go na 8-pinowy uControler. np.
PIC z rezonatorem kwarcowym i wysyłać normalnym RS-em zebrane dane do PC.
Nawet gdzieś mam program do PICa, który wysyła dane do PC. Jak będą chętni
to udostępnię.

--
--
pozdrawiam
Sylwester Łazar
http://www.alpro.pl
http://www.rimu.pl -oprogramowanie do edycji schematów
i projektowania PCB


--
--
pozdrawiam
Sylwester Łazar
http://www.alpro.pl
http://www.rimu.pl -oprogramowanie do edycji schematów
i projektowania PCB

T.M.F.
Guest

Thu Jan 22, 2009 10:44 pm   



Quote:
Ten DS9097E to wydaje mi się dość prymitywny.
I jeszcze taki opis z karty.
"When powering up, the DS2480B performs a master reset cycle and enters the
Command Mode, which is one of the two
static states. The device now expects to receive one 1-Wire reset command on
the TXD line sent by the host at a data rate of
9600bps (see Communication Commands section for details). This command byte
is required solely for calibration of the baud
rate timing generator the DS2480B and is not translated into any activity on
the 1-Wire bus. After this first command byte the
device is ready to receive and execute any command as described later in
this document. NOTE: Baud rate calibration is valid
only for the VDD operating voltage at which calibration is performed.
Post-calibration changes in VDD by more than 5% may
cause calibration error to exceed  5%. The DS2480B requires a 1-Wire reset
command sent by the host at a data rate of
9600bps for calibration. Data rates of 115200bps or higher during
calibration may put the DS2480 in an undefined state,
requiring a power-down reset to restore normal operation."
Czytając to mam wrażenie, że MAXIM chce ludzi wpędzić kłopoty. Wygląda mi na
to, że ten układ jest MOCNO zależny od protokołu RS232 i buforowania danych.
Wydaje mi się, że najlepiej by było zamienić go na 8-pinowy uControler. np.
PIC z rezonatorem kwarcowym i wysyłać normalnym RS-em zebrane dane do PC.
Nawet gdzieś mam program do PICa, który wysyła dane do PC. Jak będą chętni
to udostępnię.

DS2480B i DS9097 to dwie zupelnie rozne rzeczy. Co do opisu to nie ma
problemu, bo Dallas daje swoje biblioteki wiec programiste interesuje
tylko wywolanie gotowych funkcji.
Ja sobie napisalem 1-wire na AVR w C i C++, ale problem w tym
zastosowaniu jest taki, ze na RS232 nie masz zasilania. Sensowniej
byloby cos wrzucic na USB, czyli z wykorzystaniem FTDI, w trybie
synchronicznym bit-bang byloby to proste do zrobienia. Tyle, ze cena juz
nam sie robi porownywalna z gotowym scalakiem 1-wire-USB.

Sylwester Łazar
Guest

Thu Jan 22, 2009 11:13 pm   



Quote:
DS2480B i DS9097 to dwie zupelnie rozne rzeczy.
Acha. Ja zasugerowałem się odpowiednikiem, który proponuje Dallas

DS9097U-S09

Recommended Upgrades for New Designs
Part Number Replacement Explanation
DS9097 DS9097U-009 Similar part, will be recognized by most software
drivers.
DS9097 DS9097U-S09
DS9097# DS9097U-S09
DS9097E# DS9097U-S09
DS9097E DS9097U-S09
DS9097E DS9097U-E25

Czyli sam dallas proponuje wymianę tego Passive na hardware.

Quote:
Co do opisu to nie ma
problemu, bo Dallas daje swoje biblioteki wiec programiste interesuje
tylko wywolanie gotowych funkcji.
Tyle, że nie daje jeszcze skonfigurowanego komputera PC Smile

Piszą tylko _Nearly_ all PC.
Quote:
Ja sobie napisalem 1-wire na AVR w C i C++, ale problem w tym
zastosowaniu jest taki, ze na RS232 nie masz zasilania. Sensowniej
byloby cos wrzucic na USB, czyli z wykorzystaniem FTDI, w trybie
synchronicznym bit-bang byloby to proste do zrobienia. Tyle, ze cena juz
nam sie robi porownywalna z gotowym scalakiem 1-wire-USB.

To może lepiej od razu na Ethernet PoEthernet
http://www.allegro.pl/item491042421_adapter_poe_dla_sieci_lan_profesionalny_
najtaniej.html
Przy czym w tej sytuacji- korzystając z tej idei- może to być także RS232,
a napięcie wziąść z klawiatury PS/2.
A klawiaturę podłączyć USB.
Lub z portu myszki, a myszkę na USB.

--
--
pozdrawiam
Sylwester Łazar
http://www.alpro.pl
http://www.rimu.pl -oprogramowanie do edycji schematów
i projektowania PCB

Osadnik
Guest

Fri Jan 23, 2009 2:40 pm   



Sylwester Łazar pisze:


Quote:
Przy czym w tej sytuacji- korzystając z tej idei- może to być także RS232,
a napięcie wziąść z klawiatury PS/2.
A klawiaturę podłączyć USB.
Lub z portu myszki, a myszkę na USB.

Czyli jak zrezygnuję z Parasite Mode i pod VDD podłącze stosowne

zasilanie 5V to nie będzie kłopotu?
Bo w tej chwili każde większe obciążenie procesora poza LogTemp powoduje
niedokładne pomiary. Nawet jak proces ma tryb realtime.

Teoretycznie mógłbym korygować te błędy ale tu istotna jest niewielka
różnica wiec korekcja spowoduje problemy.

Sylwester Łazar
Guest

Fri Jan 23, 2009 4:11 pm   



Quote:
Czyli jak zrezygnuję z Parasite Mode i pod VDD podłącze stosowne
zasilanie 5V to nie będzie kłopotu?
Bo w tej chwili każde większe obciążenie procesora poza LogTemp powoduje
niedokładne pomiary. Nawet jak proces ma tryb realtime.

Teoretycznie mógłbym korygować te błędy ale tu istotna jest niewielka
różnica wiec korekcja spowoduje problemy.
Ja nie zrozumiałem pytania.

Generalnie, aby zdiagnozować i ew. naprawić problemy w Pana konfiguracji
należy podłączyć oscyloskop do DS18B20. Bez tego ani rusz Sad
My tu z kolegą rozmawialiśmy jak tu zrobić to bardziej profesjonalnie:
a) podłączając DS18B20 do mikrokontrolera, który wysyła temperaturę do PC
np. z prędkością 9600 bodów
b) napisaniu lub zmianę programu tak, aby łatwo sobie tą temperaturę
odczytać na prawie każdym PC.
Przy czym to nasze prawie oznacza jakby wszystkie PC które mają port RS232,
a nie jak DALLAS pisze:
"jak będzie działać to fajnie". Wymienialiśmy tylko poglądy pt. "Z której
elektrowni skorzystać i którym złączem?"
W domyśle zakładam, że mikrokontroler zmieści się we wtyczce- podobnie jak
Dallas.

I teraz należy sobie zadać pytanie, czy czas już zrobić to dobrze :-)

--
--
pozdrawiam
Sylwester Łazar
http://www.alpro.pl
http://www.rimu.pl -oprogramowanie do edycji schematów
i projektowania PCB

Marcin Łukasik
Guest

Fri Jan 23, 2009 11:54 pm   



Sylwester azar wrote:

Quote:
I teraz naley sobie zada pytanie, czy czas ju zrobi to dobrze Smile

Dokładnie.

atmega8 + ds1820. uC ma 1wire i rs-a (maxa 232 jeszcze trzeba).
I zmieści się we wtyczce :-)

Program do napisania w 3 minuty.

Nawet mogę przesłać hex-a na uC z czymś takim.

m.

--
Milea Wireless Communications, http://milea.pl
Anteny WiFi, UMTS, kable, zlacza, akcesoria.

``Be who you are and say what you feel, because those who mind don't
matter and those who matter don't mind.''

Adam Dybkowski
Guest

Sat Jan 24, 2009 2:07 am   



Marcin Łukasik pisze:

Quote:
atmega8 + ds1820. uC ma 1wire i rs-a (maxa 232 jeszcze trzeba).
I zmieści się we wtyczce Smile

Do zrobienia konwertera 1Wire<->RS232 wystarczy dużo prostszy uC. Ot
choćby 8-nóżkowy ATtiny25, którego USI można użyć jako jednokierunkowy
UART (half duplex).

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

Marcin Łukasik
Guest

Sat Jan 24, 2009 4:24 pm   



Adam Dybkowski wrote:

Quote:
Do zrobienia konwertera 1Wire<->RS232 wystarczy dużo prostszy uC. Ot
choćby 8-nóżkowy ATtiny25, którego USI można użyć jako jednokierunkowy
UART (half duplex).


Zgadzam się.
Ja po prostu zawsze wspominam o atmega8, bo zawsze go mam pod ręką :-)

A i różnica w cenie niewielka, więc cóż za różnica :)

m.

--
Milea Wireless Communications, http://milea.pl
Anteny WiFi, UMTS, kable, zlacza, akcesoria.

``Be who you are and say what you feel, because those who mind don't
matter and those who matter don't mind.''

Adam Dybkowski
Guest

Tue Jan 27, 2009 12:58 am   



Marcin Łukasik pisze:

Quote:
Do zrobienia konwertera 1Wire<->RS232 wystarczy dużo prostszy uC. Ot
choćby 8-nóżkowy ATtiny25, którego USI można użyć jako jednokierunkowy
UART (half duplex).

Zgadzam się.
Ja po prostu zawsze wspominam o atmega8, bo zawsze go mam pod ręką Smile
A i różnica w cenie niewielka, więc cóż za różnica Smile

Prostsza płytka / łatwiej przylutować itd.

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

elektroda NewsGroups Forum Index - Elektronika Polska - Problemy z odczytem temperatury DS18B20 na starym komputerze Celeron 400MHz

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map