Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

74194 - krążąca jedynka w obie strony

26 Kwi 2013 12:28 4689 8
  • Poziom 10  
    Witam,

    Muszę zrobić obustronną krążącą jedynkę sterowaną za pomocą wejść S0 i S1 na rejestry 74194. Udało mi się zrobić krążącą jedynkę, ale tylko w jedną stronę. Dodam, że mam ograniczoną liczbę układów do wykorzystania (7400, 7420, 7474, 7483, 74157, 74175 i 2x 74194).
    Oto schemat jaki przygotowałem:
    74194 - krążąca jedynka w obie strony
    Jak to zmodyfikować, żeby działało w dwie strony?

    Pozdrawiam

    P.S. Na układzie zamiast OR'a powinien być sumator 7483.
    P.P.S. Zamiast tych dwóch nandów powinien być układ 7400.
    P.P.P.S. Udało mi się zrobić krążącą obustronnie jedynkę. Za pomocą spacji zmieniam kierunek krążenia. Jest tylko jeden mankament, flip flopy 7474 oraz 74175 na samym początku dają na wyjściach Qa 0 i ~Qa 1. Więc zanim jedynka nie przejdzie wszystkich ledów do drugiego okrążenia, a wcisnę spację to na wyświetlaczu pojawiają mi się dwa zapalone ledy. Jakieś pomysły jak usprawnić działanie układu?

    74194 - krążąca jedynka w obie strony
  • Poziom 27  
    Jakieś pomysły jak usprawnić działanie układu? Pewnie, że tak, ale nie żeby usprawnić układ tylko żeby go wyciepać. Masz zrobić krążącą jedynkę na rejestrach 74194 i zamiast wykorzystać możliwości tych rejestrów używasz sumatora i jakichś przerzutników - to nie jest dobry interes.

    Przede wszystkim 74194 to jest bardzo uniwersalny rejestr, potrafi przesuwać w lewo, w prawo i jeszcze załadować równolegle, do tego nie ma problemu z łaczeniem żeby uzyskać dłuższe słowo. Mając dwa rejestry 74194 (obok siebie na schemacie) łączymy wejście SR(2) prawego z wyjściem QD(12) lewego, a wejście SL(7) lewego z wyjściem QA(15) prawego, i już mamy rejestr przesuwny 8-bitowy. Dalej, zapętlamy go łącząc wejście SR lewego z wyjściem QD prawego oraz wejście SL prawego z wyjściem QA lewego. Wszystkie wejścia A, B, C, D obu rejestrów łączymy z masą oprócz jednego, na które podajemy logiczną jedynkę. Na wejścia /CRL podajemy logiczną jedynkę, a wejścia S0, S1 i CLK łączymy parami. I to by było na tyle.

    Ustawiając S1=1 S0=1 i robiąc pojedynczy CLK wpisujemy zaszytą na wejściach jedynkę do rejestru. Ustawiając odpowiednio S1=0 lub S0=0 i klikając gonimy ją w te lub wewte. A z resztą scalaków udajemy się na bazar (po wytrzeźwieniu).
  • Poziom 10  
    Dzięki za odpowiedź. Wiedziałem, że to co zrobiłem to przerost formy nad treścią.
    Zrobiłem tak jak napisałeś. Ładuję 1 na pierwszy bit i jak włączam przesuwanie w obojętnie, którą stronę, to led zaraz za tą jedynką bardzo szybko miga. Dlaczego?
    74194 - krążąca jedynka w obie strony
    Schemat troszkę prostszy od mojego.
  • Poziom 27  
    A jaką częstotliwość dajesz na CLK? Jak taką jak na rysunku, czyli 1kHz, to nic dziwnego, że wszystko wariuje, może symulacja działa w czasie zbliżonym do rzeczywistego i odświeżanie ekranu powoduje jakieś zdudnienia.

    A tak w ogóle to nie rozumiem co to znaczy "Key= Space" i nie wiem jakiego symulatora używasz. Musisz w jakiś sposób wymusić czy zaprogramować przebiegi na wejściach S0, S1 i CLK, tak żeby było jasne, że najpierw jest S1=1 S0=1 po czym następuje minimum jeden okres przebiegu CLK, a potem np. S1=1 S0=0 i następne okresy CLK, itd. Inaczej nic nie zobaczysz. I jeszcze jedno: w prawdziwym 74194 wartości wejść S1 i S0 muszą być stabilne na jakiś czas przed i po narastającym zboczem CLK.
  • Poziom 10  
    Używam multisima. Key=Space znaczy, że spacją mogę zmienić ich stan. :P
    Obojętnie jakiej częstotliwości nie ustawię tak się dzieje.
    To co mówisz, że muszę zrobić to robię z ręki. Na początku pobieram równolegle to co mam na wejściach A,B,C,D poprzez ustawienie S1 i S0 na 1 i zmieniam, któryś z nich na 0.
  • Poziom 27  
    Co prawda nie bardzo sobie wyobrażam jak można jedną spacją zmieniać oddzielnie S1 i S0, ale powiedzmy, że jakoś się da. W takim razie wywal ten generator i zmieniaj CLK też ręcznie, tak żebyś wszystko miał pod kontrolą.
    A co miałeś na myśli pisząc wcześniej pod schematem "Schemat troszkę prostszy od mojego"? To jest ten schemat, który symulujesz, czy nie?
    I jeszcze jedno: Co to właściwie jest ten element LED1, który masz na schemacie? Czy to jest rodzaj sondy logicznej czy może zestaw ośmiu diod LED, które nadmiernie obciążałyby wyjścia układu TTL?

    Zajrzałem jeszcze do katalogu Signetics i znalazłem, że dla 74194 zmiany "1"->"0" na wejściach S1 i S0 powinny się odbywać tylko wtedy gdy na CLK jest "1" (bo inaczej, jak wynika ze schematu wewnętrznego, mogą wygenerować dodatkowy impuls zegarowy). Dla 74LS194 już nie ma takiego ograniczenia (bo ma poprawiony schemat wewnętrzny).
  • Poziom 10  
    Jak to jak? Normalnie, jak wciskam spację z lewej strony to się zmienia pierwszy, a jak z prawej to drugi. Oczywiście żartuję :) Można myszką kliknąć i zmieniamy jeden tylko.
    Kolego, wydaje mi się, że robisz trochę z igły widły. "Schemat troszkę prostszy od mojego" czyli tego, który dałem w pierwszym poście. Zaś schemat w #3 to ten, który symuluję. LED1 to zestaw ośmiu diod LED. Wyjaśnij trochę kwestię obciążeń. Bo jak podłączyłem sondy to nie migały tak jak te ledy.
    Z prób wychodzi na to, że to jest 74LS194, ponieważ niezależnie czy zmienię z "1" -> "0" na CLK=1 czy CLK=0 układ działa tak samo.
  • Poziom 27  
    Kolego, to nie ja robię z igły widły tylko Ty nie bardzo umiesz opisać problem i w rezultacie jestem skazany na domysły. Na przykład przedtem pisałeś, że LED bardzo szybko miga, a teraz, że jak podłączyłeś sondy zamiast LED-ów to już nie migały jak te LED-y. I co ja mam z tego zrozumieć? Nie podałeś, czy migają zgodnie z rytmem zegara, np. co drugi zegar albo co czwarty, więc radziłem żebyś zwolnił albo nawet generował ten zegar ręcznie tak żeby była szansa na zauważenie jakiejś prawidłowości i zanotowanie. Posłuchałeś? Dalej nic nie wiem, tylko tyle że nie działa.
    Pytałem o LED1, bo normalnie tak się LED-ów do wyjść TTL nie podłącza, stosuje się albo dodatkowy driver na tranzystorze lub co najmniej opornik szeregowy do ograniczenia prądu. Takie bezpośrednie podłączenie jak na Twoim schemacie spowoduje przeciążenie wyjść, w rezultacie którego niektóre układy TTL mogą źle działać. A na ile dokładne obliczenia przeprowadza ten multisim i jak dokładny model 74194 zastosowano, to ja już nie wiem, bo nigdy nie miałem z nim styczności. W każdym bądź razie wydaje mi się, że problem leży w multisimie a nie w zaproponowanym przez mnie układzie, bo chyba zdajesz sobie sprawę jak on działa i dlaczego tak a nie inaczej wszystko zostało połączone.
    W tej chwili mogę tylko doradzić, żebyś wszystko uprościł do pojedynczego zapętlonego układu 74194 (połączone SL z QA oraz SR z QD) i próbował tak długo aż znajdziesz prawidłowy sposób przeprowadzania symulacji, najlepiej z uzyskaniem wyników w postaci symulowanych przebiegów czasowych z poszczególnych punktów układu.
  • Poziom 10  
    Ja nie umiem opisać problemu?
    Cytat:
    Na przykład przedtem pisałeś, że LED bardzo szybko miga, a teraz, że jak podłączyłeś sondy zamiast LED-ów to już nie migały jak te LED-y.

    Czego tu nie rozumiesz? Sondy nie migają szybko, a LED-y tak.
    Cytat:
    Nie podałeś, czy migają zgodnie z rytmem zegara, np. co drugi zegar albo co czwarty, więc radziłem żebyś zwolnił albo nawet generował ten zegar ręcznie tak żeby była szansa na zauważenie jakiejś prawidłowości i zanotowanie. Posłuchałeś?

    Nie podałem, fakt. Zegar generowałem ręcznie. Nie odnotowałem żadnych powiązań z miganiem tych LED-ów. Głupie pytanie czy posłuchałem, nie prosiłeś mnie o sprawdzenie tego. LED-y niezależnie od tego czy zegar jest ustawiony na 1kHz czy ręcznie go generuje i tak migają.

    Co do reszty postu, to po użyciu oporników 1 OHM LED-y już nie migają (tj. układ działa jak należy). Być może problem leży po stronie multisima, a migania LED-ów nie zobaczę po podłączeniu układu na płytce.