Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

"generator impulsów" do licznika Johnsona

Noisy_daddy 19 Maj 2012 13:27 3352 16
  • #1 19 Maj 2012 13:27
    Noisy_daddy
    Poziom 14  

    Potrzebowałbym jakiegoś układu, który działa tak, że mam na wejściu 5 bitów i zmiana ktoregokolwiek z bitów generuje na wyjściu impuls (np. poziom wysoki - niski - wysoki). Docelowo chodzi o to, że 5-bitowy kod binarny chcę zamienić na zanegowany kod pseudopierścieniowy (a na bramkach to ja dziękuję robić coś takiego, myślałem też o demultiplekserze 74154 ale chyba tak najłatwiej). W każdym razie uznałem, że wykorzystam licznik Johnsona 4017BD (tzn. dwa takie) i zaneguje wyjścia i właśnie ten impuls miałby pójść na zegar tego licznika. Jest jakiś taki układ?

  • #2 19 Maj 2012 17:39
    jarek_lnx
    Poziom 43  

    4017 nie ma wyjścia w kodzie Johnsona.

  • #3 19 Maj 2012 23:08
    _jta_
    Specjalista elektronik

    4017 daje '1' wędrującą w kółko po 10 wyjściach - chyba będzie za mało, 5 bitów daje 32 możliwości.
    Układu porównującego i dającego impuls przy zmianie nie ma, co najwyżej można by użyć np. odpowiednio
    zaprogramowanej pamięci EPROM, ale chyba wyjdzie dość drogo, do tego chyba potrzebny byłby 5-krotny
    przerzutnik 'D', żeby uniknąć problemu wyścigu - może jednak to zrobić na demultiplekserach (2x 74154)?
    Czy dobrze rozumiem, że to ma być tak, że masz 32 wyjścia i na jednym jest inny stan, niż na pozostałych?

  • #4 20 Maj 2012 12:38
    Noisy_daddy
    Poziom 14  

    Cytat:
    4017 nie ma wyjścia w kodzie Johnsona.

    Cytat:
    4017 daje '1' wędrującą w kółko po 10 wyjściach

    Faktycznie...multisim mnie oszukał w takim razie bo podpisany jako licznik Johnsona. Jest jakiś licznik Johnsona w bibliotece multisima/do ściągnięcia skądś czy muszę sam robić?

    Też myślałem o przerzutnikach D, albo nie wiem czy T nie lepsze.

    Cytat:
    może jednak to zrobić na demultiplekserach (2x 74154)?
    Czy dobrze rozumiem, że to ma być tak, że masz 32 wyjścia i na jednym jest inny stan, niż na pozostałych?

    Wyjścia będą akurat 20, ale to i tak 5 bitów więc nie ma znaczenia. Nie, tak jak mówię chodzi o to, że mam 5 bitów na wejściu a na wyjściu chcę mieć zanegowany pseudopierścieniony czyli najpierw są same jedynki, potem na najmłodszym bicie się pojawia 0 i już tak zostaje, w kolejnym kroku się pojawia dodatkowo 0 na następnym bicie i tak dalej aż 0 będzie w końcu na wszystkich wyjściach.
    Zastanawiałem się czy nie zrobić na demultiplekserach, ale to bym musiał zwierać ze sobą potem 1 wyście z 2 dla adresu drugiego, dla kolejnego 1,2, i 3-cie itd no to bez sensu...
    Także pomyślałem, że jak już będę miał ten licznik Johnsona i zaneguję wyjścia to muszę z tych 5 bitów w kodzie binarnym przy zmianie któregokolwiek bitu dać sygnał na jego clocka i wtedy będzie sprawa załatwiona...tylko czy tak się da? Hmm w sumie spróbuję z tymi przerzutnikami, też mi to przyszło do głowy, to może być nienajgorszy pomysł

  • #5 20 Maj 2012 22:34
    Noisy_daddy
    Poziom 14  

    Dobra już wiem! Na 74154 faktycznie łatwo dość da się zrobić, wystarczy prosty układ podtrzymujący poziom niski. Pojawił się trochę inny problem - te przekaźniki (RELAY_NO/NC/NONC) z multisima coś chyba nie działają. Czy to są tylko symbole?

  • #6 21 Maj 2012 01:41
    _jta_
    Specjalista elektronik

    Może być jeszcze parę problemów: (1) zwłaszcza jeśli te 5 bitów pochodzi z licznika asynchronicznego, ale
    nawet jak z synchronicznego, to 74154 mógłby coś popsuć - kiedy zmienia się stan tych 5 bitów, na wyjściu
    74154 może się pojawić, przez krótki czas, jakiś stan nieprawidłowy; (2) jeśli te 5 bitów liczy binarnie, to
    nie będą pasować do robienia kodu pseudopierścieniowego, jaki opisałeś - trzeba by było mieć licznik do 10
    i dodatkowy licznik liczący dziesiątki do 2, najwyższy bit z tego licznika powinien negować wszystkie wyjścia.

    Jeśli te 5 bitów jest z liczników do 10 i do 2, to może do wyjść demultipleksera należałoby podłączyć bramki
    Exclusive-NOR (takich, że jak na obu wejściach jest to samo, to na wyjściu jest '1', a jak różnie, na wyjściu
    '0' - odwrotnie do Exclusive-OR), pierwszą do wyjścia '0' z 74154 i wyjścia licznika 10-tek, drugą do wyjścia
    '1' z 74154 i wyjścia pierwszej, trzecią do wyjścia '2' z 74154 i wyjścia drugiej, itd. - chyba wyjdzie co trzeba.

  • #7 21 Maj 2012 10:32
    Noisy_daddy
    Poziom 14  

    Cytat:
    kiedy zmienia się stan tych 5 bitów, na wyjściu 74154 może się pojawić, przez krótki czas, jakiś stan nieprawidłowy

    Chodzi o to, że jeśli z tych 5 zmieniają się np. 2 bity, to po zmianie 1 z nich zanim ten drugi zdąży się zmienić, to może się na chwilę pojawić stan odpowiadający ten liczbie po zmianie 1 a przed zmianą 2? A czy to nie jest na tyle krótki czas, że nie da się go zaobserwować?

    Cytat:
    jeśli te 5 bitów liczy binarnie, to nie będą pasować do robienia kodu pseudopierścieniowego

    Jak to NIE BĘDĄ PASOWAĆ?

    Hmm na wyjściach demultipleksera dostajemy kod 1 z n, a czy nie są czasem dostępne kodery na kod johnsona? (nie wiem czy kodery to prawidłowa nazwa w tym wypadku, ale wiadomo o co chodzi) A może w ogóle są transkodery z binarnego na pseudopierścieniowy? Bo coś mi się wierzyć nie chce, że nikt czegoś takiego nie stworzył

  • Pomocny post
    #8 21 Maj 2012 14:22
    _jta_
    Specjalista elektronik

    Czas nieprawidłowych stanów może być od kilku do parudziesięciu nanosekund - niby krótko,
    ale jeśli sygnały są wykorzystane do sterowania szybkich układów cyfrowych, to one mogą
    zdążyć "zauważyć" błędny sygnał i coś sobie nieprawidłowo ustawić.

    Nie wiem, czy dobrze zrozumiałem, co chcesz uzyskać:
    0: 0000000000
    1: 0000000001
    2: 0000000011
    3: 0000000111
    4: 0000001111
    5: 0000011111
    6: 0000111111
    7: 0001111111
    8: 0011111111
    9: 0111111111
    10: 1111111111
    11: 1111111110
    12: 1111111100
    13: 1111111000
    14: 1111110000
    15: 1111100000
    16: 1111000000
    17: 1110000000
    18: 1100000000
    19: 1000000000
    0: 0000000000
    Ale licznik 5-bitowy binarny ma jeszcze 20..31, natomiast BCD ma 4 bity liczące 0,1,2,...,8,9,0.
    (licznik BCD ma bity 2^1 i 2^3 podane przez bramkę AND na wejście RESET, więc jak doliczy
    do 10, to jest resetowany na 0)
    Wyniki dla 10..19 są negacją wyników dla 0..9 - dobrze, żeby dane różniły się jednym bitem.
    74154 może być trudny do kupienia, ale pewnie są dekodery 3 na 8, z dodatkowymi wejściami,
    które pozwolą z 2 takich dekoderów zrobić dekoder na 16 bez dodatkowych elementów - inna
    sprawa, że z drugiego byłyby użyte tylko dwa wyjścia...

  • #9 22 Maj 2012 01:48
    Noisy_daddy
    Poziom 14  

    Już chyba wiem jak to zrobić. Niee, chcę uzyskać coś takiego:

    0: 11111111111111111111
    1: 11111111111111111110
    2: 11111111111111111100
    3: 11111111111111111000
    ...
    20: 00000000000000000000

    Ale chyba już to rozkminiłem. Jeszze jutro sprawdzę czy faktycznie działa, ale tą "chwilową" zmanę stanu bedę miał na uwadze, nie sądzę żeby w moim układzie miała znaczenie ale zobaczymy... w każdym razie dzięki za pomoc ;)

  • #10 22 Maj 2012 02:28
    _jta_
    Specjalista elektronik

    Czyli 20 cyfr na wyjściu. To pełny cykl zmian (wchodzenie zer, a potem jedynek) obejmuje 40 wartości -
    5 bitów nie wystarczy. Demultiplekser 3-na-8 to chyba 74138 i 74139 (któryś ma wyjścia open-collector).

    Z bramkami Exclusive-NOR, tak jak je opisałem, zmiany będą się propagować od końcowej cyfry do
    pierwszej, ale: najpierw te bramki, na wejściach których zmienił się sygnał, zmienią stany swoich wyjść,
    potem zmiana będzie się propagować, może zamiast 11110 -> 11100 będzie 11110 -> 11000 -> 10100 ->
    01100 -> 11100 - i te dodatkowe stany będą trwać po parędziesiąt nanosekund każdy - a pojawią się,
    bo 3-cia (od końca) bramka, która akurat nie powinna zmienić stanu na wyjściu, najpierw "zauważy"
    zmianę, która dojdzie z demultipleksera, a dopiero potem zmianę na wyjściu 2-giej bramki, na chwilę
    zmieni stan i to się będzie propagować przez kolejne bramki, aż do końca układu.

  • #11 22 Maj 2012 07:32
    Noisy_daddy
    Poziom 14  

    Cytat:
    Czyli 20 cyfr na wyjściu. To pełny cykl zmian (wchodzenie zer, a potem jedynek) obejmuje 40 wartości - 5 bitów nie wystarczy.

    Ale tych następnych 20 nie potrzebuję więc sygnał "pierwszy od lewej" dam przez inwerter na reset licznika, czyli jak mi się pojawią same zera to potem cały cykl się zacznie od nowa. Zrobiłem w końcu na bramkach dość prosto bo dla każdego sygnału odpowiadające wyjście z demultipleksera neguję i łączę przez bramkę or z wyjściem poprzednim (nie wyjściem multipleksera tylko już całego układu). Dla pierwszego i drugiego stanu jakoś tam inaczej. No ale uważam że wszystko będzie działać, dzisiaj zasymuluję sobie i zobaczę czy rzeczywiście. A dlaczego 74154 jest ciężki do kupienia??

  • Pomocny post
    #12 22 Maj 2012 11:34
    _jta_
    Specjalista elektronik

    Ma dużo nóżek, więc niewygodny do lutowania - mniej na niego chętnych; wymaga szerszego opakowania
    - mniej wygodny do trzymania w sklepie. Na dodatek daje się zastąpić innymi układami. Widywałem go
    w wersji standard (74154), ale nie H, S, czy LS - a teraz wersja standard niemodna, bo dużo prądu żre.

    Jak chesz mieć 20 wyjść, to 74154 nie wystarczy - może da się zrobić na 3-ch 74138? Ma oprócz wejść
    adresowych wybierających jedno z 8 wyjść, na którym ma być '0' trzy wejścia, z których na jedno trzeba
    podać '1' (G1), a na dwa '0' (G2A-, G2B-) - inaczej na wyjściach jest tylko '1'. Odpowiednio podłączasz
    i '0' wędruje kolejno przez 24 wyjścia, na pozostałych są '1'. Jak odpowiednio podłączysz bramki AND do
    tych wyjść i między sobą, to od wyjścia, na którym jest '0' do końca bramek AND masz '0'. Tylko wyjście,
    na którym jest '0' na początku, musi pozostać bez bramki AND - tam zawsze miałbyś '0'.

    Inna możliwość - ale pewnie polaryzacja nie będzie pasować - to użycie rejestrów przesuwnych, takich
    że na początku ustawiasz jakiś stan wszystkich wyjść, a potem w każdym kroku wchodzi odwrotny stan
    na kolejne wyjście; tylko nie wiem, czy jest możliwość ustawienia samych '1', samych '0' jest. Można
    zrobić z przerzutników np. 'D' - tylko jakoś jeszcze trzeba by generować dla nich sygnał zegarowy.

    Jeszcze inna: adresowalny zatrzask (addressable latch) - działa jak demultiplekser, ale z pamięcią na
    wyjściach - jakby się dało wpisać same '1', a potem wpisywać na kolejnych pozycjach '0'; 74259 ma
    nieodpowiednią polaryzację kasowania - na '0', jako demultiplekser ma odwrotną polaryzację, czyli '0'
    na nie-zaadresowanych wyjściach (74154, 74138 mają '1'); tak samo jest z CD4099. Ale jest z tym
    pewne ryzyko: jeśli licznik, z którego bierzesz sygnał, nie zmienia wszystkich wyjść jednocześnie, to
    taki zatrzask może wykryć chwilowe pojawienie się innego adresu i wpisać coś gdzie nie trzeba...

    Zajrzałem na www.semiconductors.com.pl - mają 74137, 74139, 74155, ale nie 74138, czy 74154.
    Mają 74S138, tylko po co taki szybki? Te 74137, 74139 i 74155, choć każdy jest demultiplekserem
    z 8-ma wyjściami, nie dają możliwości uzyskania 24 wyjść bez paru dodatkowych bramek.

  • #13 22 Maj 2012 17:33
    Noisy_daddy
    Poziom 14  

    Dzięki wielkie za pomoc. Ten 74138 wygląda dobrze, w sume prawie się nie różni, poza tym że mniej bitów. To spróbuję w takim razie na trzech takich. Hmm na razie sprawdzę czy działa wszystko tak jak chcę, na kupowanie przyjdzie czas później. Ale myślę, że na allegro powinno być nie?

  • #14 22 Maj 2012 20:02
    _jta_
    Specjalista elektronik

    Google: site:allegro.pl 74ls138 -> znajduje nieaktualną -> Allegro podpowiada aktualną,
    albo krócej: http://allegro.pl/listing.php/search?string=74ls138 i znajduje jedną ofertę:
    zestaw 4 sztuki 5zł + 5.50 za wysyłkę, trochę drogo, w sklepie bywały chyba poniżej 1zł...
    74HCT138 4zł za 4, 74HC138 3zł za 4 - HCT mogą być użyte zamiast standard, czy LS,
    HC mają inne poziomy napięć, standardowa '1' TTL może być dla nich za niska...

    A jak spróbowałem 74ls154, albo 74154, to znajduje nieaktualną i źle podpowiada - czyli
    pewnie nikt ich nie oferuje; jest moduł z LED-ami na 74154, cena wywoławcza 10zł.
    Ale 74HC154 w wersji SMD są w hurtowni, 2.25zł za 3, taniocha... +7.50 za wysyłkę.
    (jak na nich, to potrzebne 2, bo 1 ma za mało wyjść, i do drugiego potrzebny inwerter).
    Pewnie warto sprawdzić, jakie scalaki będą potrzebne, żeby jakby jeszcze coś trzeba
    było kupować na Allegro, nie płacić drugi raz za przesyłkę - bywa droższa od towaru.

  • #15 29 Maj 2012 22:31
    Noisy_daddy
    Poziom 14  

    Hmm no dobra rzeczywiście pojawił się problem z ustalaniem sygnałów na wyjściu, częściowo na pewno wynika to z samego działania multisima, więc to sprawdzę już w praktyce, ale część być może nie...dlatego mam pytanie - czy jest jakiś element który "blokuje" sygnał na jakiś ustalony czas. Chodzi o to, że chciałbym "zatrzymać" sygnał z demultipleksera i nie podawać go od razu na wyjście całego układu tylko dopiero po czasie przez który sygnał się ustali. Co mogłbym zastosować? Bo np taki przekaźnik czasowy nie pasuje bo cewka musi być wysterowana a ja chcę przepuścić sygnał bez względu na to czy jest 0 czy 1-ką...

  • Pomocny post
    #16 30 Maj 2012 02:07
    _jta_
    Specjalista elektronik

    1. Układ RC (R szeregowo, C do masy) i element (bramka, inwerter, wzmacniacz) z przerzutnikiem Schmitta
    (ten przerzutnik z "zaokrąglonego" przez układ RC zbocza robi "prostokątne").
    2. Przerzutnik D, ale do niego jest potrzebny sygnał zegarowy, a jeśli potrafimy go wytworzyć, to całość można
    zrobić na przerzutnikach D, albo układach, które je zawierają w odpowiednim połączeniu (rejestr przesuwny),
    ale nie znam takiego układu, z którego można by było mieć więcej, niż 4 wyjścia.

  • #17 16 Cze 2012 18:17
    Noisy_daddy
    Poziom 14  

    Trochę zmieniłem koncepcję, ale dzięki za pomoc!

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME