DS18S20 - Hur funkar dom rackarna?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Logan
Inlägg: 630
Blev medlem: 5 januari 2005, 21:31:53
Ort: Jönköping
Kontakt:

DS18S20 - Hur funkar dom rackarna?

Inlägg av Logan »

Nu blev jag så trött på det programet som man kunde ladda ner för att läsa av tempen från DS18S20. Problemet är att programet låser typ daton för den gör en konstig loop i programen.
Men nu till saken jag har läst igenom http://pdfserv.maxim-ic.com/en/ds/DS18S20.pdf
Men kan inte hitta hur man får fram ID och temperatur från dom rackarna. Så jag kan bygga mitt eget loggprogram i VB6.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> "jag har läst igenom http://pdfserv.maxim-ic.com/en/ds/DS18S20.pdf"
> "Men kan inte hitta hur man får fram ID och temperatur från dom rackarna."

Det var konstigt, för det är ju precis det som beskrivs i data bladet !!

> "Så jag kan bygga mitt eget loggprogram i VB6."

He he, det måste alltså ha varit någon annan än du som försökte med just det för någon månad sedan, *fast* alla försökte förklara att man *aldrig* kan få till den timing som DS18S20 kräven från VB. Eller, som 1Wire bussen kräver igentligen, det är inget speciellt för just DS18S20.

Det program du har kört nu är väll antagligen i C eller liknande "lågnivåspråk". Att det låser datorn under mätningarna förvånar inte, skulle man släppa kontrolen till andra program skulle det nog vara svårt att klara de tighta timing kraven från 1Wire bussen.

Ett annat alternativ är en av de färdiga RS232 <-> 1Wire interface som Dallas/Maxim har. DS2480B t.ex.

Eller, som också nämndes i den andra tråden, skriva sitt eget interface med (t.ex) en PIC med USART interface.
Användarvisningsbild
björn
EF Sponsor
Inlägg: 2570
Blev medlem: 29 mars 2004, 23:09:55

Inlägg av björn »

Skulle verkligen rekomendera att ha en uc imellan, allt blir mycket smidigare än att försöka med så exakt timing via comporten.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31460
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Det finns ju librarys från maxim/dallas så man kan köra med windows-API från VB.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Ligger det inga speciella "drivers" imellan då som sköter lågnivåkommunikationen ? Låter otroligt att man enbart med de *vanliga* Windows APIerna skulle klara 1-Wire timingen. Men, vem vet...
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31460
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

vet faktiskt inte. har inte ingående studerat det där, för jag har inte behövt. Än. :) Men jag antar att det måste ligga nånting där mellan, precis som med DLportIO man ska ha för att köra LCD på parallellporten.
Användarvisningsbild
ensten
EF Sponsor
Inlägg: 3759
Blev medlem: 19 oktober 2004, 15:55:20
Ort: Hudiksvall

Inlägg av ensten »

Jag har en sån här http://www.pointsix.ipnet.pl/PointSixCD ... ts/HA3.pdf
samt ett sådant här program
http://www.pointsix.ipnet.pl/PointSixCD ... Six32.html

Dessa två kan kommunicera med all DDE kompatibel programvara, Excell, VB program osv.

Så här ser det ut IRL: http://80.86.67.171/index.asp
Jag har begränsat min programvara till 10 sensorer, men HA3 klarar 200 stycken.

Edit> Samtliga sensorer är DS18S20
Användarvisningsbild
Snabelost
Inlägg: 1089
Blev medlem: 1 mars 2005, 23:12:57
Ort: Sweden / Örebro / Fjugesta
Kontakt:

Inlägg av Snabelost »

Det är bara att tanka hem Maxims Windows SDK för 1-wire och så får du med exempel på hur du läser av data från 1-wire kretsarna.

Sampla en USB-adapter från Maxim så får du inga timingproblem alls.

Jag har meckat en del med 1-Wire, dock inte med DS18S20 än. Har ett gäng liggandes som väntar på min tid!

/Magnus
Användarvisningsbild
Noddan
Inlägg: 257
Blev medlem: 23 september 2004, 16:28:12
Ort: Göteborg
Kontakt:

Inlägg av Noddan »

En tanke som jag har gått och tänkt på är att man sätter en mikroprocessor (i mitt fall troligen mega8) och ett stort externt eeprom via SPI (256Kb eller något, dom är ju ändå billiga). Sedan loggar mikroprocessorn hela tiden värden, och om en dator finns påslagen så skickar den in datan via rs232. Då behöver inte datorn vara på 24/7 för att få kompletta grafer, plus att man "vet" vad som finns i båda ändar.

Problemet är att det verkar jobbigt att kolla vilka enheter som sitter på bussen, har inte riktigt orkat förstå det än.
Användarvisningsbild
Snabelost
Inlägg: 1089
Blev medlem: 1 mars 2005, 23:12:57
Ort: Sweden / Örebro / Fjugesta
Kontakt:

Inlägg av Snabelost »

Min enda lösning hittils är att loopa genom alla enheter och läsa av ID. När jag hittar rätt ID läser jag varegistren. Borde finnas något enklare sätt, men jag har inte hunnit titta på det.

/Magnus
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Hej på er, det va då jag, som är denne *någon* som försökte med VB6 och DS18s20 :razz:

Jag är säker på att VB i sig klarar timingen som krävs, problemet ligger i mjukvaran som hanterar porten, jag kör DLportIO och den tar för lång tid på sig.
Kör man inte NT (eller iaf inte XP) så kan man kontakta LPT-porten via tex qbasic men det går inte nu då dessa är spärrade.

Jag blev "övertalad" :P till att köra en sådan variant som ENSTEN gör, dock kommer jag skriva egen programvara i VB6 iaf, men kommunikationen kommer gå via RS232-1wire adaptern och en mikroprocessor från maxim (va det så sodjan? vad hette den nu?)

Har inte hunnit testa det än bara men det krävs iaf nån form av microcontroller för att klara tiderna.

/B
Användarvisningsbild
zeus
Inlägg: 7058
Blev medlem: 17 juni 2003, 22:13:44
Ort: Sthlm.

Inlägg av zeus »

Fanns det inte ett program som skötte allting direkt? Med loggning och snygg visning?

Man bara pluggade in, med några diskreta komponenter, i någon port och sen var det bara att köra.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

det gjorde det säkert men jag vill inte ha programvara som nån annan gjort när det gäller detta, dessutom vill jag ha fler funktioner.

/B
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> "Jag är säker på att VB i sig klarar timingen som krävs,..."

[för *direkt* 1_Wire kommunikation mellan VB och DS18S20...]

Det är bra, man ska stå för sina idér.
Att ingen annan tror samma sak spelar naturligtsvis ingen roll ! :-)

Personligen tror jag att VB skulle ha problem med timingen, *även* om VB hade direkt access till hårdvaran i COM porten (utan DLportIO eller liknande).. Det behövs nog något lågnivåprogram i C eller något annat (lite snabbare) språk.

> "dock kommer jag skriva egen programvara i VB6 iaf,"

Ja visst, nu ja ! Nu när du kör med RS232/1-Wire interfacet
så bör det väll inte vara några speciella problem. Bara helt vanlig
seriekommunikation, vilket VB har klarat f.o.m V1.0.

Problemet med VB är att det (med stor sannolikthet) inte går att generera den timing som 1-Wirw kräver direkt från VB koden...


> "och en mikroprocessor från maxim, vad hette den nu? "

DS2480B. Men "mikroprocessor" ? Det är väll att ta i lite... :-)
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Jaa, hoppet är det sista som lämnar en:)

Eftersom vi nu inte kommer få klarhet i hur VB6 skulle hantera direktkontakt med sensorn så kan vi ju släppa det:)
Det är inte helt omöjligt att det skulle fungera men som sagt, nu går ju inte det att testa så jag släpper det:)
Ja visst, nu ja ! Nu när du kör med RS232/1-Wire interfacet
så bör det väll inte vara några speciella problem. Bara helt vanlig
seriekommunikation, vilket VB har klarat f.o.m V1.0.
Jag sa ju det :wink:

Jooo, en LITEN typ av microprocessor e det väl?:)
en minimicroprocessor:)

Hur som, med dom grejerna så ska detta funka som jag vill, hoppas jag:)

Bara för att ENSTEN har sin temp ute så har jag min här:)

alla sensorer:
http://tempsens.dyndns.org

ute i huddinge:
http://tempsens.dyndns.org:8080

Dessa går ej via dallassensorer, det är en annan lösning:)
Skriv svar