rs232 mottagare?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

speakman skrev:Njae, men jag hade faktiskt inte förväntat mig att protokollet var så öppet som det var. Hade inte kollat in det förrän nu.
Tack iaf.
FYI, så finns det inbyggd stöd för protokollet i Linuxkärnan.

benring:
Kan ni inte sköta snacket i den här tråden istället?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

"Kan inte nån vänlig själ skriva ner det jag behöver veta för detta?"

Självklart ! Och den "vänliga själen" är Dallas-Maxim. :-)

Om man tittar i data bladet för DS18S20, så verkar hanteringen av 1-wire bussen vara bra beskriven.

Med början på sidan 9 "1-WIRE BUS SYSTEM, så beskrivs överföringen lite övergripande.

Med början på sidan 13 "1-BUS SIGNALING" finns detaljerna i timingen.

På sidan 18 och 19 "DS18S20 OPERATION EXAMPLE 1-3", finns tre kompletta exempel på olika överföringen till/från DS18S20.

"Jag ska ha pinnen på HÖG o sen så drar ja pinnen till låg i 480 uS?
Sen sätter ja den till hög o inväntar svaret?
Hur kommer svaret? "

Se "INITIALIZATION" på sidan 10 och "INITIALIZATION TIMING Figure 10" på sidan 13 i data bladet. Specielt "Figure 10" är väll ganska tydlig !?

Det kanske skulle vara lättare att svara om du kan rellatera dina frågor till ett specifikt ställe i databladet, så att det går att förstå vad som är oklart.



Här är ett par andra länker med lite "basic info" :

1-Wire Communication Through Software :
http://www.maxim-ic.com/appnotes.cfm/appnote_number/126
Borde besvara frågorna om timingen.


1-Wire Software Resource Guide :
http://www.maxim-ic.com/appnotes.cfm/appnote_number/155
Exempel på tillgänglig programvara för 1-wire.


Problemen som orsakas av du vill köra 1-wire via portar (LPT/COM) som är designade för något helt annat, har jag dock ingen lösning på. Men det är möjligt att det går att lösa med lite smart "hackande"...
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

>>cykze: Jag ville inte lusa ner tråden me tester på saker o ting o det va ganska sent så jag ville ha snabbare svar:)

EDIT: Det är inte hur jag ska anropa sensorn som e problemet just nu, det är hur jag ska få parallellporten att reagera på detta som JAG vill.


Grejen e att jag läst alla datablad som FINNS ang denna sensor, jag är inte så hemma på hur man tolkar sånt här o därav så frågar jag, annars lär jag knappast lära mig.

Jag har just nu fått lära mig att min parallellport, som är dubbelriktad i BIOS inte funkar som jag vill.
Jag tänkte att om jag lägger D1 till hög som signal till sensorn (o har ett pullup på den) o sen drar den till låg i 500 uS o sen vänder pinnen till läsning så borde sensorn dra ner den till låg i 500uS (detta för att initiera)
men det sker inte.


Jag testade att hålla D1 hög o sen försöka få ner den me yttre hjälp men det går inte. Oavsett hur ja ställer den, läs eller skriv.

Om jag tar D6 tex o läser på adress 889 så ligger den hög hela tiden, jordar jag D6 så går den låg. (D0 till D3 ligger låga, D4 till D7 ligger höga om man läser 889)

Så min tanke är då: Om jag tar D6 som signal o drar ner den låg via programmet, kommer sensorn dra den låg via jord då?

/B
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Först och främst kan du knappast lita på att din paralellport kan allt du vill att den ska kunna....tyvärr.

Den kan vara så bidirektionell att det skriker om det och du kanske får det att köra på den port på den PC men sedan kommer det en uppdatering av hårdvara och/eller mjukvara och sen kan det vara klippt.

Dallas har en lustig grej (DS2482) som kan interface serieporten till 1-wire protokollet, man kan även göra det med lite klurig programmering och en MAX232-krets.

Serieporten är vida bättre understödd i Windows än paralellporten, tyvärr fattar M$ inte att många använder den som experimentport och därför är stödet så uselt.

Det går att använda paralellporten men jag skulje vilja slå ett slag för den "idiotsäkra" lösningen: Anta att din paralellport INTE kan köra bidirektionellt, använd en data-pinne via en diod till att dra ner dataporten och kän av det på andra sidan med en av de input-pinnar som finns.

Men enklast är det med serieporten.

Den DS2482 finns även i en -800 version med 8 1-wire portar på.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

intressant, efter ja va in i bios o bara ställde om porten från dubbelriktad till nått annat o sen till dubbelriktad igen o sparade så får ja reaktioner på porten som jag knappast hade innan:)

Nu tar vi nya tag:D
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

> ...o sen vänder pinnen till läsning så borde sensorn dra ner den till låg i 500uS (detta för att initiera)
men det sker inte.


Du har inte 500us på dig när du ska läsa värdet. Utan du ska läsa in värdet 63 till 78 us efter att du har satt den till ingång. Jag tror att du kommer få problem med att hålla dig inom den tiden med VB, men jag vet inte. Vill du bara att det ska fungera så finns det nog färdiga 1-wire-libs för VB.

Varför inte bara köra via serieporten som det finns färdiga program för att använda?
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

>>Icecap:
Det är väldigt "kul" det här, från början ville jag köra på serieport men då kommer folk o påstår att jag kan använda parallell o propsar på det nästan, nu så ska ja INTE göra de1!?

Nåja, jag börjar inset att parallellporten inte vill snacka seriellt som JAG vill så jag kommer kolla på en seriell lösning.

Ni andra som menat att jag ska köra parallellt får gärna kommentera.

Sen undrar ja om VB6 klarar mikrosekunder?

EDIT: cykze, det va samtidigt typ:)
Jag vill inte ha nått färdigt, jag vill ha ett program som gör det JAG vill inte som nån annan bestämt.
EDIT igen: cykze: jag har läst på mer nu o tiderna har jag koll på nu.


/B
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg av speakman »

Hehe, microsekunder i VB6.
Systemtimerns upplösning ligger på 10ms.. ;)

Mvh
speakman
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31456
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Jag har ett sånt här interface (DS9097) till serieporten för att läsa av mina DS18S20 med.
Källkod finns på http://www.digitemp.com/software.shtml Dock inte VB...
Senast redigerad av MadModder 23 juli 2005, 18:17:59, redigerad totalt 1 gång.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

>>speakman:

ÅÅÅaaaaaaaaaa...... :?

Jahaja, då sket det sig totalt me detta då.

Lägger detta på is så länge tills ja får upp gnistan igen.

EDIT: Din länk funkar inte, ok den funkar, fick med din punkt:)
/B
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

benring skrev:>>Icecap:
Det är väldigt "kul" det här, från början ville jag köra på serieport men då kommer folk o påstår att jag kan använda parallell o propsar på det nästan, nu så ska ja INTE göra de1!?

Nåja, jag börjar inset att parallellporten inte vill snacka seriellt som JAG vill så jag kommer kolla på en seriell lösning.

Ni andra som menat att jag ska köra parallellt får gärna kommentera.

Sen undrar ja om VB6 klarar mikrosekunder?

EDIT: cykze, det va samtidigt typ:)
Jag vill inte ha nått färdigt, jag vill ha ett program som gör det JAG vill inte som nån annan bestämt.
EDIT igen: cykze: jag har läst på mer nu o tiderna har jag koll på nu.


/B
Använd vilken port du vill, om det finns färdiga lösningar för serieporten är det väl smidigast att använda dessa.
Anledningen till att jag sa att du lika gärna kunde använda parallellporten var att du ju inte använder RS-232, utan använder en ful-hacklösning där du manipulerar DTR för att skicka data.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Gomorron.
Igår kväll råkade jag av en slump få kontakt med min sensor via VB och Parallellporten.

Jag får dock svar från sensorn:
varje rad är svaret av ett anrop med reset-puls.

0,999884388608424
0,999885036915924
0,999885242139086
0,999871937710502
0,999936290312305
0,999910522548318

Kör jag en timer så växlar värdet hela tiden, jag vet nu inte om det är min kod som skapar detta värde eller hur det funkar men säger detta värde er nått?
Jag trodde först att det va tempvärdet som ja bara behövde kalibrera in men märkte sedan att jag fick samma svar även om ja bara sände reset-puls.

/B
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Efter att du har skickat en resetpuls ska du få tillbaka en 0:a om det fungerara, annars en 1:a.

Vad menar du med dina decimaltal egentligen? Decimaltal har ingenting med det här att göra. Här är det 1:or och 0:or som gäller.

För övrigt är det ingen risk att du kommer få några temperaturvärden bara så där. Och det är ingen idé att gå vidare så länge som Reset:en inte fungerar.
benring
Inlägg: 900
Blev medlem: 18 januari 2005, 19:35:25

Inlägg av benring »

Ja, vad menar jag egentligen me dom? ingen aning:)
Men då vet ja det, man ska få en 0:a.

Grejen e att jag iaf får NÅNTING som svar från sensorn, annars skulle den inte ge mig mina decimalr o dessa beror på min kod, koden jag har är till mitt nuvarande bygge där jag läser av en annan sensortyp.
Tänkte att jag skulle använda den koden men det blir visst inte rätt.

Jag vet att jag inte får ut rätt tempvärde rakt ur sensorn.

Jag ska kolla vidare me reset först.

EDIT: Bara en undran, är det en buffert i LPT? Är det så att det som kommer in på den från ex sensorn lägger sig i en buffert med först in först ut?


/B
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Men alltså när du vill läsa av värdet på en pinne på parallellporten så läser man vanligtvis in "hela" porten, D0-D7, till en variabeltyp som är 8 bitar stor. Därefter maskar man ut den biten i byten som man är intresserad av. Svaret kan då inte bli något annat än en 1:a eller 0:a. När du pratar om att du får ett decimaltal så låter det som att du har missförstått hela grejjen med det här. :?

> Bara en undran, är det en buffert i LPT? Är det så att det som kommer in på den från ex sensorn lägger sig i en buffert med först in först ut?

Nej, så fungerar det inte.
Skriv svar