Strana 1 z 1

DS2413 komunikacia

Napísané: 15 Sep 2011, 17:50
od používateľa smotek7
ahojte,
nemate niekto kus kodu v bascome ako komunikovat z DS2413
popripade v Cku.
staci ovladanie led.
z datasitu mi to nieje uplne jasne
ani google nepomohol

Napísané: 15 Sep 2011, 18:06
od používateľa jenda23
V bascomu by to šlo, koukni jak komunikujou s DS18B20 todle je dost podobný. Reset, obdržíš potvrzovací puls, pošleš adresu CCh, dál F5h, následně vyčítáš 3 datový bajty, odesíláš reset a obdržíš povrzovák. To je vše. Takže by to mohlo vypoadat nějak takhle

.
.
.
.

1Wreset
1wwrite &HCC
1wwrite &HF5

For I = 1 To 3

ctene_byty(i) = 1wread()

Next

1Wreset


a pokud jich bude víc na sběrnici použiješ instrukci 1wsearch

Napísané: 15 Sep 2011, 18:24
od používateľa smotek7
DS18B20 mam rozchodene, aj viac na jednej zbernici
potreboval by som vedet ake byty poslat ked chcem na tom DS2413
aktivovat vystupi

Napísané: 15 Sep 2011, 19:22
od používateľa jenda23
Na adrese F5h najdeš status pro vstup a na adrese 5Ah sou výstupy...

Napísané: 15 Sep 2011, 19:54
od používateľa smotek7
prave som nasiel toto

'----------------------------------------------------------------------------------
' {$STAMP BS2p}
' {$PBASIC 2.5}

'1-wire Dallas DS2413 Dual addressable switch
'This program reads PIOB state (button) and set PIOA LED accordingly
'4.7K pullup on OWpin
'button with 10k·pullup on DS2413 PIOB (pin 4)
'LED on DS2413 PIOA (pin 6)


OWpin··········· CON·· 15························· ' 1-Wire bus
OW_FERst········ CON·· %0001······················ ' Front-End Reset
OW_BERst········ CON·· %0010······················ ' Back-End Reset
OW_BitMode······ CON·· %0100
OW_HighSpd······ CON·· %1000
PIOR············ CON·· $F5························ ' PIO access read
PIOW············ CON·· $5A························ ' PIO access write
ReadROM········· CON·· $33························ ' read ID, serial num, CRC
MatchROM········ CON·· $55························ ' look for specific device
SkipROM········· CON·· $CC
ON1············· CON·· %11111101·················· ' output 1 ON
ON2············· CON·· %11111110·················· ' output 2 ON
ONF2············ CON·· %00000001·················· ' output 2 OFF
OFF12··········· CON·· %11111111·················· ' output 1 & 2 OFF
MSEC············ CON·· 100························ ' pause
command········· VAR·· Byte······················· ' data sent to DS2413
info············ VAR·· Byte······················· ' data received from DS2413
ButtonState····· VAR·· info.BIT2·················· ' Button state
i··············· VAR·· Nib
' -----[ Main Code ]------------------------------------------------------------
'
DEBUG CLS
DO
· GOSUB Read_data············································ ' read DS2413 DIO-A state
· IF ButtonState = 0 THEN
··· command = ON2
··· ' command = info & ON2
··· GOSUB Write_Data········································· ' write DS2413 DIO-B state
··· DEBUG HOME, "ON ", CR
· ELSE
··· command = OFF12
··· GOSUB Write_Data········································· ' write DS2413 DIO-B state
··· DEBUG HOME, "OFF", CR
· ENDIF
· PAUSE MSEC
LOOP
' -----[ Subroutines ]----------------------------------------------------------
'
Write_Data:
· info=0
· OWOUT OWpin, OW_FERst, [SkipROM, PIOW, command , ~command]· ' send commande
· OWIN OWpin, 0, [info]
· IF info = $AA THEN········································· ' get confirmation byte
··· DEBUG "confirmation... ", "ACK: ", HEX info
· ELSEIF info = $FF THEN
··· DEBUG "confirmation... ", "NAK: ", HEX info
· ELSE
··· DEBUG "confirmation... ", "???: ", HEX info
· ENDIF
· info=0
· OWIN OWpin, OW_BERst, [info]······························· ' get PIO status
· DEBUG "··· Status: ", BIN4 info, CR
RETURN
Read_data:
· info=0
· OWOUT OWpin, OW_FERst, [SkipROM, PIOR]····················· ' send PIO ACCESS READ
· OWIN OWpin, OW_BERst, [info]······························· ' get PIO status
RETURN
'-----------------------------------------------------------------------------------

niesom si isty ci chapem dobre tento riadok
OWOUT OWpin, OW_FERst, [SkipROM, PIOW, command , ~command]

moze to byt takto

1wreset
1wwrite &HCC
1wwrite &H5A
1wwrite &%11111101 naprikald ked chcem zapat jeden pin
dalej mi neni jasne co je ~command
OWIN by mal bit asi prijem
cize
premenna = 1wread (1)

nasledne ten test ci to prebehlo OK

otestovat to este neviem lebo mi DS nedorazil
len si to chcem nachystat aby som potom netapal

Re: DS2413 komunikacia

Napísané: 24 Sep 2011, 00:25
od používateľa smotek7
trochu ma to vytrapilo ale takto mi to funguje

1wreset
1wwrite &HCC
1wverify Dsid4(1)
1wwrite &H5A
1wwrite &B11111100
1wwrite &B00000011
Info = 1wread(1)
1wreset