Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
FPGA DueProLogic rasman Arduino uchun ishlab chiqilganiga qaramay, biz FPGA va Raspberry Pi 4B ni muloqotga aylantirmoqchimiz.
Bu darslikda uchta vazifa bajarilgan:
(A) RPi kamerasining burchagini o'zgartirish uchun bir vaqtning o'zida FPGA -dagi ikkita tugmani bosing.
(B) Raspberry Pi 4B FPGA tashqi LED sxemasini boshqaradi.
(C) WiFi orqali brauzerda Raspberry Pi kamerasini jonli efirga uzatish
1 -qadam: Elektron sxemani yarating
2 -qadam: Verilog kodini tahrirlang
FPGA DueProLogic -ni sotib olganingizda, sizga DVD kerak. "Projects_HDL" ni ochganingizdan so'ng, siz asl HDL kodli faylni ko'rishingiz kerak. PIN -planerni o'rnatganingizdan so'ng, 2A, 2B, 2C va 2D bo'limlarida ko'rsatilganidek, ajratilgan kodni qo'shing.
2A: Tugmachalarni faollashtirish uchun siz ushbu kodni ishlatishingiz kerak
// Tugma tugmachalari
kirish sim UBA,
kirish sim UBB
Raspberry Pi bilan muloqot qilish uchun siz ularni qo'shishingiz kerak.
reg sel_send; // Raspberry pi -ni faollashtiring
reg qabul qilish; // malina pi dan olingan
2B: Portlarga qiymatlarni belgilash uchun siz kodni mos ravishda tahrir qilishingiz kerak
tayinlash XIO_1 [3] = start_stop_cntrl;
tayinlash XIO_2 [2] = qabul qilish; // LED zanjirida HIGH yoki LOW chiqish
tayinlash XIO_2 [3] = ~ UBA; // tugmani bosing
tayinlash XIO_2 [4] = UBB; // tugmachani bosing
tayinlash XIO_2 [5] = sel_send; // FPGA malina pi ga signal yuboradi
belgilash sel_read = XIO_5 [1]; // FPGA malina pi dan signal oladi
tayinlash c_enable = XIO_5 [2]; // XIO_5 - UB57 - D17
LEDExt = XIO_5 [5] ni belgilang;
2C: Agar bir vaqtning o'zida ikkita tugma bosilsa, FPGA Raspberry Pi -ga yuqori chiqishni yuboradi.
har doim @(sel_send yoki UBB yoki UBA) // RPi ga yuboring
boshlash
agar (UBB == 1'b0 && UBA == 1'b0)
sel_send = 1'b1;
boshqa
sel_send = 1'b0;
oxiri
2D: FPGA Raspberry Pi signalini 66 MGts chastotali o'qiydi. XIO_2 [2] porti "qabul" ga ulangan.
har doim @(sel_read) // pi ni o'qing
boshlash
agar (sel_read == 1'b1)
qabul = 1'b0;
boshqa
qabul = 1'b1;
oxiri
3 -qadam: Verilog kodini yuklang
Keyin tuzilgan pof faylini FPGA -ga yuklang. Agar hech qanday apparat avtomatik ravishda aniqlanmasa, uni qo'lda tuzatish uchun "Uskuna sozlamalari" ni bosing
4 -qadam: Raspberry Pi kodini yuklang
Ajratilgan chiziqlar FPGA -ga Raspberry Pi bilan aloqa o'rnatishga imkon beradi.
Ushbu loyihaning to'liq Raspberry Pi kodi,
A = GPIO.input (pin) #read FPGAprint (A);
agar (A == 1):
kamera. aylanish = 0
GPIO.output (18, GPIO. LOW) #FPGA -ga yuborish
agar (A == 0):
kamera.rats = 180
GPIO.output (18, GPIO. HIGH) #FPGA -ga yuborish
5 -qadam: Keling, sinab ko'ramiz
Brauzerni oching va IP manzilingizni kiriting, masalan. 192.168.xx.xxx:8000.
Axir, tizim ishlashi kerak!