Hur får man ökad upplösning från pulsgivare?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Hur får man ökad upplösning från pulsgivare?

Inlägg av Noxin »

Jag har en pulsgivare som har två utgångar, A och B.
Dessa ligger 90° "fasförskjutna" (se fig)
Om man kopplar ihop A och B med en XOR-krets så ökar antalet pulser till det dubbla. Så långt är det inga problem.

Om man läser av positiva och negativa flanker i pulståget "A xor B" så fördubblas antalet pulser/varv ytterligare en gång.

Hur löser man detta på ett elegant sätt?
Jag antar att det krävs (minst) en monostabil vippa. Vad mer?

/Klas

Bild
Användarvisningsbild
JimmyAndersson
Inlägg: 26308
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Du skulle kunna få en sådan funktion med en 555-krets som triggas med "A xor B"-signalen. I 555-uppkopplingen ställer man sedan in pulslängden.

Problemet är bara att pulserna blir lika långa oavsett hur långa pulserna i Kanal A och B är. Så om det är ett problem i ditt fall så behövs nog en annan lösning.

Jag har en idé i bakhuvudet men den vill inte riktigt komma fram än. Återkommer. :)
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Inlägg av Noxin »

Att pulslängderna blir konstanta spelar ingen roll.
Jag har en Basic Stamp2 som räknar pulser under en viss tid för att får
fram varvtalet (och senare accelerationen) på en axel. Så länge pulserna är längre än 2 mikrosekunder så klarar BS2:en att registrera dem.

Applikationen är en accelerationsbänk för effektmätning av MC.
Här finns några bilder på den "in action". Farsgubben står vid styret.
http://www.home.staertesjoen.se/lgh51/dyno/bilder/

/Klas
cyr
Inlägg: 2712
Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:

Inlägg av cyr »

Du får inte bättre upplösning egentligen, varje puls kommer ju vid en övergång på antingen A eller B - så kan du inte bara titta på A och B direkt?

Nu har jag inte använt BS2, men med t.ex. en PIC vore det lätt fixat genom att använda interrupt-on-change eller liknande funktion. Finns det inget sånt på BS2?
macgyver
Inlägg: 321
Blev medlem: 8 juni 2005, 00:24:09
Ort: Göteborg
Kontakt:

Inlägg av macgyver »

om du ska koppla pulgivaren via xor grinden till en microcontroller så är problemet löst, antingen använda interrupt on change eller byta polaritet på flanken vid varje interrupt, eller koppla en inverterad interruptingång till signalen via en inverterare
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Precis, upplösningen ökar ju inte alls om du håller på att XORar ihop dem, du får precis samma resultat som om du skulle läsa av A och B separat. Jag antar att du utgår från att du alltid har sama rotationsriktning, då är det väl ingen poäng med att göra så?

Tyvärr använder du dig av en Basic Stamp, då har du automatiskt minimerat dina chanser till att utnyttja hårdvarufinesser som externa interrupt och capture on change, som hade varit perfekt i ditt fall!
Men åter till Stampen, är det inte precis lika lätt ärr mäta på två originalsignaler? Var får du egentligen din mätprecission rent tidsmässigt ifrån på Stampen?
Användarvisningsbild
BEEP
EF Sponsor
Inlägg: 1593
Blev medlem: 21 januari 2006, 16:57:56
Ort: Mölndal

Inlägg av BEEP »

Det kanske finns något i den här tråden?
Reading a quadrature encoder with a basic stamp
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Inlägg av Noxin »

$tiff:
I dagsläget använder jag endast den ena kanalen. Så i mitt fall får jag ökad mätprecision.
Jag vet inte riktigt hur jag ska mäta på två signaler med BS2:n?
Programmet i BS2:n ser ut såhär:

LOOP:
count 9,25,W1 'räkna pulser på pin9 under 0,025s, lagra i W1
serout 0,16416,[dec w1,10,13] 'skicka värdet seriellt som ASCII+LF+CR
goto LOOP

Mätprecisionen i BS2:n har jag inte riktigt koll på.

cyr:
BS2 är så simpel att den inte kan hantera interrupt.

Ja, jag vet att allt skulle vara mycket bättre om jag använder en "riktig" PIC eller liknande, men mitt intressefokus ligger på motorcyklar.
Accbänken är endast ett verktyg.

/Klas
Användarvisningsbild
AndLi
Inlägg: 17156
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Inlägg av AndLi »

Vad pratar vi för hastigheter på pulserna?
Försökte en gång i tiden mäta ett liknande pulståg med en STAMP, föll på att stampen tappa för många pulser. Iof försökte jag mäta en längd vilket kräver att INGA pulser missas, ska man bara mäta varvtal så är det lugnare.

Att köra count på två pinnar samtidigt har jag svårt att se hur man skulle kunna göra i Stampe. Så det kräver nog XOR grinden om man vill köra stamp
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Inlägg av Noxin »

Periferihastigheten är max 220km/h och diametern på trumman är 250 mm.
Detta ger ett maxvarvtal på ca 4700rpm.
Pulsgivaren som jag har ger 1250 pulser/varv (per kanal).
Det skulle ge 2500 pulser/varv om man kör A xor B.
Det blir ett pulståg på 195kHz, pulslängd alltså 5.1 µs.

[kollar manualen]

Skit, kortaste pulstid är 4.16µs. 120kHz.
Alltså hinner den inte ens mäta A xo B.
End of discussion.

/Klas
Skriv svar