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 

DS18S20 64-bit rom branje

 
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
M473Y
Neznanec
Neznanec



Pridružen-a: Tor 18 Mar 2008 15:51
Prispevkov: 9
Aktiv.: 0.04
Kraj: Škofja Loka

PrispevekObjavljeno: Sre Jun 11, 2008 7:56 am    Naslov sporočila:  DS18S20 64-bit rom branje Odgovori s citatom

Pozdrav.
Ne gre in ne gre mi. uspešno prebiram temperaturo iz enega senzorja s komando skip rom search, ampak ko pa želim uporabiti še dodatne senzorje, pa mi ne gre pri branju 64-bit rom podatka. bega me CRC check.
imam 89C4051, multipleksirani štirje 7-seg (izpis je npr 22°C) in program Bascom.
nekje sem videl da se more izdelati neka CRC tabela....

Zahvaljujem se za pomoč.
Matej
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.70
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Jun 11, 2008 10:33 am    Naslov sporočila:   Odgovori s citatom

Priključi en sam senzor.
Pošlji mu ukaz READ_ROM in preberi vse kar ti pošlje. To shrani.
Ponovi za vse senzorje.
Ko jih priključiš skupaj, samo pošlješ ukaz MATCH_ROM in podatke enega senzorja, ki si jih prej prebral. S tem izbereš en sam senzor v verigi.

CRC check rabiš samo, če želiš preverjati prebrane podatke iz 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
M473Y
Neznanec
Neznanec



Pridružen-a: Tor 18 Mar 2008 15:51
Prispevkov: 9
Aktiv.: 0.04
Kraj: Škofja Loka

PrispevekObjavljeno: Sre Jun 11, 2008 10:39 am    Naslov sporočila:   Odgovori s citatom

@Aly
hvala za odgovor. mi je v veliko pomoč.

Matej
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.70
Kraj: Kranj - struževo

PrispevekObjavljeno: Sre Jun 11, 2008 11:13 am    Naslov sporočila:   Odgovori s citatom

Še enkrat sem prebral datasheet.
Za ReadRom ukazom prebereš 64 bitov. V tem notri je CRC, družina in serijska. Ampak ta razdelitev te ne zanima - uporabiš samo cel komplet 64 bitov.
Ta CRC se itak ne spreminja.

Za ukazom MatchRom mu pošlješ vseh 64 bitov, kot si jih prej prebral in s tem posluša en sam senzor.

Drug tip CRCja pa je v SCRATCHPAD-u, ta se dinamično spreminja v odvisnosti od podatkov, ki so trenutno v tej tabeli. Če te zanima, če si pravilno prebral vse podatke, prebereš še CRC in ga primerjaš s svojim izračunanim. Sicer pa prebereš samo temperaturo in ostalo ignoriraš.

_________________
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
vilko
Član
Član



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

PrispevekObjavljeno: Sre Jun 11, 2008 2:02 pm    Naslov sporočila:  Primer izračuna CRC8 bajta Odgovori s citatom

Crc8 je prijetna metoda preverjanja formalne pravilnosti nekega podatka, no, nič ni perfektno, kar človek naredi. Crc8 statistično od 256 napačnih telegramov, prizna enega za pravilnega.

BascomAvr ima že kar ukaz Crc8.
Bascom8051 pa je potrebno to naštrikati.
Prilagam vzorec.



crc1.zip
 Opis:

Download
 Ime datoteke:  crc1.zip
 Velikost datoteke:  925 Bytov
 Downloadano:  33 krat


_________________
Nihče ni za vojno in vsi so za mir,
vsi so za bratstvo, nihče za prepir.
Od same ljubezni vsak čas na granatah
bo vtisnjeno geslo: "Darilo za brata"
Janez Menart
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
jani18
Član
Član



Pridružen-a: Sob 18 Sep 2010 10:22
Prispevkov: 133
Aktiv.: 0.74
Kraj: Ojstri Vrh

PrispevekObjavljeno: Čet Okt 21, 2010 6:04 pm    Naslov sporočila:   Odgovori s citatom

Tudi jaz poizkušam priključiti 2 senzorja na isto vodilo ugotovil sem njun rom
vendar pa sedaj ne znam poklicati enega od dveh senzorjev.
Uporabljam pa AT89C4051 in BASCOM-8051.

Prosim za pomoč

Hvala
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



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

PrispevekObjavljeno: Čet Okt 21, 2010 7:35 pm    Naslov sporočila:   Odgovori s citatom

Imaš naslov od obeh skupaj ali si dobil naslov vsakega posebej?

Če priklopiš oba hkrati in vprašal kdo, sta odgovorita oba hkrati, in dobljen naslov je sestavljen iz naslovov obeh. Poklicati pa s tistim naslovom ne moreš nobenega.

_________________
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
jani18
Član
Član



Pridružen-a: Sob 18 Sep 2010 10:22
Prispevkov: 133
Aktiv.: 0.74
Kraj: Ojstri Vrh

PrispevekObjavljeno: Čet Okt 21, 2010 9:05 pm    Naslov sporočila:   Odgovori s citatom

Naslov sem pridobil od vsakega posebej saj sem takrat ko sem bral naslov
na vodilo imel priključen le po en senzor.
Moja težava je da sem začetnik v programiranju in ne poznam dovolj dobro
sintakse. Potreboval bi pomoč pri tem kako na vodilo pošljem naslov, ki sem ga
odčital, tako da se mi bo javil samo določeni senzor.

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



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

PrispevekObjavljeno: Čet Okt 21, 2010 9:38 pm    Naslov sporočila:   Odgovori s citatom

Postopek je sledeč:

Najprej pošlješ ukaz za reset linije
nato pošlješ ukaz za izbiro naslova $55
nato pošlješ naslov čipa (pazi, da je pravilno obrnjen)
Nato pošlješ ukaz za read scratch pad $BE
in prebereš temperaturo
V datasheetu za čip lepo piše kako gre postopek točno.

Nimam bascoma zato ne morem pripet kode.

Koda:

Sub procedure get_temp (dim vrstica, stolpec as byte)
88: Ow_Write(DS_port, DS_pin, $BE) 'read scratchpad
89: for i=0 to 8
90: x = ow_read(DS_port, DS_pin)
91: scratch[i] = x ' prebere 9 bajtov podatkov senzorja
92: next i
93: a= scratch[1] ' predznak temperature
94: if a=0 then
95: lcd_chr(vrstica,stolpec,"+")
96: else
97: lcd_chr(vrstica,stolpec,"-")
98: end if
99:
100: a=scratch[0]
101: if a.0 = 0 then 'bit 0 = decimalna vrednost temp.
102: decimalka = "0"
103: else
104: decimalka = "5"
105: end if
106: a = scratch[0] >>1 ' Vsebino premakne za 1 mesto v desno
107: senzor[vrstica] = a ' da se odstrani vrednost decimalke
108: ByteToStr(a,temperatura) ' pretvori vrednost za prikaz na LCD
109: lcd_out_cp( temperatura)
110: Lcd_Chr_CP(",")
111: Lcd_Chr_CP(decimalka)
112: end

Koda:

while true ' Pripravi senzorje za merjenje
137: Ow_Reset(DS_port, DS_pin) ' Reset ds1820
138: Ow_Write(DS_port, DS_pin, $CC) ' skip rom ds1820
139: Ow_Write(DS_port, DS_pin, $44) ' pretvorite temperaturo
140: Delay_ms(500)
141:
142: Ow_Reset(DS_port, DS_pin)
143: Ow_Write(DS_port, DS_pin, $55) ' match rom ds1820 za senzor 1
144: for i=0 to 7
145: b = serial_1[i]
146: Ow_Write(DS_port, DS_pin, b) ' pošlje serijsko št. senzorja 1
147: delay_ms(10)
148: next i
149: get_temp(1,11) ' prebere temperaturo z senzorja 1
150:
151: Ow_Reset(DS_port, DS_pin)
152: Ow_Write(DS_port, DS_pin, $55) ' match rom ds1820 za senzor 2
153: for i=0 to 7
154: b = serial_2[i]
155: Ow_Write(DS_port, DS_pin, b) ' pošlje serijsko št. senzorja 2
156: delay_ms(10)
157: next i
158: get_temp(2,11) ' prebere temperaturo z senzorja 2


Takole gre to v mikrobasicu.

_________________
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
jani18
Član
Član



Pridružen-a: Sob 18 Sep 2010 10:22
Prispevkov: 133
Aktiv.: 0.74
Kraj: Ojstri Vrh

PrispevekObjavljeno: Pet Okt 22, 2010 8:12 am    Naslov sporočila:   Odgovori s citatom

Delaaaaaaa! Dancing
Tvoja koda mi je bila v pomoč prebrskal pa sem tudi help bascoma in pregledal nekaj podobnih programov in ugotovil kako poteka naslavlanje enega Dallasa 1820 na vodilu na katerem sta dva ali več.

hvala za pomoč

Lp
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
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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group