Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Profesor Einstein Član


Pridružen-a: Ned 24 Sep 2006 0:13 Prispevkov: 1437 Aktiv.: 6.30 Kraj: Rogaška Sl.
|
Objavljeno: Pet Dec 26, 2008 12:24 am Naslov sporočila: Inicializacija naprave na 1-wire povezavi |
|
|
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
Opis: |
|
Velikost datoteke: |
54.38 KB |
Pogledana: |
23 krat |

|
_________________ --
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain) |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.62 Kraj: Trzic
|
Objavljeno: Pet Dec 26, 2008 12:29 am Naslov sporočila: |
|
|
Po tem, ko oddaš reset pulz, preveri če se je naprava oglasila.
_________________ Lp,
Matevž |
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
|
Nazaj na vrh |
|
 |
Profesor Einstein Član


Pridružen-a: Ned 24 Sep 2006 0:13 Prispevkov: 1437 Aktiv.: 6.30 Kraj: Rogaška Sl.
|
Objavljeno: Pet Dec 26, 2008 1:39 am Naslov sporočila: 1-Wire Komunikacija |
|
|
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 |
|
 |
Profesor Einstein Član


Pridružen-a: Ned 24 Sep 2006 0:13 Prispevkov: 1437 Aktiv.: 6.30 Kraj: Rogaška Sl.
|
Objavljeno: Pet Dec 26, 2008 7:19 pm Naslov sporočila: |
|
|
Poglejte prispevek zgoraj.
_________________ --
"Če bi volitve kaj pomagale, bi jih prepovedali." (Mark Twain) |
|
Nazaj na vrh |
|
 |
matijap Član

Pridružen-a: Sob 05 Jun 2004 23:24 Prispevkov: 230 Aktiv.: 0.97 Kraj: Žirovnica, LJ
|
Objavljeno: Pet Dec 26, 2008 8:02 pm Naslov sporočila: |
|
|
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 |
|
 |
Profesor Einstein Član


Pridružen-a: Ned 24 Sep 2006 0:13 Prispevkov: 1437 Aktiv.: 6.30 Kraj: Rogaška Sl.
|
Objavljeno: Pet Dec 26, 2008 8:09 pm Naslov sporočila: |
|
|
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 |
|
 |
jjakob Član

Pridružen-a: Pet 19 Nov 2004 14:12 Prispevkov: 1348 Aktiv.: 5.69
|
Objavljeno: Pet Dec 26, 2008 11:00 pm Naslov sporočila: |
|
|
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.
Opis: |
|
 Download |
Ime datoteke: |
ds18x20_demo.zip |
Velikost datoteke: |
119.7 KB |
Downloadano: |
18 krat |
|
|
Nazaj na vrh |
|
 |
Profesor Einstein Član


Pridružen-a: Ned 24 Sep 2006 0:13 Prispevkov: 1437 Aktiv.: 6.30 Kraj: Rogaška Sl.
|
Objavljeno: Pon Dec 29, 2008 5:59 pm Naslov sporočila: |
|
|
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 |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Tor Dec 30, 2008 10:03 am Naslov sporočila: |
|
|
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  |
|
Nazaj na vrh |
|
 |
Profesor Einstein Član


Pridružen-a: Ned 24 Sep 2006 0:13 Prispevkov: 1437 Aktiv.: 6.30 Kraj: Rogaška Sl.
|
Objavljeno: Tor Dec 30, 2008 11:39 am Naslov sporočila: |
|
|
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 |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
Objavljeno: Tor Dec 30, 2008 11:52 am Naslov sporočila: |
|
|
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 |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Tor Dec 30, 2008 11:52 am Naslov sporočila: |
|
|
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  |
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
Objavljeno: Tor Dec 30, 2008 12:08 pm Naslov sporočila: |
|
|
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 |
|
 |
Profesor Einstein Član


Pridružen-a: Ned 24 Sep 2006 0:13 Prispevkov: 1437 Aktiv.: 6.30 Kraj: Rogaška Sl.
|
Objavljeno: Sre Dec 31, 2008 11:26 am Naslov sporočila: |
|
|
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 |
|
 |
|