Čeština / English
Login

Aplikace / Blikání diodami LED

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

Abstrakt: Jednoduchá aplikace demonstrující řízení LED diody pomocí FPGA a pomocí mikrokontroleru.

Update: 20090326

1. Popis aplikace

Tato jednoduchá aplikace demonstruje řízení LED diody pomocí čítače implementovaného v FPGA a pomocí mikrokontroleru. Jedná se o nejjednodušší aplikaci, kdy zdrojové kódy obsahují pouze nezbytné minimum.

Aplikace se skládá ze dvou částí:

  • Blikání LED řízené z FPGA

    VHDL kód obsahuje pouze 23-bitový čítač, což je komponenta, která s každou náběžnou hranou hodinového signálu inkrementuje svůj obsah. Poslední bit čítače je připojen na LED diodu D4, která tak začne ihned po naprogramování FPGA obvodu blikat s periodou cca půl sekundy. Čítač je synchronizován hodinovým signálem SMCLK s kmitočet 7.3728MHz, který generuje mikrokontroler (detaily viz schema kitu).

    LEDF <= cnt(22);
    
    counter: process(RESET, SMCLK)
    begin
        if (RESET = '1') then
            cnt <= (others => '0');
        elsif SMCLK'event and SMCLK = '1' then
            cnt <= cnt + 1;
        end If;
    end process;

    Zdrojové kódy je možné nalézt v souboru fpga/top.vhd.

  • Blikání LED řízené z MCU

    Kód v mikrokontroleru, který tajišťuje periodické blikání LED diody D6 se skládá z nekonečné smyčky obsahující funkci delay_ms(1), která realizuje pomocí volně běžícího čítače zpoždění 1ms. Po 500ti iteracích se invertuje bit připojený na LED diodu. Po naprogramování MCU začně periodicky blikat červená dioda D6 (pokud je aktivní terminál, případně zůstanou rozpojeny propojky J8 a J9).

    while (1)
    {
      delay_ms(1);  //zpozdeni 1ms
      counter++;
      if (counter == 500)
      {
         flip_led_d6(); //invertovat LED
         counter = 0;
      }
      terminal_idle();
    }

    Zdrojové kódy je možné nalézt v souboru mcu/main.c.

    Funkce terminal_idle zajišťuje obsluhu terminálu, tzn. přijímá a vyřizuje zaslané příkazy. V této jednoduché aplikaci může být bez problémů vypuštěna.

2. Zprovoznění aplikace

  1. přeložte aplikaci

  2. naprogramujte MCU a FPGA a spusťte terminálový program.

    Nyní by měla blikat dioda D6 a D4.

Aplikace nevyžaduje ke své činnosti nastavit kromě propojek umožňujících programování další propojky.

Zobrazeno: 5473x Naposledy: 30.9.2023 19:55:45