1-wire tutorial

Övriga diskussioner relaterade till komponenter. Exempelvis radiorör, A/D, kontaktdon eller sensorer.
barbarossa
EF Sponsor
Inlägg: 544
Blev medlem: 8 december 2006, 11:18:14
Ort: Tågarp, Svalöv

1-wire tutorial

Inlägg av barbarossa »

Hej

Jag har en Hygroclip S, RH/temp sensor från rotronic, som jag vill prata med via antingen PIC eller National Instruments prylar. Sensorn går som master med ett 1-wire protokoll. Jag har aldrig jobbat med 1-wire innan så jag undrar om någon har tips på tutorial eller kan berätta i korta drag hur man kommunicerar med 1-wire.

Manual till Hygroclip S:
http://www.rotronic-usa.com/man/hyclip/hyclip-dio.pdf

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

Inlägg av sodjan »

Kolla hos www.maxim-ic.com.
Låter lite ovanligt att *sensorn* är master...
barbarossa
EF Sponsor
Inlägg: 544
Blev medlem: 8 december 2006, 11:18:14
Ort: Tågarp, Svalöv

Inlägg av barbarossa »

Jag har kollat kort på dallas och rotronic använder inte samma protokoll.

Var ~0.66 sekund skickar sensorn en låg puls som initierar kommunikationen. Därefter kommer ett pulståg där varje bit är 400-540 µs lång. Varje bit börjar på låg och en 0:a går hög efter 240-325µs. En 1:a går hög efter 80-115µs.
barbarossa
EF Sponsor
Inlägg: 544
Blev medlem: 8 december 2006, 11:18:14
Ort: Tågarp, Svalöv

Inlägg av barbarossa »

Om jag fattat Dallas protokoll rätt så initierar mastern alla enskilda bitar
Användarvisningsbild
PHermansson
EF Sponsor
Inlägg: 4340
Blev medlem: 22 december 2004, 00:46:38
Ort: Särestad Grästorp
Kontakt:

Inlägg av PHermansson »

Ser inga likheter i Dallas 1-wire och det Hygroclip kör med förutom namnet vid en snabb titt. I Dallas/Maxim-protokollet är det mastern som initierar all kommunikation (inte alla enskilda bitar), Hygroclip å sin sida skickar data självmant med jämna mellanrum.
Om du ändå vill lära dig mer om Dallas 1-wire finns allt i Maxims databladssamling, finns ett antal datablad som tar upp allt från protokollet till kabelval och nätuppbyggnad.
barbarossa
EF Sponsor
Inlägg: 544
Blev medlem: 8 december 2006, 11:18:14
Ort: Tågarp, Svalöv

Inlägg av barbarossa »

Jag är mest intresserad av rotronics i detta fallet. Jag tänkte mest höra om någon kunde hjälpa mig med en bra strategi för att samla in informationen. Ska jag köra med interrupt on change, timer eller polla var ~20µs ?
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Jag hade gjort det med att detektera varje flankbyte in i en Capture-enhet (t.ex. CCP på PIC). Då kan man medelst mjukvara ganska enkelt avgöra pulslängder och därmed bestämma om det är '1', '0' eller initiering osv.

Då PIC har svårt att detektera varje flankbyte direkt (man måste ställa om den mellan varje) hade jag vald en annan processor (Renesas) men jag har gjort precis denna funktion i en PIC utan problem så det är fullt möjligt och ganska enkelt.

Det går ju även att lägga till en extern timer och mata signalen direkt in i en synkron serieport, timern ska då triggas av negativ flank på det inkommande signalen och time-out ska vara på 177µs. När den går time-put ska den ge en klockpuls till serieportens ingång och datan till samma serieport tas från inkommande data. Då läser den en '1' vid '1'-pulsar och '0' vid '0'-pulsar.
barbarossa
EF Sponsor
Inlägg: 544
Blev medlem: 8 december 2006, 11:18:14
Ort: Tågarp, Svalöv

Inlägg av barbarossa »

Tackar, ska kolla vidare på timer.
Skriv svar