eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProblem z odczytem przez FT2232H w trybie FT245 FIFO synchronicznyProblem z odczytem przez FT2232H w trybie FT245 FIFO synchroniczny
  • X-Received: by 10.140.44.34 with SMTP id f31mr23062qga.14.1404216387837; Tue, 01 Jul
    2014 05:06:27 -0700 (PDT)
    X-Received: by 10.140.44.34 with SMTP id f31mr23062qga.14.1404216387837; Tue, 01 Jul
    2014 05:06:27 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!news.unit0.net!news.glorb.com!uq10no388122igb.0!news-out.g
    oogle.com!a8ni1qaq.1!nntp.google.com!w8no4866952qac.0!postnews.google.com!glegr
    oupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.misc.elektronika
    Date: Tue, 1 Jul 2014 05:06:27 -0700 (PDT)
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=81.219.220.14;
    posting-account=67yd9woAAAAHUu8VHyA7Js47M98NE3m3
    NNTP-Posting-Host: 81.219.220.14
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <6...@g...com>
    Subject: Problem z odczytem przez FT2232H w trybie FT245 FIFO synchroniczny
    From: s...@g...com
    Injection-Date: Tue, 01 Jul 2014 12:06:27 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:667221
    [ ukryj nagłówki ]

    Witam,

    Mam na pokładzie swojej PCB, FT2232H i FPGA. Zapis z PC do FPGA w trybie
    synchronicznym działa OK, natomiast mam jajca przy odczycie z FPGA do PC.

    Najpierw hardware w FPGA. Wygląda to mniej więcej tak:

    USB_CLK: in std_logic;
    RST : in std_logic;
    TXE_n : in std_logic;
    WR_n : out std_logic;
    USB_DATA: inout std_logic_vector(7 downto 0);
    RAM_DATA: in std_logic_vector(7 downto 0);
    RD_ADDR: out std_logic_vector(12 downto 0);

    signal RD_ADDRs: std_logic_vector(12 downto 0);

    process (USB_CLK,RST,TXE_n)
    begin
    if RST='1' then
    RD_ADDRs<=(others=>'0');
    RD_ADDR<=(others=>'0');
    USB_DATA<=(others=>'Z');
    WR_n<='1';
    else
    if USB_CLK'event and USB_CLK='1' then
    WR_n<=TXE_n;
    if TXE='0' then
    USB_DATA<=RAM_DATA;
    RD_ADDRs<=RD_ADDRs+1;
    RD_ADDR<=RD_ADDRs;
    else USB_DATA<=(others=>'Z');
    end if;
    end if;
    end if;
    end process;

    =========

    I teraz software (Delphi):

    ResetAddressCounters;
    ftresult:=FT_Read(FT_HANDLE,@FT_In_Buffer,8192,@Read
    _Result);

    Załóżmy, że chcę odczytać RAM zaimplementowany w FPGA. Zawartość RAM'u:
    0,1,2,3...255,0,1,2....255,....,.... - razem 8kB (taka 32-zębna piła)

    Przy pierwszym odczycie zawartość FT_In_Buffer jest cholera jakby zrotowana w prawo o
    losową ilość adresów. Np. o trzy adresy, w wyniku czego odczytuję:

    253,254,255,0,1,2,3....255,0,1,2....255,0,1,2....252

    Każdy kolejny odczyt powoduje rotację w prawo o dokładnie 16 bajtów.

    Jakieś porady?

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: