kennien Skrevet 7. november 2008 Del Skrevet 7. november 2008 (endret) skal lage en sekvenskrets som styrer en steppmotor. Fire signaler Q1,Q2,Q3,Q4 skal styre denne. Må bruke 4 JK-vipper ( negative edge triggered with clear and Preset ) sekvenstabell : 1. 1010 2. 1000 3. 1001 4. 0001 5. 0101 6. 0100 7. 0110 8. 0010 1. 1010 må bruke felles klokkesignal inn på vippene. jeg lager karnaugh - diagram men vet ikke hvor Preset og Clear skal kobles noen som vet ? Endret 7. november 2008 av kennien Lenke til kommentar
Thorsen Skrevet 7. november 2008 Del Skrevet 7. november 2008 Clear og Preset kan du koble som du vil dersom oppgaven ikke sier noe spesifikt. Du kan f.eks ha 8 brytere der 2 og 2 styrer hver vippe. En bryter er koblet til clear og en til preset. Eventuelt kan du cleare/presette alle samtidig. Vil anta du skal koble en til hver, slik at du kan kontrollere hva som skjer når du kommer inn i sekvensfremmede tilstander. Sekvensfremmede tilstander kan du jo ikke tvinge frem dersom du ikke har egne clear/presett linjer. Btw: Er du ikke litt sent ute ?, snart eksamen i Digitalteknikk eller ? Lenke til kommentar
kennien Skrevet 7. november 2008 Forfatter Del Skrevet 7. november 2008 takk for svar nærmer seg eksamen i digitalteknikk ja trodde det var meningen denne motoren skulle gå rundt og rundt automatisk ? har du og tatt dette faget ? jaja, blir vel ikke ferdig med laben så slepper vel sådan eksamen Lenke til kommentar
Thorsen Skrevet 7. november 2008 Del Skrevet 7. november 2008 Motoren går rundt og rundt automatisk ja. Vet ikke hvilke vipper dere har men vil anta at høy inn på clear setter dem til 0, og at høy inn på preset setter dem til 1. Så lenge clear og preset er lav kan du jo kjøre sekvensen. Jamfør datablad på vippene. Edit: På vippene (datablad) står det clear eller clear med strek over ? Dersom det er strek øver betyr det at de er aktiv lav. Da må du sette clear og (samme for presett) til høy for at sekvensen skal kunne kjøres. Lenke til kommentar
kennien Skrevet 7. november 2008 Forfatter Del Skrevet 7. november 2008 det står strek over ja på preset og clear. Det som er litt problemet og er å lage Karnaugh-diagrammet , slik at jeg ser hva som skal inn på J og K - inngangene på de forskjellige vippene. Når jeg setter opp Karnaugh-diagrammet blir jo de frekvens-fremmende satsene på en måte satt til x (dont care) , slik at feks J og K - inngangene på vippe A blir : J=Qa og K=Qä . Det vil jo si at Vippe A lever sitt eget liv,kun påvirket av Clear og Preset-verdiene. Kan det være feil i Karnaugh-diagrammet og ? Både vippe A, C og D bruker kun sine egne Q/`Q som verdier på JK-inngangene. Vippe B er avhengig av J = Qb + (Qà*Qc) jaja , du ser om du gidder svare..kunne vært helg nå , men ikke for studenter Lenke til kommentar
Thorsen Skrevet 7. november 2008 Del Skrevet 7. november 2008 Husk at clear og preset ikke trenger være med i karnaugh diagrammene. Det er noe rart i sekvenstabellen din dog.. sekvens 5-6 er lik, ingen tilstandsendring ? Før du setter opp karnaugdiagrammene kan det være smart å sette opp en tilstandstabell... over nåværende og neste tilstand samt hvilke verdier J og K må ha for at dette skal skje. Lenke til kommentar
kennien Skrevet 7. november 2008 Forfatter Del Skrevet 7. november 2008 redigerte sekvensen nå i åpningsinnlegget. Når jeg setter opp Karnaugh-diagrammet får jeg dette : JA = QA KA = QÀ JB = QB + (QÀ x Q`D) KB = Q`B JC = QC KC = Q`C JD = QD KD = Q`D ut av disse ligningene skal jo motoren visstnok snurre hvis jeg får kobla Clear / Preset rett Men når jeg kobler opp dette på koblingsbrettene fra 1962 , så snurrer den ikke. Men har dog kun prøvd uten å koble noe som helst inn på Clear / Preset Lenke til kommentar
Thorsen Skrevet 7. november 2008 Del Skrevet 7. november 2008 Satt meg ned å gjorde oppgaven nå litt fort for deg. Ja = !QbQc Ka = Qd Jb = !Qa!Qb Kb = Qc Jc = Qb!Qd Kc = Qa Jd = Qa!Qc Kd = Qb ! står for not altså de inverterte (strek over) signalene. Det er nok mange andre løsninger enn dette også. Dersom alle preset og reset er aktiveres når de er low, ville jeg koblet disse til high. (Så lenge du ikke bruker dem) Ikke la dem flyte det kan gi rare resultater. Husk når du samler i karnaug diagram må du ALLTID ha med 1-ere. X for dont care kan du ta med hvis du vil for å gjøre sekvensen lettere Lenke til kommentar
kennien Skrevet 7. november 2008 Forfatter Del Skrevet 7. november 2008 ok . TUSEN TAKK jeg skal koble dette opp imorgen håper det virker.. en gang til TAKK Lenke til kommentar
kennien Skrevet 8. november 2008 Forfatter Del Skrevet 8. november 2008 ok,har et problem her : Fra sekvens 0010 - 1010 , altså når sekvensen skal begynne på ny igjen , så stemmer det ikke helt tror jeg ? Ved inputene som du oppga , så blir Qb feil ( altså ikke 0 - 0 som den skal ) er det her jeg skal bruke preset eller clear ? altså , koble slik at systemet resettes når kombinasjonen 0010 - 1110 oppstår ? Lenke til kommentar
Thorsen Skrevet 9. november 2008 Del Skrevet 9. november 2008 Oi, hm... mulig det er noe feil i det jeg har satt opp Ved sekvens 0010 har vi: Qa = 0, Qb = 0, Qc = 1, Qd = 0. Ut fra likningene skal vi da få: Ja = !QbQc = 1*1 = 1 Ka = Qd = 0 Jb = !Qa!Qb = 1*1 = 1 Oi her var det noe rart :S *tenke* En liten glipp fra meg. Jb skal være Jb = !Qa!Qc, altså invertert Qc istedet for invertert Qb. Ved sekvens 0010 har vi: Qa = 0, Qb = 0, Qc = 1, Qd = 0. Ut fra likningene skal vi da få: Ja = !QbQc = 1*1 = 1 Ka = Qd = 0 Jb = !Qa!Qc = 1*0 = 0 Kb = Qc = 1 Jc = Qb!Qd = 0*1 = 0 Kc = Qa = 0 Jd = Qa!Qc = 0*0 = 0 Kd = Qb = 0. Som stemmer. Lenke til kommentar
kurant Skrevet 10. november 2008 Del Skrevet 10. november 2008 Ja jeg vet at dette ikke har noe med spørsmålet å gjøre, men jeg syns at det blir litt teit at de fortsatt gir slike oppgaver på videregående. Å designe digitale kretser vha J/K vipper og desslike er en teknikk som overhodet ikke blir brukt lengre i industrien. Her skriver man funksjonaliteten i et HDL (hardware description language), og syntetiserer til programmerbare logiske kretser (CPLD eller FPGA). Dette er relativt billig nå også, og i tillegg ikke så altfor vanskelig å komme i gang med. koden under (her i VHDL) vil utføre oppgaven og mer til. entity stepctrl is port ( clk, arst_n : in std_logic; enable : in std_logic; ctrl : out std_logic_vector(3 downto 0)); end stepctrl; architecture rtl of stepctrl is type step_seq_t is array (0 to 7) of std_logic_vector(3 downto 0); constant step_seq : step_seq_t := (0 <= "1010", 1 <= "1000", 2 <= "1001", 3 <= "0001", 4 <= "0101", 5 <= "0100", 6 <= "0110", 7 <= "0010"); -- registers signal seq_cnt_reg : unsigned(2 downto 0); -- sequence counter begin -- rtl -- purpose: sequence counter -- type : sequential -- inputs : clk, arst_n, seq_cnt_reg -- outputs: seq_cnt_reg p_seq_cnt : process (clk, arst_n) begin -- process p_seq_cnt if arst_n = '0' then -- asynchronous reset (active low) seq_cnt_reg <= (others => '0'); elsif rising_edge(clk) then if enable = '0' then seq_cnt_reg <= (others => '0'); else seq_cnt_reg <= seq_cnt_reg + 1; end if; end if; end process p_seq_cnt; -- output assignment ctrl <= step_seq(seq_cnt_reg) when enable = '1' else (others => '0'); end rtl; Lenke til kommentar
Thorsen Skrevet 11. november 2008 Del Skrevet 11. november 2008 Nåja at det ikke brukes er vel en sannhet med modifikasjoner. Dersom man bare skal lage 1 kort eller noen par hundre er det jo klart at de to tre-kanskje noen ti kronene en FPGA koster mer ikke er så mye. Men dersom du skal masseprodusere tusenvis av kort kan det fort bli penger utav det Dessuten er det jo mye lettere å forklare prinsippet til en tilstandsmaskin med faktiske elementer enn med en programkode. Det er jo heller ikke å forakte med litt "hands on" erfaring, der man faktisk får bryne seg på feilsøking av alle ledningene som går frem og tilbake mellom kretsene. Det blir jo på mange måter som å lære integrasjon. I dag finnes det moderne kalkulatorer som kan regne ut et hvilket som helts integral for deg, enda til analytisk og presentere svaret med variabler isteden for numerisk. Men det er ikke nødvendigvis slik at det er dette som gir det best forståelse. Det er ikke uten grunn det nå på f.eks NTNU ikke lenger er lov å bruke mer enn en "enkel" kalkulator på eksamen, selv om man kunne gjort oppgavene mye enklere og raskere på en grafisk kalkulator. Men helt klart FPGA og andre programmerbare kretser vil bare komme mer og mer inn på markedet, men det er fortsatt noen som må har hardware forståelse utover det å kunne skrive et program. Lenke til kommentar
kurant Skrevet 11. november 2008 Del Skrevet 11. november 2008 Jeg kan ikke se for meg at det i noe tilfelle vil være aktuelt å produsere en serie på flere hundre tusen kort med så enkel funksjonalitet at det kan lages med et fåtall grunnleggende logiske porter. Når kompleksiteten øker utover det helt grunnleggende er det uansett billigere med en liten FPGA.. Enkle FPGAer koster ned i 5 kroner i store serier. Når det gjelder forståelse er jeg forsåhvidt enig. Men da bør man holde seg unna J/K vipper, og heller forholde seg til D-vipper, som både er enklere å forstå, og er mye nærmere registrene man faktisk har i en FPGA. J/K vipper har en del ekstra funksjonalitet som bare bidrar til å forvirre. Lenke til kommentar
geir__hk Skrevet 11. november 2008 Del Skrevet 11. november 2008 (endret) Om du kan klare deg med en asynkron teller, så har jeg en krets som burde fungere: Kretsen består av følgende: 2 toggle-vipper. Både JK-vippa og D-vppa kan enkelt kobles som en T-vippe. 2 invertere 3 Nand porter (4 til hvis du lager xor av nand-porter) 1 Xor. Da burde du ha det du trenger. [edit] Glem det. Ser at du skal la stepmotoren bruke halvsteg også. Tror du skal kunne klare deg med 3 vipper da, hvis målet ikke er å lage en ringteller. [edit2] Det er hovedsaklig to fremgangsmåter (som jeg kan komme på i farten) for å løse oppgaven. Den ene er å lage en vanlig 3 bits binær teller, og bruke enkle logiske porter for å generere sekvensen. Det krever 3 jk-vipper. Hvis du absolutt MÅ bruke 4 vipper, så kan du alltids lage deg en johnson teller. Du vil også her være avhengig av noe styrelogikk for å få sekvensen du er ute etter. Er det et krav at telleren skal kunne telle BÅDE opp og ned? Det er det vel, siden du skal styre en steppmotor. Endret 11. november 2008 av geir__hk Lenke til kommentar
kennien Skrevet 14. november 2008 Forfatter Del Skrevet 14. november 2008 altså ,det er et grunnleggende digital-teknikk fag på Universitetet i Stavanger. Oppgaven er bare en liten del av en større oppgave, som b.l.a går ut på å lage synkrontelleren slik at man kan stoppe motoren ved feks en bestemt grad. dvs ved 400 step kan man "stoppe" den hver 400/360 ende grad dette utføres av en egen teller som trigges av klokka. selvfølgelig er det vits å kunne det helt grunnleggende, sier seg selv.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå