eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaGenerator strzelajacy pojedynczymi impulsamiRe: Generator strzelajacy pojedynczymi impulsami
  • X-Received: by 10.140.23.208 with SMTP id 74mr3147qgp.23.1419592927671; Fri, 26 Dec
    2014 03:22:07 -0800 (PST)
    X-Received: by 10.140.23.208 with SMTP id 74mr3147qgp.23.1419592927671; Fri, 26 Dec
    2014 03:22:07 -0800 (PST)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!
    h15no30555742igd.0!news-out.google.com!r1ni101qat.1!nntp.google.com!bm13no11429
    94qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.misc.elektronika
    Date: Fri, 26 Dec 2014 03:22:07 -0800 (PST)
    In-Reply-To: <m7je0t$c70$1@usenet.news.interia.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=185.53.155.138;
    posting-account=67yd9woAAAAHUu8VHyA7Js47M98NE3m3
    NNTP-Posting-Host: 185.53.155.138
    References: <0...@g...com>
    <m7i7hb$qf2$1@usenet.news.interia.pl>
    <1...@g...com>
    <m7je0t$c70$1@usenet.news.interia.pl>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <c...@g...com>
    Subject: Re: Generator strzelajacy pojedynczymi impulsami
    From: s...@g...com
    Injection-Date: Fri, 26 Dec 2014 11:22:07 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:676152
    [ ukryj nagłówki ]

    W dniu piątek, 26 grudnia 2014 11:41:33 UTC+1 użytkownik Artur Miller napisał:
    > W dniu 2014-12-26 o 04:19, Tornad pisze:
    > > On Thursday, December 25, 2014 6:44:44 PM UTC-5, Artur Miller wrote:
    > >> 2 nanosekundy to kawał czasu :) wziąłbym jakąś FPGA do tego...
    > > Dzieki a zainteresowanie i odzew. Tylko ja nie wiem co to jest?
    > >
    > > Powaznie; nie napisalem, ze moja edukacja elektroniczna zostala gwaltownie
    > > przerwana ze 20 lat temu... Wiec prosze o wiecej szczegolow albo podpowiedz
    > > co to ten FPGA je? Moze byc tez abc dostepne w necie.
    > > I w jakim, juz nie kawalku ale kawale czasu ten uklad sie "resetuje" aby
    przyjac nastepny impuls wyzwalajacy?
    > >
    >
    > uhh... to bedzie ciężko zacząć od zera ;)
    > na szybko i dużo prościej można zrobić to na bramkach logicznych.
    >
    > nasz układ generowania impulsów niech ma wejście WE i wyjście WY.
    > bierzemy bramkę XOR. niech ma 2 wejścia - XA i XB oraz wyjście XQ.
    > do XA podłączamy bezpośrednio WE, a do XB wyjście szeregowo połączonej
    > parzystej liczby inwerterów. Wejście tego szeregu łączymy również z WE.
    >
    > układ ten będzie generował impulsy przy opadającym i rosnącym zboczu
    > sygnału na WE. jeśli sygnał ten nie jest "cyfrowy", potrzebujemy dodać
    > bramkę z przerzutnikiem Schmitta.
    >
    > Czas trwania generowanego impulsu będzie równy czasowi propagacji
    > sygnału przez szeregowo połączone inwertery. będzie powatrzalny w
    > krótkim czasie, w długim zależny od temperatury. Trikiem jest
    > częstotliwość wejściowa, trzeba będzie zastosować uklady TTL-F albo
    > nawet ECL, gdzie czas propagacji to kilkadziesiąt ps / inwerter. mogą
    > być trudno dostępne.
    >

    Wadą jest czas trwania impulsu zależny od temperatury, zasilania i takich tam..
    Ja istotnie zrobiłbym to na jakimś najtańszym spartanie. RST do masy, CLK napędzać z
    PLL'a na 500+ MHz. Poniżej gotowiec:

    library IEEE;
    use IEEE.std_logic_1164.all;
    use IEEE.std_logic_arith.all;
    use IEEE.std_logic_unsigned.all;

    entity Impulsator is
    port (
    CLK: in STD_LOGIC;
    RST: in STD_LOGIC;
    WJAZD: in STD_LOGIC;
    WYJAZD: out STD_LOGIC);
    end Impulsator;

    architecture Impulsator_arch of Impulsator is


    type Sreg0_type is (
    CZEKAJ_NA_WJAZD, SHOT, PETLA
    );


    signal Sreg0: Sreg0_type;

    begin



    Sreg0_machine: process (CLK, rst)
    begin
    if RST='1' then
    Sreg0 <= CZEKAJ_NA_WJAZD;

    WYJAZD <= '0';
    elsif CLK'event and CLK = '1' then

    case Sreg0 is
    when CZEKAJ_NA_WJAZD =>
    WYJAZD <= '0';
    if WJAZD='0' then
    Sreg0 <= CZEKAJ_NA_WJAZD;
    else
    Sreg0 <= SHOT;
    end if;
    when SHOT =>
    WYJAZD <= '1';
    Sreg0 <= PETLA;
    when PETLA =>
    WYJAZD <= '0';
    if WJAZD='1' then
    Sreg0 <= PETLA;
    else
    Sreg0 <= CZEKAJ_NA_WJAZD;
    end if;

    when others =>
    null;

    end case;
    end if;
    end process;

    end Impulsator_arch;

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: