Sida 11 av 13

Postat: 5 september 2005, 09:47:13
av benring
Gomorron på er:)

Jag har testat att få ut serienr och verkade lyckas, (10) (872C9F08040) (40)

där 10 är familycode (enligt tabell), sen e det serienr och sist CRC.

jag har bara en sensor så det där me search rom får jag vänta med.


just nu så vill jag få till 2 saker:

1. få en bättre upplösning på tempen, 0,5 grader går inte så bra.
2. få till en läsning av temp MED ROM-ID

hur skickar jag den 64 bitars koden? ska jag sända in 8 bytes 8 ggr? På samma sätt som jag läser den men åt andra hållet?



/B

Postat: 5 september 2005, 11:02:02
av sodjan
Aha, så var det alltså ! Man skickar FF till DS2480B för varje byte man vill läsa tillbaka. Vad skönt att få det klart... :-)

Det är väll "Match ROM" (h'55') du skall använda för att "adressera" en speciell tempgivare.

"DS18S20 OPERATION EXAMPLE 1" stämmer väll överens på det...

> "i databladet för ds18s20 på sid 5 "OPERATION MEASURING TEMPERATURE" så ser man en uträkning. Kan nån kolla på den och tala om hur jag ska göra?"

Varför inte helt enkelt göra som det står i databladet ?? :-)

Värderna du behöver finns i scratchpadden (som du ju nu kan läsa), och formeln finns i databladet...

Postat: 5 september 2005, 11:11:02
av benring
Ja det e skönt o få det klart:)

Japp, h55 e det. vilket jag gör men får det inte att lira riktigt.
Efter en "match rom" så ska man skicka med den 64 bitars serienr, detta skall göras med familycode först verkar det som. Man skickar in dom 8 bitarna efter varann.

därefter skall man konvertera (convert_t) och få tempen men där går det fel.

>>"DS18S20 OPERATION EXAMPLE 1" stämmer väll överens på det...
Denna hittar jag inte, vilken sida?


Ang tempen så har jag gjort som det står men det blir ju fel, alltså behöver jag hjälp med uträkningen...

värdena har jag.

Postat: 5 september 2005, 11:22:52
av sodjan
> "Man skickar in dom 8 bitarna efter varann. "

De 8 **byte'en** !

> "Denna hittar jag inte, vilken sida? "

Ursäkta :-) DS18s20, sid 18.

>"Ang tempen så har jag gjort som det står men det blir ju fel, alltså behöver jag hjälp med uträkningen... värdena har jag."

*Vilken* hjälp ???
Vad blir fel ?
Har du provat "på papper" med en miniräknare med de värden du får ?

Postat: 5 september 2005, 11:32:28
av benring
Sorry, byten ska det va:)

Det blir enklare om vi riktar in oss på en sak i taget tror jag, tempens upplösning kan vänta:)

Ang att få ut tempen när jag kör med den 64 bitars lasered code e inte så lätt.

jag gör så här:

Läser in (64 bit)rom:en vid start så jag har den lagrad, den kommer in åt fel håll så jag vänder den när den skickas.
Jag har denna kod:


PULLUP_524
RESET_C1
DATAMODE_E1

'SKIPROM (ENDAST SINGEL SENSOR)

'*****************
MATCHROM_55
COMMANDMODE_E3 (DESSA ÄR FÖR ATT KÖRA MED ROM)
For i = 0 To 7 (OCH SKICKAS EN ÅT GÅNGEN)
SENDROM (i)
Next
'******************

COMMANDMODE_E3
ARM_STRONG_PULLUP
TERMINATE_PULSE_EF
DATAMODE_E1
CONVERT_T

WAIT_76

COMMANDMODE_E3
DISARM_STRONG_PULLUP
TERMINATE_PULSE_EC
RESET_C1

DATAMODE_E1

'SKIPROM (ENDAST SINGEL SENSOR)

'**********************
MATCHROM_55
COMMANDMODE_E3
For i = 0 To 7
SENDROM (i)
Next
DATAMODE_E1
'*********************
For i = 1 To 10
READ_SCRATCHPAD (i)

Next

COMMANDMODE_E3
RESET_C1
'*************************

Den är identisk förutom att "SKIPROM" är ersatt med det innanför asterixen

Dessa "DATAMODE" och "COMMANDMODE" är jag inte säker på hur dom funkar riktigt. Det är kod för DS2480´n

Koden ovan ger mig 123 grader varmt:)

Postat: 5 september 2005, 12:17:39
av benring
Har nu läst i ds2480-bladet om "search rom" och jag förstår nu varför folk överlag inte vill använda den funktionen, den är ju hur krånglig som helst!


Vi har ju löst sakerna hittils och kanske kan vi lösa detta med?

/B

Postat: 5 september 2005, 13:04:46
av sodjan
> "Läser in (64 bit)rom:en vid start så jag har den lagrad, den kommer in åt fel håll så jag vänder den när den skickas. "

Hm, kommer den inte in med family code först och CRC sist ? Du skrev så i alla fall...
Och den skall väll skickas tillbaka på samma sätt (med CRC sist) ?
Vad menar du med att "vända den " ?

> "Dessa "DATAMODE" och "COMMANDMODE" är jag inte säker på hur dom funkar riktigt."

"Command mode" är väll "kommandon" som DS2480B *själv* tar hand om.

Det som skickas i "Data mode" skickas direkt vidare på 1-Wire bussen (utom 2-3 koder för att t.ex switcha tillbaka till "Command mode", så klart).

Postat: 5 september 2005, 13:14:59
av benring
Jo, den kommer in me familycode först men skickar jag tillbaka den lika så blir det helt galet, dvs det funkar inte alls.

vända mena ja me att skicka dom 3 olika delarna omvänt, 10 sist och crc först.

Om man kollar bladet för 2480 så ska man tydligen skicka BITARNA en o en för att matcha dom en o en, det ska iaf repeteras 64 ggr, 0-63.
Läs D-B för 2480: "SEARCH ACCELERATOR INTRODUCTION" sid 8.

/B

Postat: 5 september 2005, 13:31:54
av sodjan
> vända mena ja me att skicka dom 3 olika delarna omvänt, 10 sist och crc först.

> "Om man kollar bladet för 2480 så ska man tydligen skicka BITARNA en o en för att matcha dom en o en, det ska iaf repeteras 64 ggr, 0-63.
Läs D-B för 2480: "SEARCH ACCELERATOR INTRODUCTION" sid 8.

Ja, jo, men du måste hålla isär vad du skall göra i VB koden, och vad DS2480 gör.

VB koden skickar aldrig några bitar en och en, det gör DS2480. VB skickar alltid *bytes*.

"Search Accelerator" är, så vitt jag kan förstå, ett sätt att identifiera 1-Wire enheter.

Om du redan har ROM koden till din DS18s20, så behöver väll du inte köra "Search Accelerator" !? Är det inte bara att använda "Match ROM" med den ROM code som du redan har ?

> "vända mena ja me att skicka dom 3 olika delarna omvänt, 10 sist och crc först."

Låter väldigt konstigt. Jag har aldrig varit med om att CRC'n skickas *först* !!

Postat: 5 september 2005, 13:35:59
av benring
JAg har romkoden bara för att jag körde en read-rom (h'33') och detta kan jag inte köra om jag har flera, inte på ett enkelt vis, man måste hålla på me massa trix för att ta reda på alla koder.

Men om man nu börjar me att försöka använda den jag nu har för att få till läsningen föst så:

Jag kör ju en match rom och efter det skickar jag 8 bytes, en byte per gång.

detta blir knas, ska testa vidare men me crc sist.

/B

Postat: 5 september 2005, 13:38:25
av sodjan
Verkar klokt att försöka på "Match ROM" att fungera först innan man ger sig i kast med andra funktioner...

Postat: 5 september 2005, 19:32:00
av benring
Så här kan det iaf se ut på webben med en DS2480B + DS18s20 :)

http://tempsens.dyndns.org:8080

(om länken inte funkar så jobbar jag med dom övriga nötterna som jag ska knäcka, testa igen lite senare i så fall:) )

Postat: 6 september 2005, 13:39:54
av benring
Hej igen... jag lyckas inte med "MATCH ROM".

Jag har läst ut ROM ID (64 bitars koden) från DS18s20 och ska nu använda den till att anropa sensorn, detta går inte.

Jag får ju svar tillbaka men vet juinte om dom är rätt.

Ingen som gjort detta förr??

Nu skickar jag med romID så här:
MSComm1.Output = Chr(&H10) & Chr(&H87) & Chr(&H2C) & Chr(&H9F) & Chr(&H0) & Chr(&H8) & Chr(&H0) & Chr(&H40)

Detta funkar inte heller....


Inte detta heller:
MSComm1.Output = Chr(&H40) + Chr(&H0) + Chr(&H8) + Chr(&H0) + Chr(&H9F) + Chr(&H2C) + Chr(&H87) + Chr(&H10)

/B

Postat: 6 september 2005, 15:48:43
av sodjan
> "Jag får ju svar tillbaka men vet ju inte om dom är rätt..."

Och hur 17 skall någon annan kunna avgöra det, när du inte talar om vilka svar du får !!?? :-)

Det verkar som om DS2480B returnerar samma som den får, så man kan läsa efter varje byte för att kolla att den "kom fram" tillDS2480'an.

Du har väll också sett varningen i databladet för DS2480, att man kan få en "overrun" om man pumpar på snabbare vid RS232 än vad 1-Wire bussen orkar svälja... ?

Postat: 6 september 2005, 15:54:51
av benring
Jo jag har läst att den ska skicka samma tillbaka, det gäller inte alla ggr då det ibland står vad som ska komma, ibland står "as sent" och ibland "response".

Jo, jag såg den varningen.


Jag bör väl tala om svaren, fast jag tror inte det gör nån mycket klokare.
ska se om jag kan få fram nå svar som ger nått:)

/B