
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02

W tym samouczku użyjemy FPGA do sterowania zewnętrznym obwodem LED. Zrealizujemy następujące zadania
(A) Użyj przycisków na FPGA Cyclone IV DuePrologic do sterowania diodą LED.
(B) Okresowe włączanie i wyłączanie lampy błyskowej LED
Demo wideo
Menu laboratorium:
Krok 1: Zbuduj obwód elektroniczny
Krok 2: Sprawdź Pin Planner i edytuj kod Verilog

Krok 3: Edytuj kod Verilog

Kupując FPGA DueProLogic, powinieneś otrzymać płytę DVD. Po otwarciu „Projects_HDL” powinieneś zobaczyć oryginalny plik kodu
Dodaj podświetlony kod. Rejestruje porty I/O i przypisuje numery do portów.
przewód wyjściowy [7:0] XIO_1, //XIO -- D2-D9
przewód wyjściowy [5:0] XIO_2, //XIO -- D10-D12
przewód wyjściowy [5:0] XIO_3, //XIO -- D22-D29
przewód wejściowy [5:0] XIO_4, //XIO -- D30-D37
przewód wejściowy [5:0] XIO_5, //XIO -- D38-D45
przewód wyjściowy [4:0] XIO_6_OUT, //XIO -- D46-D53
przewód wejściowy [31:5] XIO_6, //XIO -- D46-D53
przewód wyjściowy [2:0] XIO_7, //XIO -- D69, D70, D71, D74, D75, D76
przewód wejściowy UBA, //Przełączniki przyciskowe
przewód wejściowy UBB//przełączniki przyciskowe
przypisz XIO_1[3] = start_stop_cntrl;
przypisz XIO_2[1] = start_blinky; //LED lampa błyskowa LED włączanie i wyłączanie
przypisz XIO_2[2] = 1'b1; //wyjście WYSOKA
przypisz XIO_2 [3] = ~UBA; //Przycisk A
przypisz XIO_2 [4] = UBB; //Przycisk B
przypisz c_enable = XIO_5[2];
przypisz LEDExt = XIO_5[5];
Następnie musimy ustawić timer opóźnienia. Skomentuj oryginalny kod timera i napisz nową funkcję timera
//-----------------------------------------------
// LED migający start
//-----------------------------------------------
/*
zawsze @(posge CLK_66 lub negege RST)
rozpocząć
jeśli(!RST)
start_blinky <= 1'b0;
w przeciwnym razie
rozpocząć
if(control_register[7:4] > 0)
start_blinky <= 1'b1;
w przeciwnym razie
start_blinky <= 1'b0;
kończyć się
kończyć się
*/
reg [31:0] ex;
początkowy początek
ex <= 32'b0;
start_blinky <= 1'b0;
kończyć się
zawsze @(posge CLK_66)
rozpocząć
ex <= ex + 1'b1;
if(ex > 100000000) //flash on/off ~1.6 sekundy, taktowanie 66MHz
rozpocząć
start_blinky <= !start_blinky;
ex <= 32'b0;
kończyć się
kończyć się
//-----------------------------------------------
// Licznik czasu opóźnienia LED
//-----------------------------------------------
/*
zawsze @(posge CLK_66 lub negege RST)
rozpocząć
jeśli(!RST)
led_delay_counter <= TIMER_LOW_LIMIT;
w przeciwnym razie
rozpocząć
if(stan[SELECT_MODE])
led_delay_counter <= timer_value;
else if(stan[WAIT_FOR_TIMER])
led_delay_counter <= led_delay_counter - 1'd1;
kończyć się
kończyć się*/
Krok 4: Skompiluj kod Verilog


Naciśnij „Rozpocznij kompilację” w Quartus, nie powinien zostać wygenerowany żaden komunikat o błędzie.
Jeśli pojawi się komunikat o błędzie dotyczący wielu pinów. Przejdź do Przypisania -> Urządzenie -> Opcje urządzenia i pinów -> Piny o podwójnym przeznaczeniu -> zmień wartość odpowiedniego pinu na "Użyj jako zwykłego wejścia/wyjścia".
Po kompilacji powinieneś bezpośrednio pobrać plik wyjściowy pof. Jeśli twoje oprogramowanie nie jest aktualne, możesz otrzymać tylko plik soft. Kiedy to się stanie, kliknij "Plik" w Quartus -> "konwertuj pliki programowania". Zmień ustawienia, które są oznaczone czerwonymi polami.
Krok 5: Spróbujmy

W końcu powinno działać!!! Żółta dioda LED jest zawsze włączona. Czerwona dioda LED miga. Niebieska dioda LED zgaśnie po naciśnięciu przycisku B. Zielona dioda LED zostanie włączona po naciśnięciu przycisku A
Zalecana:
Dioda LED o dużej mocy do budzenia (+/- 15 W): 5 kroków

High Power LED Wake Up Light (+/- 15 Watt): * Uwaga do edycji 2020: Przede wszystkim nie używam już wentylatora i wydaje się, że jest w porządku. Robi się gorąco, ale jeszcze nic się nie spaliło. Dzięki nowym spostrzeżeniom i ponieważ te diody LED są tak tanie, użyłbym więcej niż tylko 2 i dodałbym kilka pojedynczych diod LED o mocy 3 W
Bluetooth na Arduino - dioda LED: 7 kroków

Bluetooth na Arduino -a Led: Dzisiaj wyjaśnię, jak bardzo łatwo korzystać z modułu bluetooth HC05 lub HC06. Nauczymy się tylko podstaw, z komponentami włączania / wyłączania (te na pinach cyfrowych). Prawdopodobnie zrobię instrukcję dotyczącą komponentów analogowych (pin A …)
FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi: 5 kroków

FPGA Cyclone IV DueProLogic steruje kamerą Raspberry Pi: Pomimo tego, że FPGA DueProLogic jest oficjalnie zaprojektowane dla Arduino, zamierzamy udostępnić FPGA i Raspberry Pi 4B. W tym samouczku zaimplementowano trzy zadania:(A) Jednocześnie naciśnij dwa przyciski na FPGA, aby odwrócić kąt
FPGA Cyclone IV DueProLogic steruje serwomotorem: 4 kroki

FPGA Cyclone IV DueProLogic steruje serwomotorem: W tym samouczku napiszemy kod Veriloga do sterowania serwomotorem. Serwo SG-90 jest produkowane przez firmę Waveshare. Kupując serwosilnik, możesz otrzymać kartę katalogową, która zawiera napięcie robocze, maksymalny moment obrotowy i proponowaną Pu
Cyclone (gra Arduino LED): 6 kroków (ze zdjęciami)

Cyclone (Arduino LED Game): W tym samouczku nauczę Cię, jak stworzyć grę LED z bardzo małym kodem lub doświadczeniem! Miałem ten pomysł od jakiegoś czasu i wreszcie zabrałem się do jego tworzenia. To fajna gra, która przypomina nam wszystkie gry zręcznościowe. Istnieją inne samouczki, które