TXRX Tillståndsmaskin

Berätta om dina pågående projekt.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Tog det här som en övning att designa logik för 4-bits seriell synkroniserad dataöverföring.

Muxen har en "idle", en nolla, sedan en startbit, etta, sedan D0 till D3 och sist en stoppbit, nolla.
GO måste gå hög för att starta TX och så länge inte detta skett så är signalen RDY hög.

Mottagaren detekterar startbiten och påbörjar sedan inskiftning av D0 till D3.
Sedan kollas att stoppbiten är korrekt. OK går hög en klockcykel. Om stoppbiten är
hög så går ERR hög och förblir hög tills nästa startbit anländer.

Fick lite huvudbry då skiftregistret stegade in en bit för mycket men ändrade till negativt flanktriggad och då fungerar det som tänkt.

Vore kul att bygga med TTL-logik eller CMOS.
Några mer funktioner för att latcha data till muxen och och styrning mha RDY- OK- och ERR-signalerna vore önskvärt.

Har testat det hela i LogiSim. Trevlig programvara.
RX_ASM.jpg
TX_ASM.jpg
TXRX.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Testade med att ladda en serie 4-bits tal från ett minne och överföra.
I tur och ordning överförs 1,2,3,4,5,6,7,8 och sedan låses överföringen
tills G aktiveras på nytt och samma sekvens upprepas.

Tänker mig mottagardelen inbyggd i någon pryl som innehåller någon IC
som behöver initieras. Och sändardelen som en slags programmerare som man
ansluter för att konfigurera prylen med, vid behov.
TXRX_Exp_000.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Vet inte om någon har ett tips på hur jag får 2 klockor
med samma frekvens men som ligger ur fas att synkronisera ett antal klockcykler?

När tex startbiten kommer så ska klockan hos RX-delen läggas i fas med TX-klockan.
Nerre
Inlägg: 26655
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: TXRX Tillståndsmaskin

Inlägg av Nerre »

Jag har aldrig byggt mottagning i hårdvara, däremot skrivit i Z80-assembler på ABC80.

Den var dock rätt dåligt optimerad (jag gick på högstadiet eller första året på gymnasiet på den tiden). Först låg en loop och väntade på startbit. Sen var det en fördröjning på en halv bit-längd för att hamna mitt i biten, och sen klockades bitarna in med en bit-längd emellan.

Jag tror att du på mottagarsidan behöver en klocka som är typ 4-5 gånger snabbare än på sändarsidan, just för att kunna se till att du hamnar mitt i bitarna när de ska klockas in.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: TXRX Tillståndsmaskin

Inlägg av Icecap »

I "verkliga" UART samplas input minst 8 gångar, oftast 16 gångar. Det kan finnas specialfall med fler eller färre.

De har sedan '1' som viloläge, detta för att kunde avkänna om en ledning är ryckt ut (ger RX-error).
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

I detta fallet går det inte ha en klocka med högre frekvens hos RX-delen.
Det skulle behövas en krets som avbryter en pågående klockcykel och startar
den från noll så att säga.
Användarvisningsbild
AndLi
Inlägg: 17050
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: TXRX Tillståndsmaskin

Inlägg av AndLi »

Då får du väl sänka hastigheten på TX eller gå över till en syncron överföring...
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Klockorna måste synka i samma frekvens annars fungerar det inte.
Drömmen är ju att bara ha seriedata som enda förbindelse.
555 har en Reset som kanske går nyttja.
555 går enkelt att få kristallstyrd med en standard 32768Hz-kristall.
ICM7555.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: TXRX Tillståndsmaskin

Inlägg av Icecap »

Att sända med den typ state-mashine er OK - men att ta emot på "bit-kanter" kommer att ge problem. Där behövs definitivt samplingen att vara minst mitt i en databit men helst ett par samplingar per databit.

Tänk tanken att startbit rent faktisk är en störning, något som definitivt sker utanför teori-världen. Den är lång nog till att starta mottagningen men så pass kort att den bara är en störning.

Men jag förstår det roliga i att ställa upp de olika funktioner i state-mashine diagrammer - men att bygga efter dom för praktisk bruk är inte vettigt utan tanke på vad som kan gå fel.

Du kan t.ex. inte veta om det var en giltig data som kom eller om det var en mottagning triggad av en störning. Likaså bör du tänka över hur du säkrar att du inte får overrun och andra fel. Signal för fel stopbit?

Teori är att det fungerar om alt annat, praktik är om det fungerar i verkligheten med störningar, glapp i kontaktdon, idioter som drar ut kontaktdon o annat skit.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Jag ska inte använda det hela till något extremt.
Får nog överge tanken med synkade klockor såvida jag inte tar emot någon signal i etern som sköter klockan.

Moddade schemat så det fungerar för 8 bitar. Jag behövde inte ändra något i kontroll-logiken (T0-T2).
Bara koda av TX-räknaren annorlunda och utöka MUXen.
TXRX_8_BIT.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Kollade på en ic från Fujitsu och sättet att välja register. De har seriell laddning där sista biten styr data till 1 av 2 register.
Genom jag som i mitt fall vill sätta 4-bitsregister så låter jag D0-D3 hålla värdet
och D4-D7 (D4-D5 i exemplet) hålla adressen.
Register 3 ska sättas till 7.
RXTX_RegisterSet.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Tanken med maskinen är att sätta upp och läsa registren i en Seiko Epson RTC-72421.
Här har jag alla kontrollpinnar som behöver styras och 3 register. Ett register för adress
och 2 för data. OC är till för att få three-state på skrivregistret så det går läsa med det
andra dataregistret. LogiSim har separata 3-state buffertar som jag inte ritat in.
Kanske jag kan utesluta OC och koppla three-state-pinnen hos registret till RD istället.

Det är ganska rättfram att programmera registren för utom att man måste kolla
BUSY-biten i ett register innan man kan skriva klart. På något sätt hoppas jag det går
lösa med en ASM (maskin). De ensamma D-vipporna sätts till 1 eller 0 med hjälp av D0 plus
val av vippa med D4-D6
RXTX_RegisterSet_000.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: TXRX Tillståndsmaskin

Inlägg av Icecap »

Nu kommer jag att vara lite tråkig: μC is tha shit för sådana saker.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Jag plockade faktiskt fram min PIC 16F84 lärobok. Jag har ett kit från AoE från 2002, Picee nånting, för att labba med den processor.
Användarvisningsbild
4kTRB
Inlägg: 18289
Blev medlem: 16 augusti 2009, 19:04:48

Re: TXRX Tillståndsmaskin

Inlägg av 4kTRB »

Ovanstående fungerade inte riktigt.
Avkodaren måste nollställas efter att en vippa är satt.
Nu fungerar det.

Först måste jag i så fall löda i komponenterna och sedan lägga en hel del tid på att lära mig det som finns i boken.
Men det hade så klart kunna varit användbart för en del projekt att kunna klämma i en controller.
RXTX_RegisterSet_001.png
PICee.jpg
PIC16F84Bok.jpg
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar