 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pon Jul 11, 2011 8:05 am Naslov sporočila: |
|
|
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 |
|
 |
robika Član

Pridružen-a: Pon 05 Apr 2004 20:55 Prispevkov: 281 Aktiv.: 1.19 Kraj: ajdovščina
|
Objavljeno: Pon Jul 11, 2011 9:09 am Naslov sporočila: |
|
|
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.
Opis: |
|
 Download |
Ime datoteke: |
topologijaDS1820.JPG |
Velikost datoteke: |
16.83 KB |
Downloadano: |
48 krat |
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.92 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Jul 11, 2011 2:00 pm Naslov sporočila: |
|
|
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 |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3361 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Pon Jul 11, 2011 3:23 pm Naslov sporočila: |
|
|
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 |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pon Jul 11, 2011 4:46 pm Naslov sporočila: |
|
|
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 |
|
 |
Highlag Član


Pridružen-a: Pet 23 Jan 2004 20:42 Prispevkov: 4034 Aktiv.: 17.02 Kraj: Črnuče
|
Objavljeno: Pon Jul 11, 2011 6:05 pm Naslov sporočila: |
|
|
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 |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Pon Jul 11, 2011 6:32 pm Naslov sporočila: |
|
|
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 |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.70 Kraj: Kranj - struževo
|
Objavljeno: Pon Jul 11, 2011 7:04 pm Naslov sporočila: |
|
|
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  |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.92 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Jul 11, 2011 7:45 pm Naslov sporočila: |
|
|
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 |
|
 |
Krampus Član



Pridružen-a: Pon 08 Sep 2008 13:07 Prispevkov: 1853 Aktiv.: 9.07
|
Objavljeno: Pon Jul 11, 2011 7:59 pm Naslov sporočila: |
|
|
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 |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Tor Jul 12, 2011 8:04 am Naslov sporočila: |
|
|
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 |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.61 Kraj: Trzic
|
Objavljeno: Tor Jul 12, 2011 12:55 pm Naslov sporočila: |
|
|
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 |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.92 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Jul 12, 2011 2:33 pm Naslov sporočila: |
|
|
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 |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.78 Kraj: Mengeš
|
Objavljeno: Tor Jul 12, 2011 4:38 pm Naslov sporočila: |
|
|
Aha...sorry, površno branje.
|
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3361 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Pon Jul 18, 2011 5:34 pm Naslov sporočila: |
|
|
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
Opis: |
|
 Download |
Ime datoteke: |
Dallas.doc |
Velikost datoteke: |
346.5 KB |
Downloadano: |
89 krat |
|
|
Nazaj na vrh |
|
 |
|
|
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
|