Mundarija:
- 1 -qadam: Elektron sxemani yarating
- 2 -qadam: Pin Planner -ni tekshiring va Verilog kodini tahrir qiling
- 3 -qadam: Verilog kodini tahrirlang
- 4 -qadam: Verilog kodini tuzing
- 5 -qadam: Keling, sinab ko'raylik
Video: FPGA siklon IV DueProLogic - tugma va LED: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Ushbu qo'llanmada biz tashqi LED sxemasini boshqarish uchun FPGA -dan foydalanamiz. Biz quyidagi vazifalarni bajaramiz
(A) LEDni boshqarish uchun FPGA Cyclone IV DuePrologic tugmalaridan foydalaning.
(B) Fleshli LED vaqti -vaqti bilan yonadi va o'chadi
Video demo
Laboratoriya menyusi:
1 -qadam: Elektron sxemani yarating
2 -qadam: Pin Planner -ni tekshiring va Verilog kodini tahrir qiling
3 -qadam: Verilog kodini tahrirlang
FPGA DueProLogic -ni sotib olganingizda, sizga DVD kerak. "Projects_HDL" ni ochganingizdan so'ng, asl kod faylini ko'rishingiz kerak
Belgilangan kodni qo'shing. U kirish -chiqish portlarini ro'yxatga oladi va portlarga raqamlar tayinlaydi.
chiqish sim [7: 0] XIO_1, // XIO-D2-D9
chiqish sim [5: 0] XIO_2, // XIO-D10-D12
chiqish sim [5: 0] XIO_3, // XIO-D22-D29
kirish sim [5: 0] XIO_4, // XIO-D30-D37
kirish sim [5: 0] XIO_5, // XIO-D38-D45
chiqish sim [4: 0] XIO_6_OUT, // XIO-D46-D53
kirish simlari [31: 5] XIO_6, // XIO-D46-D53
chiqish simlari [2: 0] XIO_7, // XIO - D69, D70, D71, D74, D75, D76
kirish sim UBA, // tugmachali tugmachalarni bosing
kirish sim UBB // Push tugmachalari
tayinlash XIO_1 [3] = start_stop_cntrl;
tayinlash XIO_2 [1] = start_blinky; // LED chirog'i yonadi va o'chadi
tayinlash XIO_2 [2] = 1'b1; // chiqish HIGH
tayinlash XIO_2 [3] = ~ UBA; // A tugmasini bosing
tayinlash XIO_2 [4] = UBB; // B tugmachasini bosing
tayinlash c_enable = XIO_5 [2];
LEDExt = XIO_5 [5] ni belgilang;
Keyin kechikish taymerini o'rnatishimiz kerak. Taymer kodini sharhlang va yangi taymer funktsiyasini yozing
//-----------------------------------------------
// LED milt -milt boshlanishi
//-----------------------------------------------
/*
har doim @(pozitsiya CLK_66 yoki RSTni bekor qilish)
boshlash
agar (! RST)
start_blinky <= 1'b0;
boshqa
boshlash
agar (control_register [7: 4]> 0)
start_blinky <= 1'b1;
boshqa
start_blinky <= 1'b0;
oxiri
oxiri
*/
reg [31: 0] oldingi;
boshlang'ich boshlanishi
ex <= 32'b0;
start_blinky <= 1'b0;
oxiri
har doim @(rasm CLK_66)
boshlash
ex <= ex + 1'b1;
agar (masalan> 100000000) // yonish/o'chish ~ 1,6 soniya, soat 66 MGts
boshlash
start_blinky <=! start_blinky;
ex <= 32'b0;
oxiri
oxiri
//-----------------------------------------------
// LED kechiktiruvchi taymer hisoblagichi
//-----------------------------------------------
/*
har doim @(pozitsiya CLK_66 yoki RSTni bekor qilish)
boshlash
agar (! RST)
led_delay_counter <= TIMER_LOW_LIMIT;
boshqa
boshlash
agar (davlat [SELECT_MODE])
led_delay_counter <= timer_value;
boshqa bo'lsa ([WAIT_FOR_TIMER] holati)
led_delay_counter <= led_delay_counter - 1'd1;
oxiri
oxiri*/
4 -qadam: Verilog kodini tuzing
Quartus -da "Kompilyatsiyani boshlash" tugmasini bosing, xato xabari yaratilmasligi kerak.
Agar siz bir nechta pin haqida xato xabari olsangiz. Topshiriqlarga o'ting -> Qurilma -> Qurilma va pin parametrlari -> Ikki maqsadli pinlar -> mos keladigan pin qiymatini "Oddiy kirish -chiqish sifatida ishlatish" ga o'zgartiring.
Kompilyatsiyadan so'ng siz to'g'ridan -to'g'ri pof chiqish faylini olishingiz kerak. Agar sizning dasturiy ta'minotingiz yangilanmagan bo'lsa, siz faqat sof faylni olishingiz mumkin. Bu sodir bo'lganda, Quartus -dagi "Fayl" -ni bosing -"dasturiy fayllarni aylantirish". Qizil qutilar bilan belgilangan sozlamalarni o'zgartiring.
5 -qadam: Keling, sinab ko'raylik
Axir, u ishlashi kerak !!! Sariq LED har doim yonadi. Qizil LED yonadi. B tugmachasini bosganingizda ko'k LED o'chadi. Agar siz A tugmasini bosgan bo'lsangiz, yashil LED yonadi
Tavsiya:
FPGA siklon IV DueProLogic Raspberry Pi kamerasini boshqaradi: 5 qadam
FPGA Cyclone IV DueProLogic Controls Raspberry Pi Camera: FPGA DueProLogic rasman Arduino uchun ishlab chiqilganiga qaramay, biz FPGA va Raspberry Pi 4B -ni muloqotda qilmoqchimiz, bu yo'riqnomada uchta vazifa bajariladi: (A) Bir vaqtning o'zida ikkita tugmani bosing. Burchakni burish uchun FPGA
FPGA siklon IV DueProLogic boshqaruv dvigatellari: 4 qadam
FPGA siklon IV DueProLogic boshqaruv dvigatellari: Ushbu qo'llanmada biz servo dvigatelni boshqarish uchun Verilog kodini yozamiz. Servo SG-90 Waveshare tomonidan ishlab chiqarilgan. Servo dvigatelni sotib olayotganda, siz ishchi kuchlanishni, maksimal momentni va taklif qilingan Pu ni ko'rsatadigan ma'lumotlar jadvalini olishingiz mumkin
Arduino siklon o'yini: 5 qadam (rasmlar bilan)
Arduino siklon o'yini: Men hech qachon haqiqiy siklon arcade o'yinini o'ynamaganman, lekin menga reaktsiya vaqti bilan o'ynash g'oyasi yoqadi. Men miniatyuralangan o'yinni ishlab chiqdim. U 32 ta LEDdan iborat bo'lib, aylana hosil qiladi, LEDlar chaser sifatida birin -ketin yonadi. Maqsad - tugmani bosish
Siklon (Arduino LED o'yini): 6 qadam (rasmlar bilan)
Siklon (Arduino LED o'yini): Ushbu darslikda men sizga juda kam kodli yoki tajribasiz LED o'yinini yaratishni o'rgataman! Menda bu fikr bor edi va nihoyat uni yaratishga kirishdim. Bu qiziqarli o'yin, bizga hamma arkada o'yinlarini eslatadi. Boshqa darsliklar ham bor
LED Arja o'yini siklon: 4 qadam
Siklonli LED Arja o'yini: Ushbu loyihaning maqsadi Arduino yordamida bolalar uchun interaktiv va ko'ngilochar o'yinni yaratish edi. Men eslayman, siklon arja o'yini yoshligimda eng sevimli arja o'yinlaridan biri edi, shuning uchun men uni takrorlashga qaror qildim. T