www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Inicializacija naprave na 1-wire povezavi

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Pet Dec 26, 2008 12:24 am    Naslov sporočila:  Inicializacija naprave na 1-wire povezavi Odgovori s citatom

Pozdravljeni

Nekaj se igram z 1-wire komunikacijo za temperaturni senzor DS18S20.

Zanima me na kakšen način bi ugotovil ali se senzor nahaja na povezavi ali ne.

Zanima me primer kode ki bi mi dal informacijo ali je senzor priključen na kontroler ali ne.

Programiram Atmega8 z Bascom AVR.

Hvala za pomoč.

Darko



DS18S20 - Inicialization Timing.JPG
 Opis:
 Velikost datoteke:  54.38 KB
 Pogledana:  23 krat

DS18S20 - Inicialization Timing.JPG



_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Pet Dec 26, 2008 12:29 am    Naslov sporočila:   Odgovori s citatom

Po tem, ko oddaš reset pulz, preveri če se je naprava oglasila.
_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.88
Kraj: Ljubljana

PrispevekObjavljeno: Pet Dec 26, 2008 12:48 am    Naslov sporočila:   Odgovori s citatom

Če prav razumem:
http://avrhelp.mcselec.com/1wreset.htm, če ni odziva postavi ERR.
http://avrhelp.mcselec.com/1wsearchfirst.htm, vrne 0 oz. ID senzorja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Pet Dec 26, 2008 1:39 am    Naslov sporočila:  1-Wire Komunikacija Odgovori s citatom

Pozdravljeni

Zopet mi nekaj nagaja pri 1wire komunikaciji. Želim napajati napravo preko pull up upora 4,7k Ohma ampak kot sem meril z V-metrom mi ostane ĐQ (1-Wire Bus) na nizkem nivoju po inicializaciji "1wreset".

Zanima kaj bi bilo to narobe ?

Kot sem že omenil uporabljam Atmega8 mikrokontroler in BASCOM-AVR.

Hvala za odgovor.

Lp

Darko

_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Pet Dec 26, 2008 7:19 pm    Naslov sporočila:   Odgovori s citatom

Poglejte prispevek zgoraj.
_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
matijap
Član
Član



Pridružen-a: Sob 05 Jun 2004 23:24
Prispevkov: 230
Aktiv.: 0.97
Kraj: Žirovnica, LJ

PrispevekObjavljeno: Pet Dec 26, 2008 8:02 pm    Naslov sporočila:   Odgovori s citatom

Pullup upore se veže med podatkovne linije in VCC, zato se mi zdi tvoj stavek, da želiš senzor napajati prek tega upora, malo čuden. Pokaži, kako imaš povezano.

Priporočam ti, da za začetek narediš "two-wire" priklop, torej pripelji napajanje do naprave posebej in ne po podatkovni liniji prek tistega tranzistorja.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Pet Dec 26, 2008 8:09 pm    Naslov sporočila:   Odgovori s citatom

Ja sedaj imam samo pull up upor 4,7k vezan na +5V brez tranzistorja.

Nevme zakaj mi DQ ostane na nizkem nivoju takoj po inicializaciji tudi v primeru ko ni naprave gor.

Ob vklopu mikrokontrolerja se lepo postavi na +5V potem pa ko samo enkrat izvedem komunikacijo mi ostane na 0V kot da bi imel napačno definiran pin za 1-wire komunikacijo.

Lp

Darko

_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
jjakob
Član
Član



Pridružen-a: Pet 19 Nov 2004 14:12
Prispevkov: 1348
Aktiv.: 5.69

PrispevekObjavljeno: Pet Dec 26, 2008 11:00 pm    Naslov sporočila:   Odgovori s citatom

Prilagam en sample program, poleg katerega imaš vse knjižice za uporabo 1-wire in DS18x20, če ti bo kaj pomagalo. V makefile-u popravi MCU ter frekvenco in naloži, pa boš videl če deluje. (potrebuješ edino COM port na PCju in en MAX232, ker program pošilja tekst na UART)

PS: Meni je parasite power 4h senzorjev deloval preko 10k upora. Verjetno moraš stalno spreminjati DDR pina iz vhoda na izhod, da potegne bus na Vcc.



ds18x20_demo.zip
 Opis:

Download
 Ime datoteke:  ds18x20_demo.zip
 Velikost datoteke:  119.7 KB
 Downloadano:  18 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo MSN Messenger - naslov
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Pon Dec 29, 2008 5:59 pm    Naslov sporočila:   Odgovori s citatom

Hello

Nekaj mi nagaja 1-wire komunikacija. Sem gledal na osciloskopu kaj dobim ko dam naslednji ukaz:

1wreset
1wwrite &H33 'Ukaz za read rom.

Začetni del reset pulz in odgovor naprave gre lepo potem pa dobim nenavadno veliko Bytov generiranih iz mikrokontrolerja (napravo sem izključil). Prvi del 11011 ki je ekvivalent H33 je OK in še okoli enih 20 Bytov zleti skos in sploh ne vem če je to normalno.

Namreč naprave mi ne zazna z nobenim ukazom ne dobim nič ven zato sem pomeril z osciloskopom pa me zanima če je prvi del ko mu pošljem ukaz vredu.

Pomoje je preveč enih anomalij zraven.

Hvala za odgovor.

Lp.

Darko

_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Tor Dec 30, 2008 10:03 am    Naslov sporočila:   Odgovori s citatom

READ ROM ukaz:
Najprej pošlji zahtevo (0x33), nato pa je potrebno generirat 64 clockov, na katere senzor odgovarja z 1 ali 0.
Ne vem, ali ti bascom že sam generira tiste clocke ali kaj.... Kako ustaviš izvajanje programa na tistem mestu? Poglej kakšmo assemblersko kodo ti zgenerira prevajalnik oz. poglej navodila za BASCOM.

Očitno je najbolje, če si sam napišeš rutine za 1-Wire komunikacijo.
Aja še to - 1-wire je zelo občutljiv na clock, ker je razlika med 1 ali 0 samo v času (dložini impulza). Preveri, če imaš uro prav nastavljeno.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Tor Dec 30, 2008 11:39 am    Naslov sporočila:   Odgovori s citatom

Pozdravljeni

Sem že ugotovil kaj me je jezilo, uporabljal sem namreč timer0 in prekinitveni program za osveževanje tipk ni ni stekla 1wire komunikacija.

Sedaj sem timer0 odstranil in deluje OK. Ali bi mogoče delovalo s kakšmim drugim timerjem ker bi rad imel sinhrono izvajanje algoritma vsakih 25ms.

Sem slišal, da ima bascom težave z 1Wire komunikacijo če je vključen timer in me zanima če to velja za vse timerje. Trenutno uporabljam uR Atmega8.

Hvala za odgovor.

Darko

_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.88
Kraj: Ljubljana

PrispevekObjavljeno: Tor Dec 30, 2008 11:52 am    Naslov sporočila:   Odgovori s citatom

V Helpu imaš preverjeno delujoče primere. Potrebno je le definirati kam je senzor priključen in hitrost uC-ja.

Citiram:
1wreset
1wwrite &H33 'Ukaz za read rom.

In kaj imaš napisano za tem ?
Odziv (64bitov = 8bitov x 8bytov) je potrebno prebrati z 1wread().
Kaj manjka 1WSEARCHFIRST in 1WSEARCHNEXT ukazom iz Bascoma ?

Daj prilepi cel program in opiši / prilepi shemo HW.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Tor Dec 30, 2008 11:52 am    Naslov sporočila:   Odgovori s citatom

Tik pred vsako 1-wire komunikacijo zamrzneš interrupte (CLI), ko se konča pa spet vklopiš interrupte (STI).
_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2104
Aktiv.: 8.88
Kraj: Ljubljana

PrispevekObjavljeno: Tor Dec 30, 2008 12:08 pm    Naslov sporočila:   Odgovori s citatom

Vidim, da si našel izvor težav.
Bascom ima zakasnitev za 1Wire izvedeno s programsko zanko. Prekinitve spremenijo trajanje zakasnitve. Problematična je lahko katerakoli prekinitev.

aly-jeva rešitev bi morala delovati.
Mislim, da sem nekoč zasledil, da obstaja popravljena knjižnica za 1wire. Ne spomnim se, ali je na voljo na domači strani, ali je od kakšnega drugega avtorja. Malo poišči.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Profesor Einstein
Član
Član



Pridružen-a: Ned 24 Sep 2006 0:13
Prispevkov: 1437
Aktiv.: 6.30
Kraj: Rogaška Sl.

PrispevekObjavljeno: Sre Dec 31, 2008 11:26 am    Naslov sporočila:   Odgovori s citatom

Hvala za odgovore bom poskusil s prekinitvami timerjev pred izvajanjem komunikacije.

Prosil bi mogoče za kakšen testni primer kode, če si je že kdo sam pisal rutine za 1wire v bascomu če je kdo na tak način že delal.

Lep Pozdrav

Darko

_________________
--
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group