Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'układy scalone'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Imię


Strona

Znaleziono 6 wyników

  1. LFSR czyli Linear Feedback Shift Register 1.TEORIA LFSR, czyli rejestr przesuwający z liniowym sprzężeniem zwrotnym. Jest najprostszym generatorem bitów pseudolosowych. Najzwyklejszy LFSR jest zbudowany z rejestru przesuwającego (zazwyczaj SIPO) o długości m, jednej lub kilku bramek XOR (lub XNOR) podłączonych do równoległych wyjść rejestru w odpowiedni sposób. Taktowany zazwyczaj zegarem o stałej częstotliwości f0 . Wyjściem sekwencji pseudolosowych bitów najczęściej identyfikujemy ostatni człon rejestru (m). Do generacji bitów układ potrzebuje ziarna (seed). W rejestrze 4 bitowym jest !15! możliwości. Pomija się tutaj ziarno złożone z samych zer. W takim przypadku układ się "zatrzaśnie", bramka XOR wyrzucać będzie zawsze stan niski. Maximum Length Sequence Gdy odpowiednio podłączymy wejścia bramek do rejestru osiągniemy tzw. "ciąg maksymalnie długi", inaczej nazywany także m-sekwencja, N-sekwencja albo MLS (Maximum Length Sequence). Jeśli wielomian charakterystyczny rejestru liniowego ze sprzężeniem zwrotnym jest nierozkładalny, to ciąg bitów nazywamy maksymalnie długim. Ilość stanów w takim przypadku wynosi: K = 2m - 1 m -> długość rejestru I tak dla rejestru 16 bitowego, w momencie uzyskania MLS posiadamy 216-1 stanów, czyli K = 65 535. Ilość takich wielomianów można obliczyć stosując wzór: ϕ(2m-1)/m m -> długość rejestru ϕ -> funkcja Eulera (tocjent) Dla rejestru 5 bitowego mamy 6 wielomianów. ϕ(25-1)/5=ϕ(31)/5=30/5=6 A są to: X5+X4+X3+X2+1 X5+X4+X3+X1+1 X5+X3+X2+X1+1 X5+X4+X2+X1+1 X5+X2+1 X5+X3+1 Symulacja potwierdza, że są to wielomiany MLS: Jak działa LFSR z MLS a jak bez? GIF przedstawia symulację dwóch oddzielnych LFSR, o dwóch różnych wielomianach, jeden wielomian jest nierozkładalny, drugi zwykły. Ziarno takie samo (1111) oraz taktowanie wspólne. Właściwości MLS: 1. W każdym pełnym cyklu (K) liczba jedynek jest większa od liczby zer o 1. Dodatkowa jedynka wynika z wyłączenia stanu 0. Oznacza to, że orzeł i reszka są równie prawdopodobne. Dla przykładu rejestr 5-bitowy z MLS zawsze wygeneruje 16 jedynek i 15 zer. (Obrazki pewnie małe, może kliknięcie coś da 😉 ) 2. W jednym pełnym cyklu 1/2 sekwencji jedynek i zer mają długość jeden; 1/4 sekwencji jedynek i zer mają długość dwa. 1/8 mają długość trzy. 1/16 długość cztery oraz (tylko jedynki) -> pięć. Zastosowanie: -Do generowania pseudoszumu -Do szyfrowania strumieniowego, jednakże bardzo prosto jest złamać taki szyfr -Do tworzenia odpowiednich zwartych dzielników modulo m -Do testowania łączy szeregowych (BER) -W systemach telefonii komórkowej (CDMA) -W transmisji telewizji cyfrowej -W systemach radarowych Koniec teorii, teraz praktyka 🙂 2. PRAKTYKA Zamysł był prosty: Zrobić prostą płytkę z 4 rejestrami, 4 bramkami i kilkoma dodatkowymi elementami. Montaż mieszany, trochę THT, trochę SMD. Na płytce znajduje się 4 rejestry uniwersalne 74194, 4 bramki XOR 7486, Tact-switche, przyciski samoblokujące, kilka rezystorów THT/SMD, dużo gold-pinów i diody LED sygnalizujące stany na poszczególnych rejestrach. Oto schemat: Oraz płytka PCB: Kilka zdjęć oraz filmik z działania 16 bitowego LFSR (jakość średnia):
  2. ZEGAR 2.0 Witam. Zaczynam kontynuację projektu, zadanie wykonane, piątka na świadectwo zaliczona 🙂 Link do "wersji 1.0"- Ta wersja ma być zdecydowanie lepsza od poprzedniej, będę próbował naprawić spotkane błędy, zastosować wasze rady z pierwszego prototypu. Wszystko może się zmienić, inne pomysły wlecą do głowy, nowe problemy wpadną. Przypuszczalnie zegar 2.0 będzie gotowy w okolicach września-października 🙂 Mogą pojawić się czasami "bonusy"; będą to po prostu badania prototypu, np. NE555 a 1 Hz. 24.06.2021-START Już tutaj mogę przedstawić ogólne założenia, schemat blokowy: Post będzie aktywny dopóki projekt nie będzie skończony. O wszystkim będę Was informował 🙂 Pozdrawiam 🙂
  3. Prototyp zegara opartego na licznikach '393 Witam. Jest to pierwszy projekt, bardzo niedoskonały, posiadający wiele błędów ale również taki który wiele nas nauczył Pomysł narodził się miesiąc temu, a motywacją była lepsza ocena z układów cyfrowych(z 4 na 5) na koniec drugiej klasy, przedmiot się już kończy a więc ocena leci na świadectwo ukończenia technikum. A więc zebrałem drużynę, rozdzieliliśmy zadania i ruszyliśmy z projektem🙂 Tak jak w tytule, projektem był zegar ale na licznikach 4-bitowych. Wiadomo że taki zegar można zrobić tysiąc razy lepiej, szybciej itd. używając np. układu MC1206 CEMI, tylko że to nam wiele by nie dało jeśli chodzi o naukę tego przedmiotu. Skoro poznaliśmy liczniki, dekodery, bramki to możemy coś wykombinować . Tutaj przy okazji chciałbym podziękować kolegom bez których na pewno nigdy by ten projekt nie powstał oraz nauczycielowi, który udostępnił nam odpowiednie urządzenia do jak najlepszego wytworzenia płytki PCB, a domowymi sposobami nie byłoby tak łatwo. Koniec wstępu, teraz projekt. Jest to prototyp, zresztą bardzo widocznie zaznaczony na płytce, wiedzieliśmy że coś może nie działać - miało to pokazać na czym stoimy, jakie błędy popełniliśmy itp. Trochę jest ich, opisze je tutaj. Początkowo projekt składał się z 4 segmentów. Segment 1-sekundy, segment 2-minuty, segment 3-godziny oraz 4-kontrolny. Na prototypie jest jeszcze segment 5- ratunkowy. Wszystkie segmenty miały być na osobnych płytkach ale zrezygnowaliśmy z tego. Będę stosował te nazwy aby lepiej przedstawić projekt. Co kryje wnętrze? Układ jest zbudowany z trzech podwójnych liczników 4-bitowych 74HC393, sześciu dekoderów BCD na wyświetlacz 7-segmentowy CD4511BE, trzy bramki AND-CD4081BE, podwójny przerzutnik JK-CD4027, Dzielnik częstotliwości CD4060, jedyny w wersji SMD oraz licznik 7-bitowy CD4024. Trzy podwójne 7 segmentowe wyświetlacze LED LTD5523 o wspólnej katodzie. Kilka rezystorów, kondensatorów i diod. Ogólna zasada działania Sercem układu jest segment czwarty, kontrolny. Na nim znajdują się układy odpowiedzialne za poprawne działanie reszty segmentów. Segment pierwszy, drugi oraz trzeci posiadają wyświetlacz, który ma za zadanie pokazać ilość impulsów podanych na wejścia zegarowe liczników 4-bitowych, wykonanego w technologii TTL-74HC393. Na wejście zegarowe segmentu pierwszego zostaje wprowadzony przebieg prostokątny o częstotliwości 1Hz- czyli 1 sekunda. Następuje zliczanie tych impulsów podanych z segmentu 4, z odpowiedniego układu. Jedności sekund to modulo 10 (od 0 do 9 i reset licznika), dziesiętne to już modulo 6(0-5 i reset), jedności minut mają takie same modulo jak sekund, natomiast godziny: jedności modulo 10, dziesiętne modulo 3. Myśleliśmy że zegar, w momencie gdy go uruchomimy, będzie wskazywał godzinę 00:00:00. Wskazuje natomiast różnie, 11:00:01, 15:14:24, 14:21:30. W wersji 2.0 po prostu w momencie podłączenia do zasilania wszystkie układy będą się resetować. Też dosyć często zdarzało się że nie wszystkie wyświetlacze się zaświecały w tym samym momencie. Może ktoś wie dlaczego?🧐 Zdarzało się że wyświetlacz wskazywał 12:x1:x2, (x oznacza tutaj, że wszystkie diody były zgaszone) “Segment 1, 2, 3” - czas Te trzy segmenty są do siebie bardzo podobne, różnica jest jedynie przy licznikach. Czyli jeden segment może nam wyjaśnić działanie pozostałych. Omówimy segment pierwszy, schematy zostaną podane dla wszystkich. Segmenty są odpowiedzialne za zliczanie impulsów zegarowych, czyli jeżeli podamy na jeden z liczników 74HC393 sygnał zegarowy, w tym przypadku sygnał prostokątny o częstotliwości 1Hz, o wypełnieniu 50%, to owy układ będzie zliczał sekundy. 1/60Hz- minuty, 1/3600Hz-godziny. Segment pierwszy jest zbudowany z jednego układu 74HC393, posiada on 2 liczniki 4-bitowe w obudowie dip14. A oznaczmy za jedności sekund, B za dziesiętne. Do wejścia zegarowego licznika A wprowadzamy sygnał 1Hz. Na wyjściach tego licznika (A)Qa, (A)Qb, (A)Qc i (A)Qd pojawiają się odpowiednie stany. Stany się zmieniają zawsze po sygnale zegarowym. A więc mamy takie stany na wyjściach: (A)Qa=1 (A)Qb=0 (A)Qc=0 (A)Qd=0 To po sygnale zegarowym na licznik A na wyjściach będą sygnały: (A)Qa=0 (A)Qb=1 (A)Qc=0 (A)Qd=0 Z kodu binarnego 0001 po sygnale przechodzimy w stan 0010. Czyli z 1 na 2. Bramka AND służy do wykonania do każdego licznika odpowiednie modulo. Do wejść bramki podłączmy (A)Qb i A(Qd), a wyjście do wejścia resetującego licznika A oraz do kolejnych segmentów. Tym sposobem dla jedności sekund mamy modulo 10, ponieważ licznik ma za zadanie liczyć od zera do dziewięciu, licznik odpowiedzialny za dziesiętne sekundy ma już modulo 6, ponieważ sekund mamy 60, nie 100. Teraz przechodzimy do dekodera z kodu BCD na kod dla wyświetlacza 7 segmentowego, jest za to odpowiedzialny układ CD4511. Wejścia D0, D1, D2, D3 są podłączone do wyjścia licznika A(Qa, Qb, Qc, Qd). Tak więc: (A)Qa -> D0 (A)Qb -> D1 (A)Qc -> D2 (A)Qd -> D3 Stany wysokie na wejściach D0-D1 definiują nam wyjścia a, b, c, d, e, f, g, one zaś są podłączone do wyświetlacza 7 segmentowego, jednakże pomiędzy połączeniem między dekoderem a wyświetlacze znajdują się rezystory o rezystancji 1k ohm, 5% tolerancji. Służą one do ograniczenia prądu diody, bez nich w ciągu kilku sekund wszystkie diody by się spaliły. Tak samo postąpiono dla dziesiętnych sekund. Niestety ręczne ustawianie w prototypie nie zawsze działa, zapewne działanie poprawiono by stosując kondensatory filtrujące oraz rezystory podciągające. Przyszła wersja będą posiadać taką ochronę przed drganiami styków. “Segment 4” - kontrolny Segment 4 jest sercem całego układu. Na nim znajduje się generator 1Hz (aktualnie nie sprawny), układ odpowiedzialny za pozbycie się problemu godziny 24 oraz zasilanie całego układu. Rezonator kwarcowy ma wartość 32,768 kHz, układ 4060 jest dzielnikiem częstotliwości. W momencie, gdy sygnał zostanie doprowadzony do wejścia zegarowego CLK układu CD4060, to na wyjściu Q14 pojawi się sygnał o częstotliwości 2Hz. Q14 oznacza, że sygnał CLK dzieli przez 2^14, czyli przez 16 384. 32 768/16 384 = 2 Układ 4027 to podwójny przerzutnik JK. Pełni on funkcje dwójki liczącej, czyli zarazem dzieli częstotliwość przez 2. 2/2 = 1 Czyli na wyjściu otrzymujemy bardzo stabilny 1Hz. Niestety u nas układ nie działał poprawnie. Dlatego też powstał specjalny segment, ratunkowy “Segment 5” - ratunkowy Ten segment w początkowej fazie produkcji nie był przewidziany, został wymyślony z powodu możliwego niedziałania układu odpowiedzialnego za generowanie sygnału 1Hz. Jest to prosty układ oparty na bardzo znanym i powszechnie dostępnym układzie NE555. Na wyjściu 3 ukazuje się pseudo przebieg o częstotliwości 1Hz, nie jest on tak dokładny jak ten, którego opisaliśmy powyżej. Gdyby zegar działał 24 godziny, to możliwe, że albo by się spóźniał albo by przyśpieszał o ponad 20 minut w ciągu jednej doby. Problem godziny 24:00 W trakcie projektowania jednym z problemów była godzina 24. Był pomysł, aby zastosować prosty układ, licznik 7-bitowy, który miał za zadanie zliczyć 24 impulsy zegarowe z segmentu 2, a dokładniej z wyjścia bramki podłączonej do licznika odpowiedzialnego za dziesiętne minuty. Po 24 impulsach miał na chwilę odłączyć zasilanie przez co cały układ zliczanie rozpocząłby od zera. 23:59:59 -> przełączenie przekaźnika -> 00:00:00 Niestety owy układ by nie działał, ponieważ nie uwzględniliśmy pojemności w układzie oraz stanów nieustalonych na licznikach binarnych. Płytka PCB Płytka ma rozmiary 14cm x 17cm, wszystko się zmieściło, chociaż były problemy. PCB została wykonana metodą termotransferu, przy pomocy laminatora. Ścieżki oraz imiona naprawdę ładnie się wytrawiły, jesteśmy z tego bardzo zadowoleni. Tutaj kilka zdjęć z realizacji. Projekt będzie rozwijany aż pozbędziemy się większości problemów jakie spotkaliśmy. Wersje 2.0 też będzie na forbocie:) Może we wrześniu, październiku:)
  4. Mam do zrobienia projekt urządzenia do pomiaru natężenia pola magnetycznego w pracowni rezonansu magnetycznego opierający się na Arduino oraz czujniku halla. Potrzebuje czujnika o zakresie pomiarowym od 0 do 3T który w łatwy sposób można zaimplementować. Czy moge prosić o jakieś propozycje konkretnych czujników oraz modułów spełniających te kryteria? Jak zabezpieczyć uklad przed działaniem w stałym polu magnetycznym występującym w pracowni rezonansu?
  5. Cześć Mam następujący problem. Zbudowałem poniżej przedstawiony układ w programie Tinkercard: Ma on na celu przedstawienie użycia elektromagnesów w szerszym projekcie, który buduję. Cewka oraz dioda imitują elektromagnes, a diody świecące mają za zadanie sygnalizować, który "elektromagnes" jest obecnie używany. Stosując poniższy kod chcę włączyć elektromagnes sterowany sygnałem z portu 13 i wyłączyć sygnał z wyjścia 12. Jednak pojawia się problem, gdyż po włączeniu kodu działają obie diody, czyli cel nie został osiągnięty. Gdy odłączę jedną cewkę to układ zachowuje się poprawnie. Wartości dla rezystorów i cewek zostały dobrane "na oko", tak aby udało się zrealizować animację. void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); } void loop() { digitalWrite(12, LOW);// Zmiana stanu na NISKI, na wyjsciu 12 digitalWrite(13,HIGH);// Zmiana stnau na WYSOKI, na wyjsciu 13 } Bardzo proszę o wyjaśnienie na czym polega problem. Z góry wielkie dzięki.
  6. Witam, Wykonuje projekt, którego założeniem jest uruchamianie diody przy pomocy przycisku pojemnościowego typu TTP223B. Chciałbym, aby dioda gasła po około 30 sekundach, do tego celu zastosowałem układ czasowy NE555. Do testów użyłem przycisku monostabilnego i wszystko działało prawidłowo, jednak używając przycisku pojemnościowego dioda pali się, kiedy przycisk nie jest dotykany, natomiast gaśnie z opóźnieniem, kiedy przycisk zostanie dotknięty. Sygnał na wyjściu po dotknięciu jest wysoki, sprawdzałem na diodzie. Moje pytanie jest następujące, czy wiecie jak sprawić, żeby to działało na zasadzie ON/OFF czyli po naciśnięciu przycisku pojemnościowego dioda uruchamia się na 30 sekund (kwestie doboru opornika i kondensatora znam) po czym gaśnie. Przy ponowny wciśnięciu natomiast stan zmienia się na niski. Jest to mój pierwszy projekt bez użycia mikrokontrolera i czuje się strasznie zagubiony ..
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.