eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaProblem z odczytem przez FT2232H w trybie FT245 FIFO synchronicznyRe: Problem z odczytem przez FT2232H w trybie FT245 FIFO synchroniczny
  • Data: 2014-07-01 23:08:48
    Temat: Re: Problem z odczytem przez FT2232H w trybie FT245 FIFO synchroniczny
    Od: Adam Górski <gorskiamalpa@wpkropkapl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2014-07-01 14:06, s...@g...com pisze:
    > 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?
    >

    Wyczścić fifo przed użyciem ?
    Ustawić RD_ADDR na początek po pierwszym odczycie.
    Jak z poziomu pc ustawiasz RD_ADDRES na początek ? Jaka jest idea
    synchronizacji ?

    Pzdr

    Adam


    ---
    Ta wiadomość e-mail jest wolna od wirusów i złośliwego oprogramowania, ponieważ
    ochrona avast! Antivirus jest aktywna.
    http://www.avast.com

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: