Sida 4 av 6

Re: Ytterligare en HD44780 tråd.....

Postat: 14 maj 2009, 00:29:28
av v-g
Du får tillbaka 8 byte tror jag det är, de två första duger för att få ut värdet med en halv grads noggranhet.

Databladet till DS1820 är bäst att gå ut ifrån. Fritt från skallen med EN sensor gör man som följer.

RESET-->Skip rom-->Start conversion--> wait for conversion -->RESET -->Skip rom -->Read scrathpad --->tag emot och avnjut temperaturen.

För mig tog det ett par tre dygns felsökande att få fart på det hela då inkluderat att matcha ROM :? Det finns många fallgropar. Men börja med att skippa ROM det är bäst så. Söka ROM är drygt som fasen så jag hårdkodar dem :doh:

Re: Ytterligare en HD44780 tråd.....

Postat: 14 maj 2009, 18:24:29
av Norpan
Nu när ni ändå är inne på DS1820.
Om man ponerar att man har tio på en buss och kör romsearch, och får håll på adresserna, hur vet man vilken som är vilken.
Eller är det som jag skulle tro, att man får ta reda på adresserna först och sen hålla reda på vilken DS1820 som hade vilken adress?

Re: Ytterligare en HD44780 tråd.....

Postat: 14 maj 2009, 18:35:17
av bearing
Ja, det behövs en tabell över ROM-värde och position i bussen då.

Fördelen med ROM-search är väl att få reda på vilka sensorer som funkar.

Re: Ytterligare en HD44780 tråd.....

Postat: 14 maj 2009, 19:05:58
av Norpan
Tack tack, som jag trodde då.
Synd att de är så små att det inte går att skriva på dem. :mrgreen:

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 00:25:56
av v-g
Norpan:Går visst det, jag skrev med en vass penna på maskeringstape som jag satte på sensorns ovansida ;)

Just det med "identifieringen" har jag skippat pga att jag inte kom på nåt smart sätt (annat än söka för varje ny sensor monterad och därmed sista identifierade borde ju vara den man monterat) att få rätt position som (för mig) var smidigare än att kolla alla sensorer i labbdäcket mha parallellporte, numrera dem och sen kompilera in i koden.

Tar ju också en ruggig massa kod att få det att fungera+menyval där man kan radera, ändra lägga till osv.

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 11:53:23
av Norpan
Jag bara funderade lite på om det fanns nåt smartigt sätt nån löst detta på, iom att Maxim säger att de används i t.ex. större hvac system och det blir lite jobbigt om man ska kontrollera rom på alla sensorer för att sen hålla reda på dem när de ska monteras industriellt och hårdkoda in numrena.
Men men, man kan ju inte få allt. :)
v-g:
Jag antar att du inte skrev alla 64 bitarna då. :humm:

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 12:13:42
av danielr112
> Jag antar att du inte skrev alla 64 bitarna då. :humm:

Det är ju bara 8bytes. :)

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 13:05:38
av PopUnoNkoK
Börjar bakifrån.
Sodjan: Jo jag vet att jag blir lite "flummig/otydlig" ibland ska försöka skriva tydligare, det är juh trots allt svar jag är ute efter, inte mer frågor. :)
Min fråga angående värdena som skicades var jusst varför de valt att skicka vissa värden som förbestämda konstanter och vissa som rena värden. Jag hittade inte vad de värdena motsvarade eftersom jag var så insnöad på temsensorns datablad vilket de inte använde. Så där hjälpte du mig att "öppna ögonen". Tack. Jag antar att de värden som dom difinierat som konstanter i början av koden är de som används generellt för 1-wire produkter och de som de skickar som "hårdkodade" värden är specifika för den 1-wire produkt de använde.

Jag har läst exemplen i databladet både före och efter ditt inlägg men jag börjar känna att jag har lite luckor kvar att fylla innan jag kan ta i tu med denna termometer.
Bland annat:

Du skriver att jag ska göra en kopia av Scrachpad lokalt i processorn, genom att först Reservera 9 register till detta. "Scrachpad RES 9". Hur döps dessa? alltså jag har hittils bara reserverat 1 plats för varje "namn/string". Jag kan väl inte ha 9 register som "heter" Scrachpad? Alltså samma namn. Samma problem känner jag att jag har med ID nummret till de olika sensorerna, som alltså är 8bytes långt.
Detta är alltså PRIO 1 att få koll på, hur man använder multippla register till ett och samma "tal/värde". Ska titta vad jag hittar i Elmer 160 först innan jag återkommer med specifika frågor.

Angående termometern sedans så känns det som att jag kommer att börja med 1st sensor och köra med SkipRom kommandot.
Sedan kommer det att bli att "hårdkoda" de tre id nummrerna som jag tänkt använda. Måste dock först koda någon typ av "id-sniffer" alltså någon typ av kod som KörSearchRom och visar det på en display. Och så kör jag nog en och en för att ta reda på id nummret.

MVH Peter F

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 13:23:08
av sodjan
> "Scrachpad RES 9". Hur döps dessa?

Första positionens adress ligger i symbolen "Scrachpad".
Följande positionen ligger sekvensiellt därefter. De har inga
egna namn man är allokerade av MPASM/MPLINK i alla fall.

Om du måste ha namn till dessa så kan du definiera extra symboler
som " myvar SET Scrachpad + 4" för att t.ex skapa en symbol som
pekar på den 5'te byten i Scrachpad arean, o.s.v. det hela beror
lite på vad "bufferten" ska användas till, ofta hanteras de via
index-registret och då är man kanske inte intresserad av mer
än startadressen.

Du kan även ange t.ex " MOVF Scrachpad+5, W" direkt i koden så
räknar MPASM/MPLINK ut rätt adress när du bygger appliktionen.
Notera att "+5" även kan vara en "assemblytime variable", men det
kan inte vara en "runtime-variable".

När det gäller att hantera ID-numret så har det diskuterats på andra
ställen. T.ex att först köra alla sensorer med ett "identifieringsprogram"
och notera alla ID. Sedan lägga in dessa ID'n i sina riktiga program.
Jag gissar att man kan lägga dom som datasegment i flash och sedan
läsa ut dom när det behövs...

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 13:32:29
av vfr
Ska man använda dom på det sättet, så definierar du nog det bäst som "xxx res 9". Sedan använder du det antingen med indexerad adressering (FSR/INDF) eller med absoluta adresser. Man kan definiera en "struct" m.h.a "equ" som offseten för varje medlem. Sedan adresserar man med direkt adressering som "xxx+medlemsnamn". Detta fungerar bra om man t.ex skall läsa in ett antal byte från 1-wire till bufferten. Då använder man den indexerade adresseringen. När man sedan kanske vill använda ett värde på en viss position så kan man använda den absoluta adressen m.h.a offsetnamn.

Kod: Markera allt

Definition:

Buffert res     8
TempH   equ     0
TempL   equ     1
Addr    equ     2

Användning:

        movfw   Buffert+TempH

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 13:39:45
av sodjan
Vilket är i princip samma sak som :

Kod: Markera allt

Definition:

Buffert res     8
TempH   set     Buffert + 0
TempL   set     Buffert + 1
Addr    set     Buffert + 2

Användning:

        movfw   TempH
Vilket kanske blir lite renare/snyggare i själva koden...

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 14:55:13
av PopUnoNkoK
En liiiten fråga bara. Då detta känns med 1-wire just nu känns som om det kan ta ett tag undrar jag om det finns några andra digitala tempsesorer ni kan tipsa om? :) Jag ska bara ha 3 sensorer i slutändan så jag har ganska många I/O pinnar över även efter LCD displayen är inkopplad.
Så, som sagt, några andra digitala temsensorer ni kan tipsa om?

MVH Peter F

Ps. Näe jag har inte gett upp 1-wire, men jag tänkta att ni kanske har nåt tipps på några fina sensorer nu när det bara handlar om 3 st och jag har I/O pinnar över. :) Ds

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 15:18:58
av sodjan
Dels finns det ju de med vanliga (d.v.s I2C eller SPI) interface.
Sen finns det även rent analoga givare, men de kanske inte
är så bra om det är lite avstånd mellan givaren och processorn.

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 21:01:04
av v-g
Norpan:Även jag med mina skakhänder har begränsningar ;) Jag skrev nummer 1-13 på dem resten var på datorn :)

Mycket av datan som skickas fårn DS1820 är inte värt att ta emot (ett par positioner är hårdkodade andra tomma) och då är det bättre att bara ta emot dessa och direktkasta dem. För min del är det bara tre positioner som är av intresse och det är LSB, MSB och COUNT_REMAIN.

CRC kan man använda om man är petimeter men normalt sett så är det helt onödigt (tar minne och är drygt att koda) visst jag får fel från mina sensorer när jag har kass kontakt men då är det ändå fysiskt fel och inget som CRC kan råda bot på.

För mig som kör 15 sensorer (snart ännu fler) blir ändå dessa 3 värden ganska mycket minne i PIC:en pga att jag först hämtar allt data, buffrar det i minnet sen skickar ut på displayen.

Angående sista inlägget så är det enklast att köra DS1820 på varsin pinne så slipper man koda in alla ROM (plus identifieringskoden) i µcn. En pinne extra för var sensor förbrukar du.

Re: Ytterligare en HD44780 tråd.....

Postat: 15 maj 2009, 21:20:00
av PopUnoNkoK
Sodjan: Vilken av de två "Protokoll" du nämnde är vanligast? Jag tänkte om jag ska söka en tempsensor så lär jag mig helst det Protokoll som är vanligast.

V-G: Ingen du ide alls. Att lära sig 1-wire, med SkipRom först med en sensor. Sedan utöka till tre sensorer på olika pinnar. Och sedan när man har tid, och ideer till ett större projekt, sätta sig in i att använda 1-wire tekniken som den är tänkt, alltså flera sensorer på samma lina.

Tack för svaren. Ska försöka få till en termometer med en sensor så snart som möjligt.

MVH Peter F

Ps. Sodjan: Jag är fortfarande intresserad vilket protokoll som är vanligast trots att det just nu lutar åt 1-wire. Ds