Čeština / English
Login

Aplikace / Seriová linka v FPGA (echo)

Autor: Zdeněk Vašíček ()

Abstrakt: Komunikace mezi řadičem sériové linky v FPGA a PC (komunikačním kanálem A obvodu FTDI)

Update: 20090404

1. Popis aplikace

Cílem aplikace je ukázat, jak je možné uvnitř FPGA vytvořit řadič seriové linky a jak lze pomocí řadiče přenášet data z/do PC. Řadič je připojen k USB převodníku FTDI, kanálu A.

Jelikož data v této jednoduché aplikaci putují (kvůli zjednodušení kódu) záměrně znak po znaku z FPGA do MCU a zpět, je nutné mít na paměti s tím související problémy. Vzhledem k latenci mezi vyvoláním žádosti o přerušení, vlastní obsluhou přerušení a vyčtení přijatého bytu přes SPI může docházet ke ztrátě přijatých dat v případě, že bude odvysíláno více bytů současně. Obyčejně není potřeba data přeposílat přes MCU a pokud ano, pak je nutné vytvořit uvnitř FPGA FIFO paměť, která bude shromažďovat přijaté byty.

Zdrojové kódy aplikace lze nalézt v SVN.

2. Zprovoznění aplikace

  1. přeložte aplikaci

    fcmake && make
  2. pro správnou činnost je nutné povolit přerušení z FPGA do MCU

    • FITkitu verze 2.x:

      propojit propojku J5, která je určena k povolení přerušení

    • FITkit verze 1.x:

      propojit pin JP10(5) vedoucí z FPGA s pinem JP9(26) vedoucím do MCU

  3. naprogramujte MCU a FPGA a spusťte terminálový program (např. QDevKit), případně rozpojte propojky J8,J9

    make load
    make term
  4. připojte se pomocí vhodného terminálového programu na kanál A USB převodníku (buď přímo nebo přes virtuální COM port, jehož číslo naleznete ve správci zařízení - viz dokument Instalace USB ovladačů pro FTDI FT2232). Parametry nastavte následovně: komunikační rychlost 57600 Bd, 8 datových bitů, lichá parita, 1 stop bit.

    serialsettings.png

    Obrázek 2.1: Hyperterminál

    Při každém stisku klávesy v terminálu připojeném ke kanálu A se v tomtéž terminálu zobrazí odpovídající znak (echo) a dioda D4 zhasne/se rosvítí. Jste-li připojeni k mikrokontroleru, je každý přijatý znak zobrazen také v příslušném terminálovém okně QDevKitu.

Zobrazeno: 1670x Naposledy: 4.6.2023 10:54:11