Mündəricat:

Pan/əyilmə idarəli ZYBO OV7670 Kamera: 39 addım (şəkillərlə)
Pan/əyilmə idarəli ZYBO OV7670 Kamera: 39 addım (şəkillərlə)

Video: Pan/əyilmə idarəli ZYBO OV7670 Kamera: 39 addım (şəkillərlə)

Video: Pan/əyilmə idarəli ZYBO OV7670 Kamera: 39 addım (şəkillərlə)
Video: Bədəninizə ton vermək üçün 10 məşq necə həyata keçirilməlidir 2024, Noyabr
Anonim
Image
Image
Pan/əyilmə idarəli ZYBO OV7670 Kamera
Pan/əyilmə idarəli ZYBO OV7670 Kamera

Yalnız 2 eksenli servo PWM nəzarətçi yaratmaqla bağlı ətraflı məlumat üçün birinci addımdan başlayın.

Tam layihə üçün kütləvi blok diaqramından başlayın (Addım 19).

İstifadə etdiyimiz Kamera + Pan/əyilmə qurğusu:

Servoları birləşdirmək üçün Digilent -dən PmodCON3 istifadə edildi.

Addım 1: PWM Modulu qurmaq- Mənbə Dosyası

Addım 2: PWM Modulu qurmaq- Vivado Quraşdırması

Bir PWM Modulu qurmaq- Vivado Quraşdırması
Bir PWM Modulu qurmaq- Vivado Quraşdırması

Əvvəlcə Xilinx veb saytından Vivado Design Suite yükləyin. Vivado Software Development Kit (SDK) daxil olmaqla bütün dizayn paketini quraşdırın. Bu layihə 2017.2 versiyasını istifadə edir.

Bu vaxt Digilent Adept 2 də Zybo lövhə sürücüsü olaraq quraşdırılmalıdır.

Addım 3: Bir PWM Modulu Yaratmaq- Bir Layihə Dosyası Yaratmaq

Bir PWM modulu qurmaq- bir layihə faylı yaradın
Bir PWM modulu qurmaq- bir layihə faylı yaradın

Bir layihə faylı yaratmadan əvvəl Zybo faylını burada təlimat olaraq düzgün qurduğunuzdan əmin olmalısınız:

Vivado Version 2015.1 və daha sonra Board Faylının Quraşdırılması

Açıq Vivado 2017.2. Tez Başlanğıcda, Layihə Yarat -> Sonrakı -> Layihə Adı (Layihə adınızı buraya yazın) -> Layihə Növünə vurun. Layihə Tipində RTL Layihəsini seçin və "Hazırda mənbələri göstərməyin" işarəsini qoyun. Sonra, Varsayılan Parça üçün Görünən Ad olaraq "Panolar" və "Zybo" seçin. Sonra, layihəni başlamaq üçün Finish düyməsini basın.

Addım 4: Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (I)

Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (I)
Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (I)

Flow Navigator -da "" Blok Dizaynı Yarat "düyməsini basın və sonra OK düyməsini basın. Lazım olan IP -ləri əlavə etmək üçün "+" işarəsini vurun. Əlavə et:

  • Bir ZYNQ7 İşləmə Sistemi İki AXI Taymer
  • İki AXI Taymer

Addım 5: Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (II)

Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (II)
Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (II)

IP əlavə etdikdən sonra Blok Avtomatlaşdırmasını və əlaqə avtomatlaşdırmasını işə salın. Avtomatlaşdırma başa çatdıqdan sonra, "axi_timer_0" blokunda, pwm0 -> Xarici olun üzərinə sağ vurun. Pwm0 xarici pini pwm_Xaxis adlandırın. Üstəlik, "axi_timer_1" blokunda yuxarıdakı prosesi təkrarlayın və pwm0 xarici pinini pwm_Zaxis adlandırın.

Addım 6: Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (III)

Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (III)
Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (III)

Diqqət yetirin ki, Vivadoda Blok Dizaynını hər dəfə bitirəndə HDL Sarıcı yaratmalıyıq. Hər bir layihə üçün ən yüksək səviyyəli modul olacağından.

Addım 7: Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdud Fayl Ayarı (IV)

Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (IV)
Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (IV)

İndi blok diaqramımıza bağlı sancaqlar təyin etmək üçün məhdudiyyət sənədimizi qurmalıyıq. Blok Dizaynı pəncərəsini bağlayın, Mənbələrdə, "Mənbə əlavə et"-> Məhdudiyyətlər əlavə edin və ya yaradın-> Zybo-Master.xdc-ni məhdudlaşdırma sənədlərimiz kimi əlavə edin.

Addım 8: Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (V)

Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (V)
Bir PWM Modulu qurmaq- Blok Dizaynı və Məhdudlaşdırma Fayl Ayarı (V)

Məhdudiyyətlər qovluğundan Zybo-Master.xdc məhdudlaşdırma faylını açın, çıxış siqnalları olaraq təyin etmək istədiyimiz portları şərhdən çıxarın və XXXX-in Blok Şemasında adlanan xarici pimi ifadə etdiyi "get_ports {XXXX}" adını verin. Məhdudlaşdırma faylının ayarı şəkildə göstərilmişdir.

Addım 9: PWM Modulunun Qurulması- Avadanlıq Quraşdırılması

Bir PWM Modulu qurmaq- Avadanlıq Quraşdırması
Bir PWM Modulu qurmaq- Avadanlıq Quraşdırması

Servo mühərrikləri Pmod CON3 -ə qoşun. TowerPro SG90, bu layihədə istifadə etdiyimiz servo motor modelidir. Servo motor telləri üçün narıncı tel, Pmod CON3 -də SIG pininə qoşulmuş PWM siqnalını təmsil edir. Qırmızı tel Vcc, Pmod CON3 -də VS pininə qoşulmuş bir güc telidir. Nəhayət, qəhvəyi tel Gnd, GND pininə bağlı olan bir torpaq telidir. Sonra, Pmod CON3 -ü Zybo Board -da JD portunun yuxarı sırasına daxil edin.

Addım 10: Bir PWM Modulu qurun- Bitstream yaradın və SDK başladın

1. Project Navigator sekmesinde, BitStream Yarat'ı çalıştırın.

2. Avadanlıq ixrac edin: Fayl> İxrac et> Avadanlığı İxrac et-> "bit axını daxil et" işarəsini qoyun-> Tamam 3. SDK-nı işə salın: Fayl-> SDK-nı işə salın.

Addım 11: PWM Modulu qurmaq- Xilinx SDK-da yeni bir tətbiq yaradın

Bir PWM Modulu qurmaq- Xilinx SDK-da yeni bir tətbiq yaradın
Bir PWM Modulu qurmaq- Xilinx SDK-da yeni bir tətbiq yaradın

Yeni bir tətbiq yaradın:

Fayl> Yeni> Tətbiq Layihəsi -> Layihənizin adını daxil edin -> Bitirin

Project Explorer altında üç qovluq olmalıdır.

Bu vəziyyətdə, "design_1_wrapper_hw_platform_0" Vivado tərəfindən əvvəllər ixrac edilən qovluqdur. Axis_2_PWM_SDK_bsp lövhə dəstək paketi qovluğudur. Və Axis_2_PWM_SDK, SDK -dakı əsas layihə qovluğumuzdur. Axis_2_PWM_SDK -nin "src" qovluğunun altında "helloworld.c" faylını görə bilərsiniz, burada "helloworld.c" əsas sənəddir.

Addım 12: Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (I)

Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (I)
Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (I)

Project Explorer altında bəzi faylları yoxlayaq. Əvvəlcə "design_1_wrapper_hw_platform_0" qovluğunda "system.hdf" faylını açın. Bu fayl, ps7_cortex9 prosessorunun ünvan xəritəsini və dizaynımızda mövcud olan IP bloklarını nümayiş etdirir.

Addım 13: Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (II)

Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (II)
Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (II)

Sonra, "Axis_2_PWM_SDK_bsp" qovluğunun altındakı "daxil et" və "libsrc" faylını yoxlayın. Buradakı kitabxana sənədləri, "çalma" qeydləri olmadan aparat qurğuları ilə əlaqə qurmağımıza imkan verir.

Addım 14: Bir PWM Modulu qurmaq- Layihə Explorer-ə Baxış (III)

Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (III)
Bir PWM Modulu qurmaq- Project Explorer-ə Baxış (III)

BSP sənədləri vasitəsilə xtmrctr.h, AXI Timer ilə əlaqəli Xilinx Timer Control Library kimi tapılır. Tipik olaraq, burada istədiyiniz PWM funksiyasını tapa bilərik. Ancaq "tmrctr_v4_3" sənədlərini oxusanız, sürücünün hazırda cihazın PWM işini dəstəkləmədiyini göstərir. PWM funksiyasındakı çatışmazlıq səbəbiylə xtmrctr.h və AXI Timer v2.0 LogiCORE IP Məhsul Kılavuzu ilə PWM funksiyamızı tamamlamalıyıq.

Addım 15: Bir PWM Modulu qurmaq- PWM Fonksiyonunu Tamamlayın (I)

Bir PWM Modulu qurmaq- PWM funksiyasını tamamlayın (I)
Bir PWM Modulu qurmaq- PWM funksiyasını tamamlayın (I)

"Helloworld.c" ana faylına qayıdın, aşağıdakı başlıq fayllarını daxil edin:

Addım 16: PWM Modulunun Qurulması- PWM Fonksiyonunu Tamamlayın (II)

Bir PWM Modulu qurmaq- PWM funksiyasını tamamlayın (II)
Bir PWM Modulu qurmaq- PWM funksiyasını tamamlayın (II)

"AXI TImer" in əsas ünvanlarını "xparameters.h" vasitəsilə təyin edin.

Addım 17: PWM Modulu qurmaq- PWM Fonksiyonunu Sarın (III)

Bir PWM Modulu qurmaq- PWM funksiyasını tamamlayın (III)
Bir PWM Modulu qurmaq- PWM funksiyasını tamamlayın (III)

İstədiyiniz PWM funksiyasını qurun.

Duty_val: dərəcə dəyərini vəzifə dövrünə çevirir. PWM_Freq_Duty: PWM yaratmaq üçün istədiyiniz tezliyi və vəzifə dövrünü təyin edin. Saat müddəti də təyin olunmalıdır.

PWM_START: PWM qeydiyyat ünvanını təyin edin və PWM yaratmağa başlayın.

PWM_STOP: PWM qeyd ünvanını təyin edin və PWM istehsalını dayandırın.

Qalan demo kodlar "Axlow_2_PWM_SDK" altında "helloworld.c" də göstərilir.

Addım 18: PWM Modulu qurun- Çalışdırın

1. SDK vasitəsilə FPGA proqramlaşdırın

  • Zybo Board -u USB portu ilə PC -yə qoşun.
  • Xilinx Tools -> FPGA Proqramı

2. Proqramı işə salın

"Çalış" simgesini vurun və menyunu açın -> Farklı Çalış -> Avadanlıqda Başlat

3. SDK Terminalı

  • SDK Terminalını açın -> Serial Porta Bağlanın -> Tamam
  • Proqramı işə salın. Demo kodu uğurla işləyirsə, "Başlanğıc tamamlandı!" Görməlisiniz. SDK terminalında.

Addım 19: OV7670 ilə Digilent ZYBO -da Video İşlənməsi

Tam arxiv faylı əlavə olunur.

Addım 20: Blok Şemasını tamamlayın

Tam Blok Şeması
Tam Blok Şeması

Bu, layihədəki bütün əlaqələrin və IP bloklarının tam diaqramını göstərir

Addım 21: OV7670 -ni ZYBO -ya qoşun

OV7670 -i ZYBO -ya qoşun
OV7670 -i ZYBO -ya qoşun

Ov7670 modulunu ZYBO Pmods -a bağlamaq üçün əlaqə yaradın

Məlumat Pmodu Pmod D -dir

Control Pmod Pmod C -dir

Əlavə olaraq, bu təlimatın ilk yarısında göstərildiyi kimi PmodCON3 və servoları bağlayın

Addım 22: Blok Dizaynı yaradın

Blok dizaynı yaradın
Blok dizaynı yaradın

Flow Navigator -da "Blok Dizaynı Yarat" düyməsini basın, sonra OK düyməsini basın.

Addım 23: OV7670 Kamera İdarəetmə və Çəkmə üçün VHDL Dosyaları əlavə edin

Bu addıma əlavə edilmiş VHDL fayllarını layihəyə əlavə edin

Addım 24: Məhdudiyyətlər Faylını əlavə edin

Əlavə edilmiş məhdudiyyətlər faylını layihənizə əlavə edin.

Addım 25: HLS IP üçün IP Repo əlavə edin

HLS IP üçün IP Repo əlavə edin
HLS IP üçün IP Repo əlavə edin

Əlavə edilmiş Zip faylını götürün və "HLS_repo" adlı yeni bir qovluqda (qovluqda) eyni adlı yeni bir qovluğa açın.

IP kataloquna gedərək "Depo əlavə et …" seçimini sağ tıklayaraq layihənizə bir IP anbarı əlavə edin.

"HLS_repo" qovluğuna gedin və seçin.

İsteğe bağlı: HLS video emal blokunu özünüz üçün yaradın!

Addım 26: Modul və IP əlavə edin

Modul və IP əlavə edin
Modul və IP əlavə edin
Modul və IP əlavə edin
Modul və IP əlavə edin

Ov7670_axi_stream_capture, debounce və ov7670_controller modullarını arxa plana sağ tıklayaraq və "Modul əlavə et …" seçərək blok sxeminə əlavə edin.

Eynilə, IP -ləri əlavə edin:

  • HLS_Video_Track
  • Video Çərçivə Tamponu Yaz
  • Video Çərçivə Tamponu Oxuyun
  • Video vaxt tənzimləyicisi
  • AXI4-Video Çıxışına axın
  • 3 "Dilim"
  • Sabit
  • AXI Taymeri 2

Addım 27: IP Konfiqurasiya Ayarları

IP Konfiqurasiya Ayarları
IP Konfiqurasiya Ayarları
IP Konfiqurasiya Ayarları
IP Konfiqurasiya Ayarları
IP Konfiqurasiya Ayarları
IP Konfiqurasiya Ayarları

Şəkillərdə göstərildiyi kimi

Addım 28: PS IP Blokunu əlavə edin və konfiqurasiya edin

PS IP Blokunu əlavə edin və konfiqurasiya edin
PS IP Blokunu əlavə edin və konfiqurasiya edin
PS IP Blokunu əlavə edin və konfiqurasiya edin
PS IP Blokunu əlavə edin və konfiqurasiya edin

ZYNQ7 Qenerasiya Sistemini blok sxemə əlavə edin

konfiqurasiyanı redaktə edin:

  • PS-PL konfiqurasiyası

    • HP

      • S HP 0 -ı aktiv edin
      • S HP 1 -i aktiv edin
  • Saat konfiqurasiyası

    • PL Kumaş Saatlar

      • FCLK_0 100 MHz -də
      • 25MHz -də FCLK_1 (Çıxış Saatı)
      • 35 MHz -də FLCK_2 (<= 50 MHz) (CameraClock)

Addım 29: Hissə 1. Servo Motorlar üçün PWM Modulunun Qurulması

Axi_timer_0 pwm0 yeni pwm_Xaxis çıxış limanına çıxarın

Axi_timer_1 pwm0 -u yeni pwm_Zaxis çıxış limanına çıxarın

Addım 30: Video Giriş Yan Əlaqələri (Vurğulandı)

Video Giriş Yan Əlaqələri (Vurğulandı)
Video Giriş Yan Əlaqələri (Vurğulandı)

Video giriş tərəfindəki IP bloklarını düzgün bağlayın

(* bu əlaqələr avtomatlaşdırma zamanı düzgün variantlar seçilərək yaradılmalıdır) axi_stream_capture -dən "aclk" gedir:

  • video çərçivə buferində ap_clk yazın
  • HLS video axını emal blokunda ap_clk
  • *Video Çərçivə Tamponundan AXI smartconnect IP -də aclk S_AXI_HP0 -a yazın
  • *HLS video emal blokunun S_AXI kanalları üçün AXI Interconnect IP kanallarına uyğun olan aclk və PS çərçivəsinə S_AXI_HP0_ACLK yazın.

Video axını siqnalı, ələ keçirmə blokundan Zynq yaddaş interfeysinə ardıcıl olaraq bağlanır.

  • Video çəkmə blokundan HLS işləmə blokuna keçir.
  • HLS blokundan işlənmiş video çərçivə buferinin yazma blokuna gedir.
  • *Çərçivə tamponu yazma bloku Zynq PS blokundakı HP0 interfeysinə qoşulur.
  • Tutma blokunun çıxışından gələn m_axis_tuser siqnalı, həm HLS emal blokundakı video_in_TUSER giriş siqnalına, həm də eyni blokdakı ap_start siqnalına əl ilə bağlanır.

TUSER (tuser) siqnalı, AXI video axını protokolu tərəfindən videonun bir çərçivəsinin başladığını göstərmək üçün istifadə olunur. Avtobusun tək bir siqnalını bağlayanda və bu şəkildə ayıranda onu avtobusun qalan hissəsinin normal son nöqtəsinə bağlamaq lazımdır. Vivado, siqnalı əl ilə bağlayırsınızsa, normal olaraq nəyi bağlayacağını ayırmaq istədiyinizi düşünür.

IP bloklarının konfiqurasiya parametrləri:

Video çərçivə tamponu yaz:

Video formatları: RGB8

Saat başına 1 nümunə Maksimum sütun: 1280 (> = 640) Maksimum satır: 960 (> = 480) Maksimum məlumat eni: 8

Addım 31: OV7670 -ə bağlantılar

OV7670 ilə əlaqə
OV7670 ilə əlaqə

Ov7670_axi_stream_capture blokunda

  • Bütün girişləri xarici edin (bir sancağa sağ vurun və menyudan seçin və ya sol klik-> ctrl+T)
  • Adları olduğu kimi buraxın

Ov7670_controller blokunda

  • Blokun bütün çıxışlarını xarici edin
  • Config_finished portunu led0 adlandırın
  • clk -ı CameraClock -a qoşun (<= 50MHz) (FCLK_2)

Çıxış blokunda

  • button1 girişini btn0 adlı xarici giriş portuna qoşun
  • out1 -i ov7670_controller IP blokundakı yenidən göndərmə xəttinə qoşun
  • button2 girişini btn3 adlı xarici giriş portuna qoşun
  • video çəkmə saatı üçün İşlemci Sistem Sıfırlama IP -də olan out2n -i ext_reset_in girişinə qoşun. (*Bunun IP yaradıldıqdan sonra edilməsi lazım ola bilər*)
  • clk -ı CameraClock -a qoşun (<= 50MHz) (FCLK_2)

Addım 32: Videonun kənarındakı bağlantılar

Video kənarında əlaqələr
Video kənarında əlaqələr
Video kənarında əlaqələr
Video kənarında əlaqələr
Video kənarında əlaqələr
Video kənarında əlaqələr
Video kənarında əlaqələr
Video kənarında əlaqələr

Bloklar Video Zamanlama Nəzarətçisi (VTC), AXI4-Stream to Video Out və dilimlər üçün bağlantılar

  • Vid_io_out_clk və VTC clk üçün 25MHz saat (FCLK_1) istifadə edin
  • AXI4-Stream in Video Out-da aclk üçün 100MHz saat (FCLK_0) istifadə edin
  • vtiming_out -dan vtiming_in -ə
  • Video Çərçivə Tamponu oxuyun m_axis_video AXI4-Axından Video Çıxışa gedir video_in
  • vtg_ce gen_clken -ə gedir
  • VTC clken, aclken, vid_io_out_ce -ni Sabit işlə bağlayın [0: 0]
  • Vid_hsync və vid_vsync -i sırasıyla vga_hs və vga_vs xarici çıxış limanlarına çıxarın. (şəkil yoxdur)

Dilimlər:

  • Dilimlər əlavə şəkillərdə göstərildiyi kimi qurulmalıdır

    • blokları slice_red, slice_green və slice_blue adlandırın
    • blok adına görə şəkillərdə göstərildiyi kimi dilim aralığı qurun
    • hər bir dilim çıxışını şəkildə göstərildiyi kimi xarici bir port çıxışına qoşun.
  • vid_data [23: 0] hər dilim üçün girişlərə bağlanır (Din [23: 0])

Addım 33: Blok və Bağlantı Otomasyonunu işə salın

Blok və Bağlantı Otomasyonunu işə salın
Blok və Bağlantı Otomasyonunu işə salın
Blok və Bağlantı Otomasyonunu işə salın
Blok və Bağlantı Otomasyonunu işə salın
Blok və Bağlantı Otomasyonunu işə salın
Blok və Bağlantı Otomasyonunu işə salın

ZYNQ7 PS blokundakı hər şeyi birləşdirmək üçün Blok Otomasyonunu işə salın. Şəkildə göstərildiyi kimi.

Bütün əlaqə IP -lərini yaratmaq üçün Əlaqə avtomatlaşdırmasını işə salın. Hər bir şəkildəki bütün variantlara çox diqqət yetirin.

Çıxma blokunda, out2n -i video çəkmə saatı prosessor sisteminə sıfırla ext_reset_in girişinə qoşun.

Addım 34: HDL Sarıcı yaradın

HDL Sarıcı yaradın
HDL Sarıcı yaradın

Blok dizaynınız üçün HDL Sarıcı yaradın.

Üst modul olaraq təyin edin.

Addım 35: Bitstream yaradın, Avadanlığı SDK -ya ixrac edin, Vivadodan SDK başladın

İxracata bit axını daxil etdiyinizə əmin olun.

Bit axınının yaranması çox uzun çəkə bilər.

Sonra SDK -ı işə salın

Addım 36: SDK (FreeRTOS yoxdur)

SDK (FreeRTOS yoxdur)
SDK (FreeRTOS yoxdur)

Bu versiya, kodu gözəl bir şəkildə sıxaraq FreeRTOS istifadə etmədən hər şeyi edir.

Avadanlıq dizaynına əsaslanaraq müstəqil bir BSP yaradın. Varsayılan seçimlər yaxşı olmalıdır. BSP mənbələrinin yaradıldığından əmin olun.

Şəkildə göstərildiyi kimi tətbiq yaradın. (boş tətbiq)

Avtomatik yaradılan əsas silin və əlavə edilmiş faylları idxal edin.

Addım 37: FreeRTOS Tətbiqi

FreeRTOS tətbiqi
FreeRTOS tətbiqi

Bu versiya FreeRTOS istifadə edir. Donanım dizaynına əsaslanaraq FreeRTOS901 BSP yaradın. Varsayılan seçimlər yaxşı olmalıdır. BSP mənbələrinin yaradıldığından əmin olun.

Şəkildə göstərildiyi kimi tətbiq yaradın. (boş tətbiq)

Avtomatik yaradılan əsas silin və əlavə edilmiş faylları idxal edin.

Addım 38: İstifadə Təlimatları

Bu layihəni işə salmaq bir az çətindir. Addımları ardıcıllıqla edin.

ZYBO-nun işə salındıqda heç bir şeyin özünü yükləmədiyinə əmin olun. Bu o deməkdir ki, bitmiş LED yanmamalıdır. Bunun bir yolu, açılış mənbəyi tullananını JTAG olaraq təyin etməkdir.

SDK -dan proqramlaşdırmaq istədiyiniz layihəni açın (FreeRTOS ya yox)

  1. ZYBO -nuzu yandırın. Bitmiş LED yanmamalıdır.
  2. FPGA -nı bit faylı ilə proqramlaşdırın. Bitmiş LED yanmalıdır. Led0 yanmamalıdır.
  3. Kodu işlədin (bunu edirsinizsə, başlanğıc nöqtəsini keçməyi unutmayın).

Bu nöqtədə VGA ekranınızda bir çıxış əldə etməlisiniz.

Yenidən başlatmaq üçün (səhvlər və ya hər hansı bir şey varsa): tez PS-SRST düyməsinə vurun və ya ZYBO-nu söndürün və sonra yenidən açın. 2 -ci addımdan davam edin.

Hata ayıklayıcı ilə prosessoru dayandırmaq Kameranın hərəkət etmək əvəzinə mövqeyini saxlamasına səbəb olacaq. Video axını hər halda davam edəcək.

Addım 39: İstinadlar və Bağlantılar

Xilinx istinad təlimatları və sənədlər:

  • PG044 - AXI -Video axını
  • PG278 - Video Çərçivə Tamponu Oxu/Yaz

Digər bağlantılar:

  • Lauri bloqu - VDMA girişi
  • Lauri blog - BRAM istifadə edərək VVA çıxış OV7670
  • Hamsterworks wiki, Mike Fields, OV7670 kodunun orijinal mənbəyi
  • Vaxt cədvəlini göstərən əsas məlumatlar

Tövsiyə: