Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Licznik synchroniczny liczący od 10 do 40 na układzie 74193

Adison02 25 Apr 2020 16:45 1113 25
Altium Designer Computer Controls
  • #1
    Adison02
    Level 5  
    Witam, zaprojektowałem układ który ma liczyć od 10 do 40. Lecz nie wiem jak to zrobić, co jednak udało mi się zaprojektować jest taki układ (w załączniku), proszę więc o nakierowanie co mam zrobić by zaczął on liczyć tak jak wcześniej napisałem od 10 do 40.
  • Altium Designer Computer Controls
  • #2
    dt1
    Admin of Computers group
    Witaj,
    Elektronikiem nie jestem, ale na moje oko na początek powinieneś zapoznać się z dokumentacją układu, na podstawie którego coś projektujesz. Wejścia U/D są to wejścia zliczające, masz je ze sobą zwarte, czyli podając impuls pojawia się jednocześnie stan wysoki na obu, w takim przypadku układ nie będzie liczył, co jest logiczne, bo ciężko jednocześnie liczyć do góry i w dół, a jeśli nie jest - to jest określone we wspomnianej dokumentacji.

    O ile licznik jedności powinien przyjmować impulsy z jakiegoś generatora, to licznik dziesiątek powinien przyjmować impulsy z licznika jedności, przeczytaj w dokumentacji do czego służy wyjście CARRY licznika (u Ciebie CO - pin 12).

    Biorąc pod uwagę, że licznik ma liczyć od dziesięciu, resetowanie licznika dziesiątek powinno polegać na załadowaniu do niego liczby 1, co zrobisz podając odpowiednie stany na jego wejścia A/B/C/D i korzystając z wejścia LOAD (opis w dokumentacji układu). Jak dla mnie to powinno dziać się w momencie wyświetlania czwórki na liczniku dziesiątek oraz jedynki na liczniku jedności (bo skoro ma liczyć do 40, to 40 jeszcze ma się wyświetlać, dopiero przejście na 41 powinno zaprogramować jedynkę na dziesiątkach i zero na jednostkach).

    Tak więc patrząc na Kolegi schemat wygląda na to, że połączenia są nieco losowe, po skonsultowaniu z dokumentacją może wyjdzie nieco lepiej.
  • Altium Designer Computer Controls
  • #3
    Adison02
    Level 5  
    Udało mi się jak na ten moment uzyskać stan początkujący 10, lecz nadal nie wiem co zrobić że układ zaczął liczyć.
  • #4
    ojciec
    Level 33  
    Po załadowaniu stanu początkowego 10 (stan chwilowy niski), Load w stan wysoki
  • #5
    User removed account
    Level 1  
  • #7
    User removed account
    Level 1  
  • #8
    CYRUS2
    Level 43  
    Awyrdonyt wrote:
    Liczenie dziesiątkami to najszybsza metoda na liczenie dużych liczb.Pewnie dlatego, żeby szybciej liczył do 40. Już po 4 cyklach okaże 40!
    Ten licznik nie liczy dziesiątkami.
    Po czterech cyklach pokaże 14 -nie 40.

    To licznik synchroniczny - i dlatego wszystkie przerzutniki są sterowane.
    Licznik synchroniczny może liczyć w tył.
  • #10
    CYRUS2
    Level 43  
    Post #6
    _jta_ wrote:
    Dlaczego generator zegarowy podaje sygnał na wejście licznika dziesiątek?
    Odpowiedziałeś na post #6.
    Post#7
    Awyrdonyt wrote:
    Pewnie dlatego, żeby szybciej liczył do 40. Już po 4 cyklach okaże 40! Liczenie dziesiątkami to najszybsza metoda na liczenie dużych liczb.
    Odpowiedź nieprawidłowa.
    Kiepski opis w cytacie dlatego kolega nie rozumie o co chodzi w liczniku synchronicznym.
  • #11
    _jta_
    Electronics specialist
    Link - tu są opisy '192 i '193; pierwszy jest dziesiętny (0-9), drugi binarny (0-15), oba synchroniczne, zmiana stanu "w górę" na zboczu L->H CPU, "w dół" na L->H CPD; przy stanie 0 stan niski CPD powoduje stan niski TCD, przy maksymalnym (9/15) stan niski CPU - stan niski TCU, i tym należy sterować następny licznik (TCU->CPU, TCD->CPD); pojedynczy licznik jest synchroniczny, ale taka kaskada już nie, bo sygnał propaguje się poprzez poprzedni licznik - żeby uzyskać kaskadę synchroniczną, trzeba dołożyć bramki OR na wejściach CP* - licznik jedynek ma dostać np. na CPU OR(0,globalnyCPU), licznik dziesiątek OR(TCUjedynek,globalnyCPU); ładowanie i reset są asynchroniczne.
  • #12
    CYRUS2
    Level 43  
    _jta_ wrote:
    pojedynczy licznik jest synchroniczny, ale taka kaskada już nie
    Nieprawda, kaskada też jest sychroniczna.
    Kolego, ranga Specjalisty zobowiązuje do pisania sensowych odpowiedzi.
    _jta_ wrote:
    sygnał propaguje się poprzez poprzedni licznik
    Nieprawda.
    Stany każdego przerzutnika zmieniają się jednocześnie.
    Niezależnie od liczby przerzutników
    Na tym polega synchroniczność.
  • #13
    User removed account
    Level 1  
  • #14
    CYRUS2
    Level 43  
    Forum ,czytają ludzie którzy chcą z forum zdobyć wiedzę.
    Nie powinni być wprowadzani w błąd.
  • #15
    _jta_
    Electronics specialist
    Kocioł garnkowi przyganiał - właśnie Ty wprowadzasz w błąd.
    CYRUS2 wrote:
    Stany każdego przerzutnika zmieniają się jednocześnie.

    W ramach jednego układu 192/193, tak. Przy prostym połączeniu, nie - każdy kolejny jest opóźniony, dla 74HC192/74HC193 przy zasilaniu 5V i w temperaturze 25C typowo o 11ns (strona 7). Przy zliczaniu 20MHz i czterech licznikach (zliczanie dziesiętne 0-9999) różnica czasów między licznikami jedynek i tysięcy przekroczy pół okresu zegara, przy sześciu rozbieżność przekroczy cały okres - zanim licznik setek tysięcy zmieni swój stan, licznik jedynek przeskoczy z 0 na 1, i np. po 099999 zamiast 100000 i 1000001 będą 099990, 099900, 099000, 090000, 000000, 000001, 100001!. A ja napisałem, co zrobić z połączeniem, żeby tego nie było.
  • #16
    User removed account
    Level 1  
  • #18
    _jta_
    Electronics specialist
    One akurat są synchroniczne, ale bez dodatkowych bramek nie można z nich zrobić synchronicznej kaskady, bo w takiej kaskadzie zbocze L->H musi dochodzić wszędzie jednocześnie. Natomiast 190 i 191 dają taką możliwość, dzięki wejściu /COUNT_ENABLE. Czyli pewnie autor powinien użyć 190...
  • #20
    User removed account
    Level 1  
  • #25
    CYRUS2
    Level 43  
    tos18 wrote:
    Jakaś epidemia liczników 10-40 ?
    To zadanie domowe ze szkoły.

    Awyrdonyt wrote:
    Licznik asynchroniczny - to taki, w którym stany na wyjściach zmieniają się w takt mierzonych impulsów.
    74192 i 74193 są licznikami asynchronicznymi, co już zamyka dyskusję na ich temat, bo to tylko wodolejstwo.

    74193 – synchroniczny, rewersyjny licznik dwójkowy z dwoma wejściami zegarowymi i z zerowaniem
    74192 – synchroniczny, rewersyjny licznik dziesiętny BCD z dwoma wejściami zegarowymi i z zerowaniem
    Po angielsku ? Datasheed.
    74193 Synchronous 4-Bit Binary Counter with Dual Clock
    72192 Synchronous up/down decade(,binary) counter
  • #26
    pikarel
    Level 35  
    Jeśli "to coś" ma liczyć poprawnie, to pierwsze impulsy od 0 do 9 wskaźnik powinien ignorować pomimo upływu czasu (0 na wyświetlaczu, bo nic do 10 nas nie interesuje), następnie od 10 zacząć wskazywać faktyczny stan, po wypełnieniu 39 wrócić do wyświetlania 0, cykl powtórzyć lub skończyć - autor nie pisze nic o tym. Nie wiem, czy stan 10 do 39 (lub 11 do 40) ma być na wyświetlaczu, czy to ma być LED świecący się od 10 do 39 (11 do 40).
    Każdy licznik jest po to, aby po wykonaniu liczenia dać impuls o jego wykonaniu, tu nie ma informacji, jak i czym ma informować o początku i końcu liczenia, a przecież to licznik okienkowy.

    Jeśli to jest faktycznie zadanie domowe, to autor tego zadania nigdy nie powinien więcej pisać zadań:
    to przedmiot ścisły, treść zadania ma być jednoznaczna, a nie poezją do zastanawiania się, co "poeta" miał na myśli.
    Jeśli dzisiaj tak wyglądają podręczniki, to zastanawiam się, jaki poziom będzie za 30 lat.