Pytanie:
W jaki sposób zatrzask określa swój stan początkowy?
Lightyear Buzz
2012-01-25 08:12:54 UTC
view on stackexchange narkive permalink

W jaki sposób zatrzask uzyskuje stan początkowy? Domyślam się, że zależy to od warunków wyścigu i który warunek jest pierwszy, to jest stan, w którym zaczyna się zatrzask.

Pytanie w nagłówku jest zbyt szerokie, aby wygenerować jedną odpowiedź, więc prawdopodobnie nie pasuje do tej witryny. Twoje (prawidłowe) pytanie techniczne jest prawie duplikatem innego pytania z dzisiejszego dnia: http://electronics.stackexchange.com/questions/25581/sequential-circuits
Tak, ale odpowiedzi na to pytanie nie były tak pouczające, jak te poniżej i nie jestem pewien, czy zbyt wiele pytań ma jedną odpowiedź, czego dowodem jest posiadanie takiej witryny w pierwszej kolejności. Zgadzam się jednak, że to może być trochę za szerokie, ale biorąc pod uwagę wszystkie inne przydatne szerokie pytania na tych stronach, pomyślałem, że najlepiej będzie zadać to pytanie zarówno innym, jak i mnie.
Jeśli edytujesz pytanie, aby uwzględnić tylko część techniczną (drugi akapit), usunę mój głos przeciw.
** Wystarczająco dużo, aby szybko ponownie nauczyć się zapomnianej koncepcji. ** Lub nauczyć się nowej koncepcji w ten sam sposób. O ile nie nastąpi zmiana paradygmatu, istotne są podstawy, a większość (praktycznych) zmian w technologii jest na tyle marginalnych, by nadążyć.
Nie ma właściwej odpowiedzi na to pytanie. Jeśli społeczność naprawdę chce, aby to pytanie pozostało otwarte, powinno to być przynajmniej wiki społeczności.
@ThePhoton, Powiązane pytanie wydawało się kiepskim substytutem. Próbowałem wskrzesić ten post, aby był bardziej technicznie zorientowany, ale ma już kilka bardzo pozytywnych odpowiedzi opartych w połowie na części, którą zredagowałem.
Pięć odpowiedzi:
user3624
2012-01-25 08:51:37 UTC
view on stackexchange narkive permalink

Z pewnością uczy się w szkole wielu rzeczy, które nie są potrzebne na rynku pracy. I oczywiście jest wiele rzeczy, których nie uczy się, że powinny. Można to prawdopodobnie powiedzieć o każdym rynku pracy, ponieważ zależy to od specjalizacji, w której dana osoba zostanie zatrudniona. Niestety, ani twoi profesorowie, ani ja nie możemy ci powiedzieć, czego będziesz, a czego nie będziesz używać, gdy znajdziesz prawdziwą pracę w Twoja dziedzina.

Na przykład nie używam rachunku różniczkowego w mojej pracy jako EE, ale współpracownik, który technicznie jest również EE, używa rachunku różniczkowego prawie codziennie. Projektuję PCB i FPGA, podczas gdy on pisze algorytmy DSP. Nie było sposobu, aby nasi nauczyciele kiedykolwiek wiedzieli, czego potrzebujemy, aby wykonać zadanie.

Biorąc to pod uwagę ... Twoje pytanie do nauczyciela, dotyczące początkowej wartości zatrzasku lub przerzutnika (FF ), było świetnym pytaniem, a sposób, w jaki odpowiedziała pani profesor, świadczy o jej nieznajomości wymagań dotyczących projektowania praktycznych cyfrowych obwodów logicznych.

Mówiąc najprościej, początkowa wartość zatrzasku lub FF jest nieokreślona. Oznacza to, że będzie miał wartość początkową, ale nie będziesz wiedział z góry, co to jest. Dany zatrzask / FF może nawet mieć różne wartości początkowe od jednego włączenia do następnego. Czasami będzie to „0”, innym razem „1”. Rzeczy takie jak temperatura i szybkość narastania szyn zasilających wpłyną na wartość początkową.

Jeśli twój obwód wymaga znanej wartości początkowej, musisz ją wymusić. Zwykle odbywa się to za pomocą pewnego rodzaju wejścia ustawiania / resetowania / kasowania, które jest sterowane sygnałem resetowania. Z tego powodu prawie każdy obwód cyfrowy o rozsądnej złożoności ma sygnał resetowania. Sygnały resetowania są przeznaczone nie tylko dla procesorów.

Podczas studiów nauczyłem się wielu rzeczy, które nie były mi potrzebne w późniejszym życiu zawodowym, ale były dla mnie bardzo przydatne. Ważną częścią edukacji jest „nauka uczenia się”.
Nigdy nie wiesz, co będziesz musiał wiedzieć. Uzyskałem tytuł magistra w latach sześćdziesiątych. Pamiętam kursy takie jak radio mikrofalowe i wtedy myślałem, że będę pracować z systemami cyfrowymi i nigdy nie zamierzam używać żadnego z tych rzeczy (w tamtym czasie mikrofale były używane głównie przez firmę telekomunikacyjną do dalekosiężnych przekaźników radiowych ). Teraz, ponad 40 lat później, pracuję nad systemami wbudowanymi, wszystko jest bezprzewodowe i układam anteny mikropaskowe na PCB.
@davidKessner, Pomyślałem, że w niektórych warunkach wyścigowych zatrzasków naprawdę ma znaczenie, jak ładuje się szyna zasilająca. Bardzo szybkie ładowanie może doprowadzić do jednej rzeczy, a powolne do innego, ale potrzebowałeś bardzo dobrej jakościowo scharakteryzowania swoich bram. Samo to sprawiłoby, że proces byłby nieco bezwartościowy dla każdego prawdziwego urządzenia, w którym pin resetowania działa z łatwością, przy niewielkim projekcie i małej złożoności.
Oli Glaser
2012-01-25 11:04:38 UTC
view on stackexchange narkive permalink

Jeśli masz na myśli włączanie (przed resetem), to jest prawie tak, jak mówisz - bramki w FF nie będą idealnie symetryczne, więc jeden "wygra" wyścig, a zatrzask zmierza w kierunku tego stanu. Jaki to będzie stan, jest nieprzewidywalny.

To trochę tak, jakbyś balansował piłką na szczycie spiczastego dachu domu - w teorii, jeśli wszystko było idealnie nieruchome, powinno tam pozostać. W praktyce zawsze będzie się staczał na jedną lub drugą stronę.

Dlatego po włączeniu większość obwodów cyfrowych musi zostać zresetowana do znanego stanu (tam, gdzie jest to konieczne, aby stan był początkowo znany, możesz pozostawić niektóre rejestry niezdefiniowane / nieużywane, dopóki nie zostaną zapisane za pierwszym razem)

smallbee
2012-01-25 08:49:39 UTC
view on stackexchange narkive permalink

Myślę, że to zależy od tego, o czym mówisz.

http://en.wikipedia.org/wiki/Latch_%28electronics%29

Niektóre zatrzaski można zresetować, więc wiesz, od czego zacząć. Myślę też, że próbowała po prostu zademonstrować koncepcję stanu „niezmieniony” / „zachowaj” , nie ma znaczenia, jaki jest poprzedni stan.

clabacchio
2012-01-25 13:27:37 UTC
view on stackexchange narkive permalink

Dwie krótkie rzeczy: na pierwsze pytanie nadal jestem studentem, odbywam staż w firmie i stwierdziłem, że wiele koncepcji, nawet te, które uznałem za mniej ważne, jest przydatnych i będziesz narzekać kiedy nie będziesz dobrze znać tych pojęć, ponieważ miałeś złego nauczyciela. (Wiem, że może się to wydawać trywialne, ale to pierwsze wrażenie, jakie odniosłem, gdy dotarłem do prawdziwego świata)

Do drugiego pytania dodam tylko swój punkt widzenia: zamki i FF mają na myśli do przechowywania wartości i mają sens, jeśli podasz tę wartość jako pierwszą (chyba że chcesz stworzyć generator losowy). Tak więc przy resetowaniu lub ustawianiu wartości pierwszym krokiem jest zawsze wprowadzenie.

Tobias Knauss
2019-07-02 01:40:21 UTC
view on stackexchange narkive permalink

(niemieckie tłumaczenie poniżej)
(Deutsche Übersetzung weiter unten)

Zaakceptowana odpowiedź użytkownika „user3624” i inne odpowiedzi już zawierają wiele dobrych i wystarczających informacji.
Ale wszystkie z nich odnoszą się albo do teoretycznego zachowania obwodu. Lub odnoszą się do prawdziwych układów scalonych, co oznacza obwody elektroniczne zbudowane w warunkach przemysłowych: obwody są bardzo dokładne i prawie symetryczne.
Teoretycznie zatrzask lub przerzutnik nigdy nie zadziała, ponieważ teoria (która wykorzystuje doskonałe części elektroniczne) nie może wyjaśnić zachowania obwodu po włączeniu. Z tego samego powodu wiele symulatorów nie może zasymulować (idealnego) flipflopa.

Jeśli nie używasz zatrzasku lub flipflopa w układzie scalonym (jak układy z serii 7400, np. 7474 lub 74279), ale samodzielnie utworzysz prostą, możesz ją łatwo zmodyfikować, aby uzyskać idealnie określony stan początkowy. Budowa zatrzasku jest bardzo prosta i wymaga tylko kilku części: 2 tranzystorów i 4 rezystorów; i 2 przyciski do sterowania stanami.
Oto schemat obwodu prostego zatrzasku. Użyłem tych samych tranzystorów, które są pokazane na schemacie:
enter image description here Budując ten obwód na płytce stykowej (z dodatkową diodą LED przed rezystorem 1k) stwierdziłem, że przy włączaniu zawsze świeciła ta sama dioda. Wynika to z tolerancji w częściach elektronicznych: jeden tranzystor nigdy nie jest taki sam jak drugi. Przełącza się trochę szybciej lub wolniej, więc cały obwód ma ulubiony stan początkowy, w który wchodzi po włączeniu zasilania.
Teraz chciałem zmusić ten obwód do przeciwnego stanu początkowego, w którym druga dioda LED była zawsze zapalona po włączeniu. Znalazłem kilka porad w internecie, które obejmowały:

  • użyj różnych rezystorów na podstawach tranzystorów
  • dodaj diodę przed jedną bazą tranzystora

Próbowałem obu, osobno i razem, ale wynik nie był satysfakcjonujący. Zamiast mieć zawsze ten sam stan początkowy, stał się losowy po zastosowaniu jednej lub obu wymienionych zmian. Poszło więc we właściwym kierunku, ale to nie wystarczyło. Mógłbym bardziej zmienić wartości rezystorów lub użyć 2 diod zamiast jednej, ale myślę, że to nadal nie dałoby bezpiecznego rozwiązania. Więc wpadłem na inny pomysł:

  • umieść mały kondensator w jednej bazie tranzystora, jedną stroną podłączoną do podstawy tranzystora, a drugą stroną do masy.

Najpierw wypróbowałem 1uF i zadziałało idealnie. Potem zszedłem do 10nF i dalej do 100pF i 10pF i nadal działało. Działał nawet w 90% przypadków z 1 pF.
enter image description here Działa, ponieważ kondensator zwiera podłączoną bazę tranzystora (Q1) do masy przez bardzo krótki czas, aż kondensator zostanie naładowany ... zostanie naładowany. „byłby”, bo ta krótka chwila wystarczy, żeby drugi tranzystor Q2 się włączył, a gdy Q2 jest załączony, baza Q1 jest podłączona do masy, więc Q1 pozostanie wyłączony, dopóki ktoś nie wciśnie SW2. Kiedy SW2 jest wciśnięty, kondensator zostaje naładowany, a po zakończeniu Q1 zostaje włączony.

Aby zapewnić bezpieczne, długotrwałe użytkowanie, możesz dodać mały rezystor (np. 10R) w rzędzie z kondensatorem, aby uniknąć dużych prądów podczas rozładowywania.

(schematy obwodów utworzone online za pomocą „CircuitLab”)


Wreszcie, ponieważ jestem Niemcem i chcę, aby moi rodacy znajdowali odpowiedzi również w naszym języku, cały tekst ponownie piszę po niemiecku:

Die akzeptierte Antwort von Benutzer "user3624" und die anderen Antworten liefern bereits viele gute und ausreichende Informationen.
Aber alle beziehen sich entweder auf das theoretische Verhalten der Schaltung, oder sie beziehen sich auf einen realen IC, also eine elektronische Schaltung, die unter industriellen Bedingungen hergestellt wurde: extrem genau und fast symmetrisch.
Teoretycznie bistabilny multiwibrator lub przerzutnik nigdy nie zadziała, ponieważ teoria nie może wyjaśnić procesu włączania przy użyciu doskonałych komponentów elektronicznych. Z tego powodu klapki nie mogą być symulowane przez wiele symulatorów.

Jeśli nie używasz multiwibratora lub przerzutnika w układzie scalonym (jak w serii 7400, np. 7474 lub 74279), ale zbudujesz go samodzielnie, możesz go łatwo zmodyfikować, aby uzyskać bezpiecznie zdefiniowany stan włączenia. Zbudowanie multiwibratora jest bardzo łatwe i potrzebujesz tylko kilku elementów: 2 tranzystorów i 4 rezystorów oraz 2 przycisków do przełączania stanu.
Schemat obwodu prostego przerzutnika pokazano powyżej. Użyłem tych samych tranzystorów w moim obwodzie co na schemacie.
[IMAGE 1]
Kiedy ustawiłem ten obwód na płytce stykowej (z dodatkową diodą LED przed rezystorem 1k) zauważyłem, że ta sama dioda LED zawsze się świeci po włączeniu. Wynika to z tolerancji w elementach elektronicznych: żaden tranzystor nie jest inny. Jeden przełącza się szybciej lub wolniej, co oznacza, że ​​cały obwód ma preferowany stan, który przyjmuje po włączeniu.
Teraz chciałem wymusić na obwodzie przeciwny stan po włączeniu, w którym druga dioda LED zawsze się świeci. Znalazłem różne rady w Internecie, między innymi:

  • Użyj różnych rezystorów przed podstawami tranzystorów
  • dodaj diodę przed bazą tranzystora

Próbowałem zarówno indywidualnie, jak i razem, ale wynik nie był zadowalający. Zamiast zawsze uzyskiwać ten sam stan włączenia, był teraz zbieg okoliczności, że dioda LED świeciła się po włączeniu. Zmierzał we właściwym kierunku, ale to nie wystarczyło. Mógłbym jeszcze bardziej zmienić wartości rezystancji, a może podłączyć szeregowo 2 diody przed bazą tranzystora, ale myślę, że nadal nie zapewniłoby to bezpiecznego rozwiązania. Więc wpadłem na inny pomysł:

  • Dodaj mały kondensator przed podstawą tranzystora, jedną stronę połączoną z bazą tranzystora, a drugą z masą.

Najpierw wypróbowałem 1uF i zadziałało idealnie. Potem użyłem mniejszych wartości, najpierw 10nF, potem 100pF i 10pF i nadal działało. W 90% przypadków działał nawet z 1pF.
[OBRAZ 2]
Działa, ponieważ kondensator na krótko zwiera bazę tranzystora Q1 do masy, dopóki kondensator nie zostanie naładowany ... zostanie naładowany. „Byłoby”, ponieważ ta krótka chwila wystarczy, aby tranzystor Q2 się włączył, a jak tylko się włączy, baza Q1 jest podłączona do masy i Q1 pozostaje wyłączona, dopóki ktoś nie zadziała SW2. Po naciśnięciu SW2 kondensator jest ładowany, a Q1 jest przełączany natychmiast po tym.

Aby zapewnić bezpieczne i długotrwałe użytkowanie, zaleca się szeregowe podłączenie małego rezystora (np. 10R) do kondensatora, aby uniknąć wysokich prądów rozładowania.

Witamy w EE.SE.Zauważ, że kiedy używasz przycisku CircuitLab na pasku narzędzi edytora, edytowalny schemat jest zapisywany w twoim poście.To ułatwia nam kopiowanie i edytowanie naszych odpowiedzi.Nie potrzebujesz konta CircuitLab, zrzutów ekranu, przesyłania obrazów, siatki tła.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...