Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Problem z DS18X20 przy zewnętrznym sygnale 1kHz na INT0

pch
-
-
Posty:23
Rejestracja:27 maja 2003, o 06:56
Lokalizacja:Gdańsk
Kontaktowanie:
Problem z DS18X20 przy zewnętrznym sygnale 1kHz na INT0

Postautor: pch » 30 gru 2004, o 20:44

Właśnie powalił mnie nieprzewidziany problem. Urządzenie zewnętrzne dostarcza impulsy które muszę liczyć. Dokładna ich ilość jest dla mnie krytyczna. W ekstremalnym przypadku będzie ich około 1.000 na sekundę. W układzie, tym kontrowersyjnym, mam kilka gratów na I2C i raczej transmisja będzie ok bo w innym układzie timer dostarcza ponad 4.000 przerwań na sekundę i jest OK. Niestety tytułowe termometry DS18B20 i DS18S20 kuleją i to strasznie. Sporadycznie dostaję jakieś dane. Nie wiem czy błędnie dostają polecenie inicjacji czy też odczyt danych jest nieprawidłowy a może i jedno i drugie. Czy miał ktos taki problem a moze macie pewną procedurę w asemblerze, która go rozwiąże.

Teraz trochę danych:
Bascom 8051 v.2.0.11.0, procesor 89s53, aktualnie 12MHz (docelowo 24MHz), dwa termometry na różnych pinach naprzemiennie co pół sekundy są inicjowane i odczytywane, zasilanie pasożytnicze (ale po podłączeniu Vcc do 5V bez zmian), rezystor podciągający linię Dq od 2k2 do 10k (bez różnicy).

Pozdrawiam i życzę szampańskiej zabawy

PC

spoli
-
-
Posty:4
Rejestracja:13 mar 2003, o 11:54
Lokalizacja:Gorzów
Kontaktowanie:

Postautor: spoli » 31 gru 2004, o 12:13

Z mojego doswiadczenia wynika, że czas pomiędzy poleceniem konwersji temperatury a jej odczytem, dla pojedyńczego czujnika powinien wynosić, co najmniej 750ms. Jak napisałeś "czytasz" temperaturę co pół sekundy- to za szybko. Pewnie masz wiekszość odczytów jako 80st. C. Wydłuż czas pomiedzy odczytami. W ciągu sekundy temperatura nie zmieni się dużo bardziej niż w ciągu pół sekundy. :wink:

pch
-
-
Posty:23
Rejestracja:27 maja 2003, o 06:56
Lokalizacja:Gdańsk
Kontaktowanie:

Postautor: pch » 1 sty 2005, o 00:42

Dla temperatur zblizonych do otoczenia czas konwersji jest bardzo krótki. 0.1 max 0.2 sekundy wystarcza. Tu problemem jest przerwanie. W sumie nie wiem czemu. Ja w zasadzie zliczam tylko kolejne impulsy czyli odkładam kilka danych na stosie i inkrementuję jedną zmienną potem odtwarzam dane ze stosu. Sporadycznie obsługuję timer ale to nie ma znaczenia bo zdarza się na prawdę sporadycznie.
Nie wiem o co chodzi. Czyzby polecania 1wire korzystały z timerów albo innych elemetów systemowych procesora!!

PC

Awatar użytkownika
amok67
-
-
Posty:108
Rejestracja:12 lip 2004, o 09:17
Lokalizacja:Warszawa

Postautor: amok67 » 27 wrz 2005, o 19:14

Czas konwersji ,jeżeli użyjesz zasilania konwencjonalnego (5V na VCC czujnika...)
można skrócić do (w zależności od egzemplarza) do 300ms.Sprawdzone.
O ile 3 kable do czujnika to nie problem...

Wróć do „Projektowanie PCB, programy EDA, CAD, narzędziowe”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 47 gości