State Maskin ?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
4kTRB
Inlägg: 18283
Blev medlem: 16 augusti 2009, 19:04:48

Re: State Maskin ?

Inlägg av 4kTRB »

Det där ska jag analysera. 74151 var ett bra tip också. Enklast kanske vore ett eprom.
kodar-holger
EF Sponsor
Inlägg: 916
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: State Maskin ?

Inlägg av kodar-holger »

I en gammeldags typhjulsskrivare jag rev för ett par år sen använde man ett PROM och en 74373 om jag minns rätt. latchen för att skapa en fördröjd signal och PROMet för all avkodning. Tyvärr råkade jag elda PROMet innan jag kunde avkoda innehållet. Huvudet drevs i horisontalled av en fet DC-motor med encoder på glasskiva.

Men jag har sett andra implementationer beskrivna som haft betydligt mindre logik än vad du kommit till. Så om det inte bara är en mental övning kan mera googling vara ett bra tips.

P.S. Underbar svengelska egentligen State Maskin borde väl vara State Machine eller tillståndsmaskin.
Användarvisningsbild
4kTRB
Inlägg: 18283
Blev medlem: 16 augusti 2009, 19:04:48

Re: State Maskin ?

Inlägg av 4kTRB »

Erom är lockande men jag har ingen eprom brännare. Kanske borde köpa en https://www.free-play.se/produkter/verk ... q-4x4.html

Jag ska utvärdera om jag kan förenkla med multiplexer först.
Användarvisningsbild
4kTRB
Inlägg: 18283
Blev medlem: 16 augusti 2009, 19:04:48

Re: State Maskin ?

Inlägg av 4kTRB »

Dök ner i MUX-teorin och kom först fram till att logiken för xplus blivit fel.
Sedan går det fixa till en 16 MUX genom att kombinera 2st 8 MUX med hjälp av en 2 MUX.
Eller så klart ha en 16 MUX - IC typ CD4067.
Sedan behövs en inverterare för x'
Det blir troligtvis 12 stycken IC för xplus, yplus och zplus om jag använder 8 MUX:ar
och 6 stycken med 16 MUX:ar. I och för sig finns det nog inverterad utgång på vipporna så
då blir det 9 stycken resp. 3 stycken.

Någon som vet någon annan 16x1 MUX än CD4067 ?

Ska vara:

xplus = x' y' z' a' b + x' y' z a' b' + x' y z' a b' + x' y z a b + x y' z' a' b + x y' z' a b + x y' z a b + x y' z a b' + x y z' a' b' + x y z' a b' + x y z a' b' + x y z a' b;

Minimerad:

xplus = x y' z a + x y z a' + y' z' a' b + y z' a b' + x' y z a b + x' y' z a' b' + x y' a b + x y a' b';
SM_MUX_xplus.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
baron3d
EF Sponsor
Inlägg: 1339
Blev medlem: 1 oktober 2005, 23:58:43
Ort: Torestorp

Re: State Maskin ?

Inlägg av baron3d »

Om jag nu inte är för sömnig så kan två produkter kopplas till en 74151.

x' y z a b (yab=111)
x' y' z a' b' (yab=000)

för båda x=0 z=1

Kopplade till en 74151:

x -> E
y -> S0
a -> S1
b -> S2

z -> I0 + I7
gnd -> I1 .... I6

Ut är Z
Nerre
Inlägg: 26655
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: State Maskin ?

Inlägg av Nerre »

kodar-holger skrev: 5 oktober 2020, 21:30:35 I en gammeldags typhjulsskrivare jag rev för ett par år sen använde man ett PROM och en 74373 om jag minns rätt. latchen för att skapa en fördröjd signal och PROMet för all avkodning.
Det är ju i princip som att bygga en FPGA.
Användarvisningsbild
4kTRB
Inlägg: 18283
Blev medlem: 16 augusti 2009, 19:04:48

Re: State Maskin ?

Inlägg av 4kTRB »

Om man vill programmera Arduino så måste väl eprom varianten vara lätt att implementera. Man lägger upp en tabell i EEPROM och hoppar till rätt adress och hämtar xplus som exempel. Det borde bli snabbt också.
Användarvisningsbild
rvl
Inlägg: 5720
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: State Maskin ?

Inlägg av rvl »

Har inte försökt implementera själv, men spontant känns lösningarna i tråden överkomplicerade.

Den statelösa lösningen med ena ingången som riktning och andra som klocka fungerar rätt bra, men har problem med falska varv om rörelsen pendlar runt "klockingångsläget".

Om en Arduino blandas in, borde det inte vara större problem att få till det. Skulle satsa på pin change interrupt på pulsingångarna.
kodar-holger
EF Sponsor
Inlägg: 916
Blev medlem: 26 maj 2014, 12:54:35
Ort: Karlskoga

Re: State Maskin ?

Inlägg av kodar-holger »

Satte mig och kollade mealy-varianten som förekom i början. Karnaugdiagram och hela paketet. Blev mycket enklare men reduceringen av ekvationerna satt inte ordentligt 30år efter examen.

Men den fanns ju på nätet när man väl lyckades söka rätt. Reg1 och Reg4 är så vitt jag förstår helt överflödiga. Och 25MHz behöver naturligtvis bara vara vilken frekvens som helst högre än den högsta som enkodern kan åstadkomma.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: State Maskin ?

Inlägg av Krille Krokodil »

4kTRB skrev: 5 oktober 2020, 20:11:52 Om jag har en statemaskin på aurdinon så blir det nog tvunget att köra den som en egen tråd. Jag ska ha den till annat samtidigt.
Gör du även det andra med en tillståndsmaskin och låter bli att använda delays så kan du loopa dem i serie för att få
poor-man's-threading.

Jag brukar göra det så och sedan ha delay/timer så att de körs i 10, 100 eller 1000 Hz så att man enkelt kan räkna tid inne
i tillståndsmaskinen om man behöver ha timers där.
Användarvisningsbild
4kTRB
Inlägg: 18283
Blev medlem: 16 augusti 2009, 19:04:48

Re: State Maskin ?

Inlägg av 4kTRB »

kodar-holger skrev: 6 oktober 2020, 22:02:48 Satte mig och kollade mealy-varianten som förekom i början. Karnaugdiagram och hela paketet. Blev mycket enklare men reduceringen av ekvationerna satt inte ordentligt 30år efter examen.

Men den fanns ju på nätet när man väl lyckades söka rätt. Reg1 och Reg4 är så vitt jag förstår helt överflödiga. Och 25MHz behöver naturligtvis bara vara vilken frekvens som helst högre än den högsta som enkodern kan åstadkomma.
Fungerar den där om man byter rotationsriktning då läsgafflarna just håller på att detektera?
Nerre
Inlägg: 26655
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: State Maskin ?

Inlägg av Nerre »

rvl skrev: 6 oktober 2020, 20:47:00 Den statelösa lösningen med ena ingången som riktning och andra som klocka fungerar rätt bra, men har problem med falska varv om rörelsen pendlar runt "klockingångsläget".
Inte om klockan är flanktriggad väl? Det är det som är grejen.

Triggar den på positiv flank blir det ju en negativ flank först om man backar.

Det är snarare så att man riskerar att tappa steg vid vändningarna. När jag byggde var det för en trackball till dator, så det var inte så kinkigt om man tappade enstaka puls (för det var ju kanske 100 pulser på ett varv).
Användarvisningsbild
rvl
Inlägg: 5720
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: State Maskin ?

Inlägg av rvl »

Men sen "frammar" man igen, så blir det en ny positiv flank trots att givaren inte rört sig nämnvärt. Vibrera i det läget eller kanske bara litet extra kontakstuds och räknaren kilar iväg. Med state kan problemet undvikas.
Användarvisningsbild
4kTRB
Inlägg: 18283
Blev medlem: 16 augusti 2009, 19:04:48

Re: State Maskin ?

Inlägg av 4kTRB »

Lite så här blir det med 2st 8x1 MUX.
4 MUX till och jag har mina xyz-plus signaler.
Det blir inte så komplicerat som att ha massa kapslar med logikgrindar.
xyzPlusMux_000.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
4kTRB
Inlägg: 18283
Blev medlem: 16 augusti 2009, 19:04:48

Re: State Maskin ?

Inlägg av 4kTRB »

Det här ser ut att kunna fungera.
Det finns/fanns en 16x1 multiplexer 74150 men det är nog p.g.a. kapseln de slutat tillverka den.
xyz_plus_Sch_000.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar