eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSzybkie kostki USB
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2014-09-11 21:13:14
    Temat: Szybkie kostki USB
    Od: s...@g...com

    Problem jest taki:

    PC<=>USB(FT2232H)<=>FPGA(Spartan6)<=ADC

    Potrzebuję szybkiej transmisji danych przez USB. 20MB/s załatwia sprawę.
    FT2232H w trybie Synchronuous FIFO jest faktycznie szybkie (>35MB/s), ale zachowuje
    się dość upierdliwie. Zawija mi dziadyga cały ciąg danych o ileś tam bajtów przy
    każdym kolejnym odczycie. Przykładowo, do celów testowych zaimplementowałem w FPGA
    ROM o zawartości 0,1,2,3......255. No i pierwszy odczyt daje mi ciąg:
    252,253,254,255,0,1,2,3......251. Każdy kolejny odczyt daje mi ciąg przesunięty
    zawsze o tę samą liczbę bajtów. Np. 250,251,252,253,254,255,0,1,..249.
    Licznik adresów ROM jest resetowany przed każdym kolejnym odczytem, sprawdzone, nie
    ma się tutaj czego czepiać. Drajvery od FTDI są jakie są i gówno mogę tutaj zdziałać.
    No chyba, że ktoś z Was ma już jakieś doświadczenie w obsłudze tego trybu i coś
    podpowie? Aha, zapis PC=>USB=>FPGA działa w tym trybie bez zarzutów.

    A może zaproponujecie jakąś inną kostkę USB? Cypress robi takie badziewia, ale zanim
    się na coś zdecyduję, chciałbym zasięgnąć Waszej opinii, zanim będzie mnie szlag
    trafiał jak w przypadku FTDI. Ważne: >20MB/s !!


  • 2. Data: 2014-09-12 09:47:35
    Temat: Re: Szybkie kostki USB
    Od: "JarekC.DIY" <j...@g...pl>


    Użytkownik <s...@g...com> napisał w wiadomości
    news:d6fed0ef-648f-4cbb-9e67-db1eb4ffd1a2@googlegrou
    ps.com...
    >Problem jest taki:
    >
    >PC<=>USB(FT2232H)<=>FPGA(Spartan6)<=ADC
    >
    >Potrzebuję szybkiej transmisji danych przez USB. 20MB/s załatwia sprawę.
    >FT2232H w trybie Synchronuous FIFO jest faktycznie szybkie (>35MB/s), ale
    >zachowuje się dość upierdliwie. Zawija mi dziadyga cały ciąg danych o ileś
    >tam >bajtów przy każdym kolejnym odczycie. Przykładowo, do celów testowych
    >zaimplementowałem w FPGA ROM o zawartości 0,1,2,3......255. No i pierwszy
    > >odczyt daje mi ciąg: 252,253,254,255,0,1,2,3......251. Każdy kolejny
    >odczyt daje mi ciąg przesunięty zawsze o tę samą liczbę bajtów. Np.
    > >250,251,252,253,254,255,0,1,..249.
    >Licznik adresów ROM jest resetowany przed każdym kolejnym odczytem,
    >sprawdzone, nie ma się tutaj czego czepiać. Drajvery od FTDI są jakie są i
    >gówno mogę >tutaj zdziałać. No chyba, że ktoś z Was ma już jakieś
    >doświadczenie w obsłudze tego trybu i coś podpowie? Aha, zapis
    >PC=>USB=>FPGA działa w tym trybie >bez zarzutów.
    >
    >A może zaproponujecie jakąś inną kostkę USB? Cypress robi takie badziewia,
    >ale zanim się na coś zdecyduję, chciałbym zasięgnąć Waszej opinii, zanim
    >będzie >mnie szlag trafiał jak w przypadku FTDI. Ważne: >20MB/s !!


    A czytałeś ten wątek:
    http://www.alteraforum.com/forum/showthread.php?t=36
    452&page=2

    Pozdrawiam
    JarekC


  • 3. Data: 2014-09-17 01:58:33
    Temat: Re: Szybkie kostki USB
    Od: s...@g...com

    W dniu piątek, 12 września 2014 09:47:35 UTC+2 użytkownik JarekC.DIY napisał:

    > A czyta�e� ten w�tek:
    >
    > http://www.alteraforum.com/forum/showthread.php?t=36
    452&page=2
    >

    Owszem. Prawdopodobnie problem u kolegów nadal nie jest rozwiązany do końca, tylko
    być może o tym nie wiedzą, bo przesyłają stosunkowo małe pakiety. Zaimplementowałem u
    siebie ten fragment w HDL'u, zresztą bardzo podobny do mojego i działa podobnie. Nie
    mniej jednak, jeżeli czytam 16320 bajtów (64 bajty mniej niż 16K) to nie mam tego
    efektu "przesunięcia" o ileś tam bajtów przy każdym kolejnym odczycie. Dane owszem,
    są "zawinięte", ale zawsze tak samo. Z tym da się już żyć. Nawiasem mówiąc,
    sprawdzałem przebiegi Chipscopem i wszystko jest cacy. Na 100% FTDI ma spaprane
    drajvery. Na różnych forach znalazłem bardzo podobne opisy tego problemu i nigdzie
    problem nie został rozwiązany. Jeżeli jesteś zainteresowany, podaję swój fragment w
    VHDL'u:

    entity fifo_vhd is
    Port ( CLK : in STD_LOGIC;
    TXE : in STD_LOGIC;
    RST : in STD_LOGIC;
    RXF : in STD_LOGIC;
    OE : out STD_LOGIC;
    WR : out STD_LOGIC;
    READ_EN : out STD_LOGIC;
    RD_ADDR : out STD_LOGIC_VECTOR (13 downto 0));
    end fifo_vhd;

    architecture Behavioral of fifo_vhd is

    signal RD_ADDRs: std_logic_vector (13 downto 0);

    begin
    process (CLK,TXE,RXF,RST)
    begin
    if RST='1' then
    RD_ADDRs<=(others=>'0');
    RD_ADDR<=(others=>'0');
    WR<='1';
    READ_EN<='0';
    OE<='1';
    else
    if CLK'event and CLK='1' then
    if TXE='0' and RXF='1' then
    WR<='0';
    OE<='0';
    READ_EN<='1';
    RD_ADDRs<=RD_ADDRs+1;
    RD_ADDR<=RD_ADDRs;
    else READ_EN<='0';
    WR<='1';
    OE<='1';
    end if;
    end if;
    end if;
    end process;

    end Behavioral;

    Wracając do głównego pytania... Jakie inne kostki USB ?

strony : [ 1 ]


Szukaj w grupach

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: