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ę

ATMega128 i DS1820 (1wire)

Piotr78
-
-
Posty:11
Rejestracja:16 kwie 2005, o 17:41
Lokalizacja:lubuskie
ATMega128 i DS1820 (1wire)

Postautor: Piotr78 » 23 sie 2005, o 15:09

Witam,

chcialbym poruszyc temat termometrow Dallas-a gdyz mam pewien problem z obsluga DS1820 i DS18B20 na ATMega128

Mianowicie, po podlaczeniu w trybie 2wire (1 - GND, 2 - PinB.7/PinE.7 itp., 3 - Vcc 5V) do ATMega128 z kwarcem zewnetrznym 10MHz (innego uzyc nie moge) po wykonaniu komend w Bascom AVR:

Kod: Zaznacz cały

config 1wire= portb.7 dim rgn(8) as byte 1wreset wait 1 rgn(1)=1wsearchfirst()
w wynikach tablicy rgn otrzymuje same zera :(

jesli uzyje komendy word=1wirecount() to procesor totalnie zamiera i juz nie wykonuje zadnych instrukcji po tej funkcji

oba uklady (ds1820 i ds18b20) zachowuja sie tak samo, nie wiem co jest tego przyczyna

podczas inicjowania magistrali zmienna Err zwraca wartosc 0 - poprawnie

prosze o jakies sugestie, rozwiazania gdyz na dzien dzisiejszy skorzystanie z kosci dallas-a jest z tym uC niemozliwe.

przykladowy listing podalem z pamieci wiec moglem pomylic poprawne nazewnictwo komend, jednak przekaz jest chyba zrozumialy ;)

dzieki za pomoc

Awatar użytkownika
Press
-
-
Posty:389
Rejestracja:10 mar 2004, o 16:21
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: Press » 23 sie 2005, o 23:05

1wreset
waitms 100
1wwrite &h33
rgn(1) = 1wread(8)

Przykład dla jednego czujnika na linii. Dla kilku trzeba jeszcze wysyłac adres czujnika.
Juz nawet jest od dawna help po polsku, a dalej nie czytają <no>

Piotr78
-
-
Posty:11
Rejestracja:16 kwie 2005, o 17:41
Lokalizacja:lubuskie

Postautor: Piotr78 » 24 sie 2005, o 15:47

no wlasnie tak sie sklada, ze ta metode tez stosowalem poprzez podawanie komend wysylajac je przez 1wread 1wwrite i rezultat jest taki sam :(

Awatar użytkownika
Press
-
-
Posty:389
Rejestracja:10 mar 2004, o 16:21
Lokalizacja:Wrocław
Kontaktowanie:

Postautor: Press » 24 sie 2005, o 22:41

a masz rezystory podciagające i koncówke ustawionąl jako wejście?
czasem niewiele sie przeoczy i wszystko lezy ;)

Piotr78
-
-
Posty:11
Rejestracja:16 kwie 2005, o 17:41
Lokalizacja:lubuskie

Postautor: Piotr78 » 24 sie 2005, o 23:06

jesli koncowke konfiguruje jako 1wire (jak z reszta opisalem w 1 poscie) to chyba logiczne ze nie bedzie to jednoczesnie ustawiane jako wy lub we,

rezystor podciagajacy jest potrzebny w przypadku braku stosowania linii zasilajacej na pin 3 ds1820, u mnie akurat stosuje polaczenie 2wire (3 druty) co tez z reszta opisalem wyzej

w moim przypadku interesuje mnie raczej czy czestotliwosc zewn kwarcu nie jest kwestia kluczowa lub czy problem nie tkwi w samym bascom-ie lub nie sa potrzebne do zaladowania jakies dodatkowe biblioteki obslugi 1wire i to jest wlasnie cel moich pytan

w kazdym badz razie dzieki za dobre checi ;)

jacur
-
-
Posty:24
Rejestracja:21 lut 2004, o 15:40
Kontaktowanie:

Postautor: jacur » 7 wrz 2005, o 22:31

W kazdem przypadku podłączenia DS-a do proca potrzebny jest rezystor podciagajacy, niezaleznie czy działa na 2 liniach czy na 3. Poczytaj dobrze dokumantacje do DS-a.

Piotr78
-
-
Posty:11
Rejestracja:16 kwie 2005, o 17:41
Lokalizacja:lubuskie

Postautor: Piotr78 » 8 wrz 2005, o 08:23

witam,

z moich doswiadczen wynika, ze ds1820 dziala z ATMega128 tylko w konfiguracji 1wire (pin 2 - transmisja podciagniete do Vcc prze 4k7 Ohm), pozostale kombinacje przy uzyciu pin-u 3 do zasilania nie przynosza rezultatu.

Nie mialem okazji testowac magistrali przy wiekszej ilosci podpietych urzadzen i generowanym wiekszym zapotrzebowaniu na ich zasilanie.

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

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

A zmieniłeś domyślną częstotliwość 128'ki z 1 na 10MHz?

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

Kto jest online

Użytkownicy przeglądający to forum: Google [Bot] i 26 gości