Dividera encoder pulser

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
tecno
Inlägg: 27248
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Dividera encoder pulser

Inlägg av tecno »

Sen kommer ju nästa lilla problem in i bilden, varvtalet på motorn som kan gå upp till bortåt 6000-7000rpm.

Klarar man av den biffen med 74:or?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Dividera encoder pulser

Inlägg av jesse »

Du har 4 utgångar på räkanren. De två "högsta" kan anta fyra värden. Kallar dem H och L (HÖG OCH LÅG)

räknar upp

HL - A - B
00 - 0 - 0
01 - 1 - 0
10 - 1 - 1
11 - 0 - 1
00 - 0 - 0
01 - 1 - 0
10 - 1 - 1
11 - 0 - 1
...

räknar ner:

HL - A - B
11 - 0 - 1
10 - 1 - 1
01 - 1 - 0
00 - 0 - 0

Nu ser vi att:
A får vi om vi tar H eor L
B får vi om vi tar H.

Hur räknar vi upp/ner då?

Koppla bara "A" till up/down (etta= räknar upp, nolla=ner) och "B" till "clock" (räknar på positiv flank) så ska den väl räkna rätt?

datablad 4029

EDIT: 3600x7000/60 = 420 KHz .... 2.38µS per cykel och bara 595 ns mellan fasförskjutningarna.

7400 har en fördröjning på 10 ns per grind
74S =1,5
74AS = 1,5 ns
74LS = 9 ns
74ALS = 4 ns
4000 = 20 ns

per grind! En räknare har ju en rad grindar ... så det gäller att den hinner switcha. Men hinner encodern med 7000 rpm?
Användarvisningsbild
prototypen
Inlägg: 11105
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Dividera encoder pulser

Inlägg av prototypen »

74HC191 ska i Texas databok från 1993 klara clockning på 21 MHz vid 25 grader, så 0,5 ska nog gå bra.
men Up/Down before Clk ska vara minst 41 ns så det går nog också bra.

Kan fungera!

Till Bengt, ska jag skicka 191 istället? 74HC190 delar med 10, finns också hemma.

Protte
H.O
Inlägg: 5908
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Dividera encoder pulser

Inlägg av H.O »

jesse,
Vid en första titt så ser det ut som att det skulle fungera men vad händer när motorn/encodern bara rör sig lite grann fram och tillbaka, så lite så att bara B ändrar sig 1-0-1-0-1-0-1-0-1-0-1-0 medan A hela tiden är stabil? Då klockas ju räknaren 6 gånger upp eller ner utan att motorn egentligen har flyttat sig, eller?

Bild

/H.O
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Dividera encoder pulser

Inlägg av jesse »

Japp, jag är medveten om det. Det går nog att fixa med en SR-vippa eller liknande tror jag. Fast det kanske inte är nödvändigt - beroende på hur den ska användas.
Användarvisningsbild
tecno
Inlägg: 27248
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Dividera encoder pulser

Inlägg av tecno »

Vad sägs om att använda två 74HCT4040 och dela med 16 för att få 225ppr eller 8 för 450ppr
Denna klarar vad jag förstår upp till ca 82MHz med 4.5V matning vid 25°C så här finns det resurser med råge för klockpulser.

Hur styra upp detta som HO tar upp med stillastående = A stabil och B på flanken farande 01010101 där även clockpulsen kan fara 01010101 dvs som en klick smör i varm stekpanna eller kan den det? Ni som kan detta, hur är det med det?

http://www.scancon.dk/PDF/2RM.pdf
H.O
Inlägg: 5908
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Dividera encoder pulser

Inlägg av H.O »

OK, det här är ett så pass intressant ämne att jag härmed utlyser en belöning på 500:- till den som kan hitta eller konstruera en lösning. (Kanske kan fler som har nytta av en sådan lösning också bidra för att "spä på" motivationen.)

Följande gäller:

** Diskreta komponenter, 74xxx, 40xx etc är OK. Inga programerbara kretsar som GAL, FPGA, uC, osv.
** Den skall dela med 16 eftersom det var vad Bengt sökte från början.
** Det skall fungera upp till 500kHz - åtminstånde. En 3600 linjers encoder har 14400 flanker/varv så vad jag menar med 500kHz är att det, med den encodern, skall fungera upp till 2083rpm. (500000/14400*60=2083.3)
** Inga "undanflykter" att det fungerar under förutsättning att.... eller så länge man inte gör si eller så - den får helt enkelt inte "missa" något så länge man inte överstiger max infrekvens.
** Det är helt OK att "sno" en design (om man hittar någon) så länge ovanstående kriterier uppfylls.
** Ingen färdig komersiell produkt (om inte schemat publiceras här).
** Schema skall publiceras här.

500 spänn och stor ödmjukhet från undertecknad till förste man eller kvinna med en fungerande lösning.

Lycka till!
/Henrik.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Dividera encoder pulser

Inlägg av jesse »

Jag får erkänna att det var knepigare än jag tänkt.... men det är ju alltid kul med en utmaning och en morot :P Får nog sätta mig ner och tänka ett tag.....
Användarvisningsbild
tecno
Inlägg: 27248
Blev medlem: 6 september 2004, 17:34:45
Skype: tecnobs
Ort: Sparreholm, Södermanland N 59° 4.134', E 16° 49.743'
Kontakt:

Re: Dividera encoder pulser

Inlägg av tecno »

Ja järnspikar Henrik

Nu ska vi se vem som kommer upp med nåt fungerande, har mailat länken till vänner på kontinenten så det kanske kommer nåt därifrån som tävlingsbidrag.

Detta är inte så enkelt det har jag fått klart för mig efter att ha försökt lusläsa vad som finns i ämnet på nätet likväl som du Henrik har gjort detsamma.
Användarvisningsbild
Icecap
Inlägg: 26630
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Dividera encoder pulser

Inlägg av Icecap »

Enkel match!

Jag ids inte rita schemat men man tar en räknare som kan räkna båda håll (upp/ner).

Sedan tar man ena fasen som klocksignal och den andra som upp/ner-signal, detta vill få räknaren att räkna upp eller ner beroende på insignalens "riktning".

Sedan tar man en 1-av-4 dekoder (output Q0-Q3) och ett par 2-input OR-gates, ena gaten har input från Q0 & Q1, den andra har input från Q1 & Q2.
På utgången av dessa gates är kvadratursignalen återskapad men nerdelad.

Ingången till dekodern kopplar man till 2 efter varandra följande bits på räknaren, vilka beror på vilken neddelning man vill ha.

Då ELFA ju har "uppgraderat" sin sida till att utelämna sin funktionsöversikt över vilka funktioner som finns i vilka kretsar hoppar jag över den del, det skulle vara enkelt att fixa detta med en databok i handen.

Totalt behövs alltså 4 kretsar:
2 st räknarkretsar (för att få bits nog)
1 st quad 2-input OR-gate
1 st 1-av-4 dekoder.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Dividera encoder pulser

Inlägg av jesse »

Icecap: Jag har just beskrivit den kopplingen ovan. Men den duger inte. Så det blir att tänka lite till. Jag har ritat 7 st A4-ark fulla med signalser och scheman nu, och alltid är det nåt jävelskap som sätter käppar i hjulen.. (ni ska få se foton senare när tävlingen är över eller när jag gett upp) men det måste gå... om jag bara hade tid, men måste tänka på min familj också. Får se i morgon om nån annan hunnit före mig.

God natt.
H.O
Inlägg: 5908
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Dividera encoder pulser

Inlägg av H.O »

Intressant, om jag fattar beskrivningen rätt så tar du A-kanalen på givaren (encodern) till Up/Down på räknaren och sedan B-kanalen till CLK, korrekt?

Uppkommer inte exakt det problem som diskuterades ett par meddelanden upp då? Dvs. om A är hög och encodern "hoppar" fram och tillbaka så att B "går" 1-0-1-0-1-0, så här:
Bild
Då klockas ju räknaren åt ett hål fast än positionen egentligen inte har ändrats?

Som sagt, jag mycket väl fattat din beskrivning fel.
Användarvisningsbild
Icecap
Inlägg: 26630
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Dividera encoder pulser

Inlägg av Icecap »

Jo, den möjlighet finns faktisk men just som jag kollade på det kom jag på en lösning på det också.

Egentligen är det 4 olika stadier som är viktiga:
A B
0 0 Steg 1 Gör inget
0 1 Steg 2 Räkna
1 0 Steg 3 Gör inget
1 1 Steg 4 Räkna

Man tar därför en SR-flipflop samt en 1-av-4 decoder (brukar vara 2 st i en krets).
A & B signalen kopplas in på adressingången på 1-av-4 decodern.

Q1 kopplas till R-ingången och Q3 kopplas till S-ingången.
Utgången från RS-flipfloppen används sedan som klocksignal och B som riktningssignal.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Dividera encoder pulser

Inlägg av jesse »

Nu har jag räknat och svettats ett bra tag, och sedan sprungit 1 km för att posta mitt svar. :sick:

Icecap: din SR-vippa kan räkna fel, tyvärr. (se nedan)

Jag har löst det på ett ganska klumpigt sätt, men jag tror det är vattentätt och med 74LS kretsar är timingen inget problem. Går antagligen att göra enklare, men vad gör man inte när det är bråttom :P

74LS har 9nS fördröjning per grind. Skulle det knipa finns det 74 ALS (eller nåt sånt) med 1,5 nS fördröjning.

Följande schema förklaras:

1) A och B till en 74LS139 2-4 line multiplexer som då har utgångarna 00 01 10 och 11.
2) ett antal enkla SR-vippor bestående av 2 st nor-grindar, dvs 1/2 st 74LS02.
3) några and-grindar och en or-grind. (74LS08 och LS32)
4) en 4-bitars up/down räknare 74LS169 eller motsvarande.
5) en xor-grind t.ex. 74LS86.
Bild
Bild

så såg skrivbordet ut för några timmar sedan...

EDIT: Icecap: det finns en risk att den svänger mellan 00 och 11 fram och tillbaks utan att göra ett helt varv. Då räknar din SR-vippa upp som om det vore ett helt varv. Dessutom så togglar B exakt i övergången till 00 eller 11 i vissa fall. Hur tolkas det av räknaren? SR-vippan fördröjer ju signalen en aning så klockpulsen kommer strax efter att up/down-ingången ändrat värde. Osäkert läge alltså.

Min lösning ser aningen klumpig ut som sagt, men den löser problemet (hoppas jag!) med vanliga logikkretsar, och med goda marginaler tidsmässigt. (Den ska klara upp till 5 Mhz med goda marginaler) - dock med så mycket som 11 st SR-vippor + 8 AND-grindar + 1 OR-grind + 1 XOR-grind + 1 st 2-4 multiplexer + 1 st up/down-counter!
Senast redigerad av jesse 30 mars 2009, 20:17:22, redigerad totalt 1 gång.
H.O
Inlägg: 5908
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Dividera encoder pulser

Inlägg av H.O »

Imponerande, men hur tar vi reda på att det verkligen fungerar under alla omständigheter? Blir jag tvungen att plocka fram lab-plattan? :humm:
Skriv svar