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 

Bascom Avr i DS1820 + DS18B20 na 1wire mreži
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.78
Kraj: Mengeš

PrispevekObjavljeno: Pon Jul 11, 2011 8:05 am    Naslov sporočila:   Odgovori s citatom

Ravno mi je prišlo na misel: Praviš da v bascomu ni možno vplivati na timing...torej bi bilo smiselno zvedeti od tistih, ki jim DELUJE ali imajo kodo spisano v asemblerju, C-ju ali Bascomu...upajmo da to ni ena od omejitev bascoma---število senzorjev namreč...
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
robika
Član
Član



Pridružen-a: Pon 05 Apr 2004 20:55
Prispevkov: 281
Aktiv.: 1.19
Kraj: ajdovščina

PrispevekObjavljeno: Pon Jul 11, 2011 9:09 am    Naslov sporočila:   Odgovori s citatom

Pri meni je povazava 3 žilna ( + , data , - ). Delalo je z uC-ji 89C4051, atMega8 zdaj pa na atMega128. Na atMega8/128 vedno pri frekvenci oscilatorja 8MHz (interni oscilator). Izgled UTP mreže za 1wire pa je v priponki.


topologijaDS1820.JPG
 Opis:

Download
 Ime datoteke:  topologijaDS1820.JPG
 Velikost datoteke:  16.83 KB
 Downloadano:  48 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Jul 11, 2011 2:00 pm    Naslov sporočila:   Odgovori s citatom

vilko je napisal/a:



Po programiranem postopku program zahteva priklop termometra na bus. Najprej prvega, potem drugega in tako naprej. Z 1wirecount ukazom ugotavlja, koliko termometrov je že na busu. Ko ugotovi, da je dodan nov termometer, pobere njegov id in ga da v eeprom. ....
.


Procedura indifikacije senzorjev na vodilu je dokaj zahtevna. Nekoč sem se je lotil pisat. Ko sem ugotovil, da bo vsega skoraj toliko kot dejansko "koristne" kode sem zadevo opustil. Programsko indifikacijo sem senzorjev sem reševal na dva načina. Naredil sem poseben vhod za indifikacijo senzorja oz sem s pomočjo jumperja odklopil senzorje obstoječega vodila ter obstoječo vodilo uporabil za indifikacijo.
Najboljša varianta pa je vsak senzor dati na svoj pin. Recimo za deset senzorjev itak potrebuješ kar velik mikrokontroler z dovolj eeproma. Tak bo imel tudi pinov dovolj. Če je vsak senzor na svojem vodilu si prihranil precej programske kode, ter procesorskega časa. Prav tako si se izognil težavi v primeru okvare enega senzorja na vodilu. Prav tako ni težav v primeru menjave senzorjev.
Tale 64bitni unikatni ID senzroja po moje ni najprimernejša rešitev. Bolje bi bilo, da bi ga uporabnik lahko sam numeriral. V tem primeru bi bila več kot dovolj 8 bitna vrednost. Imam občutek, da se senzorji največ uporabljajo v hobi projektih. V svoji praksi še nisem naletel na industrijsko aplikacijo narejeno s tem senzorjem. Sploh se ne bi čudil, če bo kar na enkrat šel iz proizvodje, kot recimo DS1620.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3361
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Pon Jul 11, 2011 3:23 pm    Naslov sporočila:   Odgovori s citatom

Obupal sem:
V programu imam proceduro, ki se starta po potrebi, kadar je potrebno razpoznavanje termometrov in je pisana tako, da ni nujno program, ki pomaga programu razpoznati termometre. V proceduri imam ukaz 1wirecount, ki da število priklopljenih termometrov. A ta ukaz, po mojem, v neki situaciji ne dela, ne da prave informacije o številu termometrov, Šel sem kupit nove termometre, in probal z novim - ista stvar.
Sem se odločil, da odstranim to proceduro in idenitifikacije termometrov dam kar v program v obliki Data stavkov.

Sedaj termometri delajo, in se mi ni treba ubadati z njimi, temveč z logiko upravljanja centralne kurjave.

Nota bene: Na mizi mi je procedura delala brez problemov, a termometri so seveda bili drugi. Ko bom imel čas, bo proceduro predelal tako, da v njej ne bo 1wirecount ukaza.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.78
Kraj: Mengeš

PrispevekObjavljeno: Pon Jul 11, 2011 4:46 pm    Naslov sporočila:   Odgovori s citatom

Mogoče bi naredil tako da bi imel na enem pinu vse senzorje med delovanjem, na drugem pa bi naredil proceduro samo za branje novih. Tako bi v primeru menjave senzorja branje izvedel ločeno od ostalih. Senzor bi na tem pinu prečital, potem pa bi ga dal tja, kamor sodi...tako bi porabil samo dva pina.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 17.02
Kraj: Črnuče

PrispevekObjavljeno: Pon Jul 11, 2011 6:05 pm    Naslov sporočila:   Odgovori s citatom

Pa je to sploh možno? Ker če se vsi senzorji naenkrat oglasijo po poizvedbi dobljena koda ni podobna ničemur.
_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.78
Kraj: Mengeš

PrispevekObjavljeno: Pon Jul 11, 2011 6:32 pm    Naslov sporočila:   Odgovori s citatom

Mislim da nisi razumel... Mislim takole:na enem pinu so vsi senzorji in sistem deluje. Ko en umre, greš v nastavitveno rutino, ki gleda DRUG pin, kjer med normalnim delovanjem ni nič. Tja vtakneš nov senzor in rutina ga prebere ter zapiše njegovo kodo v eeprom. Potem ta novo spoznani senzor zalotaš tja, kjer je prejnji umrl.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
aly
Član
Član



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

PrispevekObjavljeno: Pon Jul 11, 2011 7:04 pm    Naslov sporočila:   Odgovori s citatom

1-wire count procedura v neki osnovni obliki niti ne obstaja.
Sumim, da so v Bascomu uporabili Search rutine, ampak procedura ne vrne ROM-ID-jev, čeprav jih je prebrala, amapk samo število le-teh. Potem moraš pa še enkrat poganjati Search rutino.

Zato menim, da je bolje narediti While zanko, v kateri kličeš 1wireSearch, dokler ta ne neha vračati pravilnih rezultatov. S tem dobiš in vse ROM številke in tudi število senzorjev.

Če pa se uporabi protoncek-ovo idejo, ki pa tudi ni napačna, uporabiš samo Read-ROM funkcijo (glej datasheet od senzorja).

_________________
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
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Pon Jul 11, 2011 7:45 pm    Naslov sporočila:   Odgovori s citatom

protoncek je napisal/a:
Mislim da nisi razumel... Mislim takole:na enem pinu so vsi senzorji in sistem deluje. Ko en umre, greš v nastavitveno rutino, ki gleda DRUG pin, kjer med normalnim delovanjem ni nič. Tja vtakneš nov senzor in rutina ga prebere ter zapiše njegovo kodo v eeprom. Potem ta novo spoznani senzor zalotaš tja, kjer je prejnji umrl.


Sam delam tako. Točno to sem zapisal par sporočil višje.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Krampus
Član
Član



Pridružen-a: Pon 08 Sep 2008 13:07
Prispevkov: 1853
Aktiv.: 9.07

PrispevekObjavljeno: Pon Jul 11, 2011 7:59 pm    Naslov sporočila:   Odgovori s citatom

Jaz imam za šest senzorjev narejeno tako, da sprožim rutino na prepoznavanje senzorjev po vrsti.
Odklopim vse senzorje in jih po korakih priklaplajam enega po enega, vedno enega naenkrat.
Ko so vsi prepoznani priklopim vse.
Ni se mi dalo bolj komplicirati, ker je vsak senzor pripeljan po svojem kablu do vtičnice.
Kot priključek je vtičnica RJ11 s štirimi pini in telefonski ploščati kabel. Napajen je na kablu, in NE parazitno.
Senzorji so na različno dolgih kablih, od 2 - 17 m.
Zadeva deluje od lanske jeseni brez napak.
Na displeju 2 x 20 prikazujem vseh šest temperatur istočasno (recimo).

_________________
Nisem ravno najbolj pameten na svetu, tu in tam pa imam kakšno idejo.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.78
Kraj: Mengeš

PrispevekObjavljeno: Tor Jul 12, 2011 8:04 am    Naslov sporočila:   Odgovori s citatom

Silvo, če te prav razumem ti delaš tako, da daš vsak senzor na svoj pin. To je definitivno najboljša varianta, se strinjam. Jaz sem sicer mislil da so vsi (delujoči) na enem, samo razpoznavanje novega bi potekalo na drugem pinu, samo za čas razpoznavanja. Tako se tudi izogneš dejstvu, da moraš v primeru menjave izklopiti VSE senzorje in ponovno priklapljati enega za drugim. Ajd, če so na konektorju, OK. kaj pa če so nalotani?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
NeoTO
Član
Član



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

PrispevekObjavljeno: Tor Jul 12, 2011 12:55 pm    Naslov sporočila:   Odgovori s citatom

Najbolj praktično je, da vsak senzor priklopiš na svoj pin. Ni problem v razpoznavanju števila senzorjev ter njihovih kod, če jih imaš vse priljučene na eno vodilo, problem je v tem, da te 64-bitne kode niso zapisane tudi na njihovih ohišjih. Tako ne moreš vedeti, kateri senzor je kateri...
_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14673
Aktiv.: 61.92
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Tor Jul 12, 2011 2:33 pm    Naslov sporočila:   Odgovori s citatom

protoncek je napisal/a:
Silvo, če te prav razumem ti delaš tako, da daš vsak senzor na svoj pin. To je definitivno najboljša varianta, se strinjam. Jaz sem sicer mislil da so vsi (delujoči) na enem, samo razpoznavanje novega bi potekalo na drugem pinu, samo za čas razpoznavanja. Tako se tudi izogneš dejstvu, da moraš v primeru menjave izklopiti VSE senzorje in ponovno priklapljati enega za drugim. Ajd, če so na konektorju, OK. kaj pa če so nalotani?


Silvo je napisal/a:



Procedura indifikacije senzorjev na vodilu je dokaj zahtevna. Nekoč sem se je lotil pisat. Ko sem ugotovil, da bo vsega skoraj toliko kot dejansko "koristne" kode sem zadevo opustil. Programsko indifikacijo sem senzorjev sem reševal na dva načina. Naredil sem poseben vhod za indifikacijo senzorja oz sem s pomočjo jumperja odklopil senzorje obstoječega vodila ter obstoječo vodilo uporabil za indifikacijo.
Najboljša varianta pa je vsak senzor dati na svoj pin. Recimo za deset senzorjev itak potrebuješ kar velik mikrokontroler z dovolj eeproma. Tak bo imel tudi pinov dovolj. Če je vsak senzor na svojem vodilu si prihranil precej programske kode, ter procesorskega časa. Prav tako si se izognil težavi v primeru okvare enega senzorja na vodilu. Prav tako ni težav v primeru menjave senzorjev.
Tale 64bitni unikatni ID senzroja po moje ni najprimernejša rešitev. Bolje bi bilo, da bi ga uporabnik lahko sam numeriral. V tem primeru bi bila več kot dovolj 8 bitna vrednost. Imam občutek, da se senzorji največ uporabljajo v hobi projektih. V svoji praksi še nisem naletel na industrijsko aplikacijo narejeno s tem senzorjem. Sploh se ne bi čudil, če bo kar na enkrat šel iz proizvodje, kot recimo DS1620.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 42.78
Kraj: Mengeš

PrispevekObjavljeno: Tor Jul 12, 2011 4:38 pm    Naslov sporočila:   Odgovori s citatom

Aha...sorry, površno branje.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
vilko
Član
Član



Pridružen-a: Pet 13 Feb 2004 10:26
Prispevkov: 3361
Aktiv.: 14.18
Kraj: Dragomer

PrispevekObjavljeno: Pon Jul 18, 2011 5:34 pm    Naslov sporočila:   Odgovori s citatom

Veliko je bilo vprašanj in dogovorov na temo Dallas in Bascom.
V pripetem dokumentu so moje izkušnje in recepti. Ne vse, a dovolj za delo.

VS



Dallas.doc
 Opis:

Download
 Ime datoteke:  Dallas.doc
 Velikost datoteke:  346.5 KB
 Downloadano:  89 krat

Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> AVR, LPC900, x51 Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
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: 495 dni


Powered by phpBB © 2001, 2005 phpBB Group