Turinys:

ZYBO OV7670 kamera su pasukimo/pakreipimo valdymu: 39 žingsniai (su nuotraukomis)
ZYBO OV7670 kamera su pasukimo/pakreipimo valdymu: 39 žingsniai (su nuotraukomis)

Video: ZYBO OV7670 kamera su pasukimo/pakreipimo valdymu: 39 žingsniai (su nuotraukomis)

Video: ZYBO OV7670 kamera su pasukimo/pakreipimo valdymu: 39 žingsniai (su nuotraukomis)
Video: Conected camera ov7670 to ZYBO Digilent 2024, Lapkritis
Anonim
Image
Image
ZYBO OV7670 kamera su pasukimo/pakreipimo valdikliu
ZYBO OV7670 kamera su pasukimo/pakreipimo valdikliu

Pradėkite nuo pirmo žingsnio, kad sužinotumėte, kaip sukurti tik 2 ašių servo PWM valdiklį.

Pradėkite nuo didžiulės viso projekto blokinės schemos (19 veiksmas).

Naudota „Camera + Pan/tilt“sąranka:

Servo prijungimui buvo naudojamas „Digilent“„PmodCON3“.

1 žingsnis: sukurkite PWM modulio šaltinio failą

2 žingsnis: sukurkite PWM modulį- „Vivado“sąranka

PWM modulio kūrimas- „Vivado“sąranka
PWM modulio kūrimas- „Vivado“sąranka

Pirmiausia atsisiųskite „Vivado Design Suite“iš „Xilinx“svetainės. Įdiekite visą dizaino rinkinį, įskaitant „Vivado Software Development Kit“(SDK). Šiame projekte naudojama 2017.2 versija.

Tuo tarpu „Digilent Adept 2“taip pat turėtų būti įdiegta kaip „Zybo“plokštės tvarkyklė.

3 žingsnis: sukurkite PWM modulį- sukurkite projekto failą

PWM modulio kūrimas- sukurkite projekto failą
PWM modulio kūrimas- sukurkite projekto failą

Prieš kurdami projekto failą, įsitikinkite, kad jau tinkamai įdiegėte „Zybo“failą, kaip čia:

„Vivado“versija 2015.1 ir naujesnės plokštės failų diegimas

Atidarykite „Vivado“2017.2. Greitai pradėdami spustelėkite Kurti projektą -> Kitas -> Projekto pavadinimas (čia įvardykite savo projekto pavadinimą) -> Projekto tipas. Projekto tipe pasirinkite RTL projektas ir pažymėkite „Nenurodykite šaltinių šiuo metu“. Tada kaip numatytąją dalį pasirinkite „Lentos“ir „Zybo“kaip rodomą vardą. Tada spustelėkite Baigti, kad pradėtumėte projektą.

4 žingsnis: sukurkite PWM modulį- bloko projektavimas ir apribojimų failo nustatymas (I)

PWM modulio kūrimas- bloko dizainas ir apribojimų failo nustatymas (I)
PWM modulio kūrimas- bloko dizainas ir apribojimų failo nustatymas (I)

„Flow Navigator“spustelėkite „„ Sukurti bloko dizainą “, tada paspauskite Gerai. spustelėkite „+“ženklą, kad pridėtumėte reikiamus IP adresus. Papildyti:

  • Viena ZYNQ7 apdorojimo sistema Du AXI laikmačiai
  • Du AXI laikmačiai

5 žingsnis: sukurkite PWM modulį- bloko projektavimas ir apribojimų failo nustatymas (II)

PWM modulio kūrimas- blokų projektavimas ir apribojimų failo nustatymas (II)
PWM modulio kūrimas- blokų projektavimas ir apribojimų failo nustatymas (II)

Pridėję IP, paleiskite blokavimo automatizavimą ir ryšio automatizavimą. Užbaigus automatizavimą, bloke „axi_timer_0“dešiniuoju pelės mygtuku spustelėkite pwm0 -> Make External. Pavadokite pwm0 išorinį kaištį kaip pwm_Xaxis. Taip pat pakartokite aukščiau aprašytą veiksmą bloke „axi_timer_1“ir pavadinkite pwm0 išorinį kaištį kaip pwm_Zaxis.

6 žingsnis: sukurkite PWM modulį- bloko projektavimas ir apribojimų failo nustatymas (III)

PWM modulio kūrimas- bloko dizainas ir apribojimų failo nustatymas (III)
PWM modulio kūrimas- bloko dizainas ir apribojimų failo nustatymas (III)

Atkreipkite dėmesį, kad kiekvieną kartą, kai baigiame blokų dizainą Vivado, turime sukurti HDL įvyniojimą. Kadangi tai bus aukščiausio lygio modulis kiekvienam projektui.

7 žingsnis: sukurkite PWM modulį- bloko projektavimas ir apribojimų failo nustatymas (IV)

PWM modulio kūrimas- bloko projektavimas ir apribojimų failo nustatymas (IV)
PWM modulio kūrimas- bloko projektavimas ir apribojimų failo nustatymas (IV)

Dabar turime nustatyti savo apribojimų failą, kad priskirtume kaiščius, prijungtus prie mūsų blokinės schemos. Uždarykite langą „Blokuoti dizainą“, skirtuke „Šaltiniai“, „Pridėti šaltinių“-> Pridėti arba sukurti apribojimų-> pridėkite „Zybo-Master.xdc“kaip mūsų apribojimų failus.

8 žingsnis: sukurkite PWM modulį- bloko projektavimas ir apribojimų failo nustatymas (V)

PWM modulio kūrimas- bloko dizainas ir apribojimų failo nustatymas (V)
PWM modulio kūrimas- bloko dizainas ir apribojimų failo nustatymas (V)

Atidarykite apribojimų failą „Zybo-Master.xdc“aplanke „Apribojimai“, panaikinkite prievadus, kuriuos norime nurodyti kaip išvesties signalus, ir pervardykite „get_ports {XXXX}“, kuris XXXX žymi išorinį kaištį, įvardytą blokinėje diagramoje. Apribojimo failo nustatymas parodytas paveikslėlyje.

9 žingsnis: PWM modulio sukūrimas- aparatinės įrangos diegimas

PWM modulio kūrimas- aparatinės įrangos montavimas
PWM modulio kūrimas- aparatinės įrangos montavimas

Prijunkite servo variklius prie „Pmod CON3“. „TowerPro SG90“yra servo variklio modelis, kurį naudojome šiame projekte. Servo variklio laidams oranžinė viela reiškia PWM signalą, prijungtą prie SIG kaiščio Pmod CON3. Raudona viela Vcc yra maitinimo laidas, prijungtas prie VS kaiščio Pmod CON3. Galiausiai, ruda viela Gnd yra įžeminimo laidas, prijungtas prie GND kaiščio. Tada įdėkite „Pmod CON3“į viršutinę „Zybo“plokštės JD prievado eilutę.

10 veiksmas: sukurkite PWM modulį- generuokite srautą ir paleiskite SDK

1. Skirtuke „Project Navigator“paleiskite „Generate BitStream“.

2. Eksportuoti aparatūrą: Failas> Eksportuoti> Eksportuoti aparatūrą-> pažymėkite „įtraukti bitų srautą“-> Gerai 3. Paleiskite SDK: Failas-> Paleiskite SDK.

11 veiksmas: sukurkite PWM modulį- sukurkite naują programą „Xilinx SDK“

PWM modulio kūrimas- sukurkite naują programą „Xilinx SDK“
PWM modulio kūrimas- sukurkite naują programą „Xilinx SDK“

Sukurkite naują programą:

Failas> Naujas> Taikymo projektas -> Įveskite savo projekto pavadinimą -> Baigti

„Project Explorer“turėtų būti trys aplankai.

Šiuo atveju „design_1_wrapper_hw_platform_0“yra aplankas, kurį anksčiau eksportavo „Vivado“. „Axis_2_PWM_SDK_bsp“yra lentos palaikymo paketo aplankas. „Axis_2_PWM_SDK“yra pagrindinis mūsų SDK projekto aplankas. „Helloworld.c“failą galite pamatyti „Axis_2_PWM_SDK“aplanke „src“, kur „helloworld.c“yra pagrindinis failas.

12 žingsnis: PWM modulio kūrimas- „Project Explorer“apžvalga (I)

PWM modulio kūrimas- „Project Explorer“apžvalga (I)
PWM modulio kūrimas- „Project Explorer“apžvalga (I)

Patikrinkime kai kuriuos failus naudodami „Project Explorer“. Pirmiausia aplanke „design_1_wrapper_hw_platform_0“atidarykite „system.hdf“. Šis failas parodo procesoriaus ps7_cortex9 adresų žemėlapį ir mūsų projekte esančius IP blokus.

13 žingsnis: PWM modulio kūrimas- „Project Explorer“apžvalga (II)

PWM modulio kūrimas- „Project Explorer“apžvalga (II)
PWM modulio kūrimas- „Project Explorer“apžvalga (II)

Tada aplanke „Axis_2_PWM_SDK_bsp“patikrinkite failus „include“ir „libsrc“. Čia esantys bibliotekos failai leidžia mums bendrauti su aparatinės įrangos periferiniais įrenginiais, „neleidžiant“registrų.

14 žingsnis: PWM modulio kūrimas- „Project Explorer“apžvalga (III)

PWM modulio kūrimas- „Project Explorer“apžvalga (III)
PWM modulio kūrimas- „Project Explorer“apžvalga (III)

Per BSP dokumentus xtmrctr.h randama kaip „Xilinx“laikmačio valdymo biblioteka, susijusi su „AXI Timer“. Paprastai norimą PWM funkciją galime rasti čia. Tačiau jei perskaitysite dokumentaciją „tmrctr_v4_3“, paaiškės, kad tvarkyklė šiuo metu nepalaiko įrenginio PWM veikimo. Dėl PWM funkcijos trūkumo turime užbaigti savo PWM funkciją naudodami xtmrctr.h ir „AXI Timer v2.0 LogiCORE IP“produkto vadovą.

15 žingsnis: sukurkite PWM modulį- įjunkite PWM funkciją (I)

PWM modulio kūrimas- PWM funkcijos užbaigimas (I)
PWM modulio kūrimas- PWM funkcijos užbaigimas (I)

Grįždami į pagrindinį failą „helloworld.c“, įtraukite šiuos antraštės failus:

16 žingsnis: sukurkite PWM modulį- įjunkite PWM funkciją (II)

PWM modulio kūrimas- PWM funkcija (II)
PWM modulio kūrimas- PWM funkcija (II)

Apibrėžkite dviejų „AXI TImer“bazinius adresus naudodami „xparameters.h“.

17 žingsnis: sukurkite PWM modulį- įjunkite PWM funkciją (III)

PWM modulio kūrimas- PWM funkcija (III)
PWM modulio kūrimas- PWM funkcija (III)

Sukurkite norimą PWM funkciją.

Duty_val: konvertuoja laipsnio vertę į darbo ciklą. PWM_Freq_Duty: nustatykite norimą dažnį ir darbo ciklą, kad sukurtumėte PWM. Taip pat turėtų būti priskirtas laikrodžio laikotarpis.

PWM_START: priskirkite PWM registro adresą ir pradėkite kurti PWM.

PWM_STOP: priskirkite PWM registro adresą ir sustabdykite PWM generavimą.

Likęs demonstracinis kodas rodomas „helloworld.c“skiltyje „Axis_2_PWM_SDK“

18 žingsnis: sukurkite PWM modulį- paleiskite jį

1. Užprogramuokite FPGA per SDK

  • Prijunkite „Zybo Board“prie kompiuterio per USB prievadą.
  • „Xilinx Tools“-> Programuoti FPGA

2. Paleiskite programą

Spustelėkite piktogramą „Vykdyti“ir išskleidžiamajame meniu -> Vykdyti kaip -> Paleisti aparatinėje įrangoje

3. SDK terminalas

  • Atidarykite SDK terminalą -> Prisijunkite prie nuoseklaus prievado -> Gerai
  • Paleiskite programą. Jei demonstracinis kodas paleidžiamas sėkmingai, turėtumėte pamatyti „Inicijavimas atliktas!“SDK terminale.

19 veiksmas: vaizdo įrašų perdavimas srautu naudojant „Digilent ZYBO“naudojant OV7670

Pridedamas visas archyvo failas.

20 veiksmas: užpildykite blokinę schemą

Užpildykite blokinę schemą
Užpildykite blokinę schemą

Tai rodo išsamią visų projekto jungčių ir IP blokų schemą

21 veiksmas: prijunkite OV7670 prie ZYBO

Prijunkite OV7670 prie ZYBO
Prijunkite OV7670 prie ZYBO

Sukurkite ryšį, kad prijungtumėte ov7670 modulį prie „ZYBO Pmods“

Duomenys Pmod yra Pmod D.

Kontrolinis Pmod yra Pmod C

Be to, prijunkite „PmodCON3“ir „servos“, kaip nurodyta pirmoje šios pamokos pusėje

22 veiksmas: sukurkite bloko dizainą

Sukurkite bloko dizainą
Sukurkite bloko dizainą

„Flow Navigator“spustelėkite „Sukurti bloko dizainą“, tada paspauskite Gerai.

23 veiksmas: pridėkite VHDL failus, skirtus „OV7670“fotoaparato valdymui ir fiksavimui

Pridėkite prie šio veiksmo pridėtus VHDL failus prie projekto

24 veiksmas: pridėkite apribojimų failą

Pridėkite prie projekto pridėtą apribojimų failą.

25 veiksmas: pridėkite „HLS IP“IP repą

Pridėti IP Repo HLS IP
Pridėti IP Repo HLS IP

Paimkite pridėtą „Zip“failą ir išpakuokite jį į naują aplanką, pavadintą panašiai, naujame kataloge (aplanke), pavadintame „HLS_repo“.

Pridėkite IP saugyklą prie savo projekto, eidami į IP katalogą ir dešiniuoju pelės mygtuku spustelėdami „Pridėti saugyklą …“

Eikite į katalogą „HLS_repo“ir pasirinkite jį.

Neprivaloma: sukurkite HLS vaizdo apdorojimo bloką sau!

26 veiksmas: pridėkite modulius ir IP

Pridėkite modulius ir IP
Pridėkite modulius ir IP
Pridėkite modulius ir IP
Pridėkite modulius ir IP

Pridėkite modulius ov7670_axi_stream_capture, debounce ir ov7670_controller prie blokų diagramos, dešiniuoju pelės klavišu spustelėdami foną ir pasirinkę „Add Module…“

Panašiai pridėkite IP:

  • HLS_Video_Track
  • Vaizdo kadrų buferis rašyti
  • Vaizdo kadrų buferio skaitymas
  • Vaizdo laiko valdiklis
  • „AXI4-Stream“į vaizdo išvestį
  • 3 iš „Slice“
  • Pastovus
  • 2 iš AXI laikmačio

27 veiksmas: IP konfigūracijos nustatymai

IP konfigūracijos nustatymai
IP konfigūracijos nustatymai
IP konfigūracijos nustatymai
IP konfigūracijos nustatymai
IP konfigūracijos nustatymai
IP konfigūracijos nustatymai

Kaip parodyta paveikslėliuose

28 veiksmas: pridėkite ir sukonfigūruokite PS IP bloką

Pridėkite ir sukonfigūruokite PS IP bloką
Pridėkite ir sukonfigūruokite PS IP bloką
Pridėkite ir sukonfigūruokite PS IP bloką
Pridėkite ir sukonfigūruokite PS IP bloką

Pridėkite ZYNQ7 apdorojimo sistemą prie blokinės schemos

redaguoti konfigūraciją:

  • PS-PL konfigūracija
    • HP

      • Įgalinti S HP 0
      • Įgalinti „S HP 1“
  • Laikrodžio konfigūracija
    • PL audiniai laikrodžiai

      • FCLK_0 100 MHz dažniu
      • FCLK_1 25 MHz dažniu („OutputClock“)
      • FLCK_2 esant 35 MHz (<= 50 MHz) („CameraClock“)

29 žingsnis: 1 dalis. Servo variklių PWM modulio sukūrimas

Išveskite axi_timer_0 pwm0 į naują išvesties prievadą pwm_Xaxis

Išveskite axi_timer_1 pwm0 į naują išvesties prievadą pwm_Zaxis

30 veiksmas: vaizdo įvesties šoninės jungtys (paryškinta)

Vaizdo įvesties šoninės jungtys (paryškintos)
Vaizdo įvesties šoninės jungtys (paryškintos)

Teisingai prijunkite vaizdo įvesties pusės IP blokus

(* šiuos ryšius reikia sukurti pasirinkus tinkamas parinktis prisijungimo automatizavimo metu) „aclk“iš „axi_stream_capture“eina į:

  • ap_clk ant vaizdo kadro buferio rašyti
  • ap_clk dėl HLS vaizdo srauto apdorojimo bloko
  • *AXI smartconnect IP įrašas iš vaizdo kadrų buferio Rašykite į S_AXI_HP0
  • *„aclk“, atitinkantis „AXI Interconnect IP“kanalus, skirtus HLS vaizdo apdorojimo bloko S_AXI kanalams ir vaizdo įrašo kadrų buferiui, parašyti S_AXI_HP0_ACLK ant PS bloko

Vaizdo srauto signalas tiesiog sujungiamas nuosekliai nuo fiksavimo bloko iki „Zynq“atminties sąsajos.

  • Vaizdo įrašas pereina iš fiksavimo bloko į HLS apdorojimo bloką.
  • Apdorotas vaizdo įrašas iš HLS bloko patenka į kadrų buferio rašymo bloką.
  • *Rėmelio buferio rašymo blokas jungiasi prie „Zynq PS“bloko HP0 sąsajos.
  • M_axis_tuser signalas iš fiksavimo bloko išvesties yra rankiniu būdu prijungtas prie HLS apdorojimo bloko įvesties signalo video_in_TUSER ir prie to paties bloko ap_start signalo.

TUSER (tuser) signalas naudojamas AXI vaizdo srauto protokole, kad būtų nurodytas vaizdo įrašo kadro pradžia. AP_Start nurodo HLS blokui pradėti apdorojimą. Taigi mes naudojame tuserį, kad suaktyvintų HLS bloką ir apdorotų kiekvieną kadrą taip, kaip jis Prijungus vieną magistralės signalą ir jį tokiu būdu padalijant, taip pat būtina prijungti jį prie įprasto likusio magistralės nutraukimo taško. „Vivado“mano, kad jei rankiniu būdu jungiate signalą, norite atjungti tai, prie ko jis paprastai prisijungtų.

IP blokų konfigūracijos nustatymai:

Vaizdo kadrų buferio rašymas:

Vaizdo įrašų formatai: RGB8

1 pavyzdys per valandą Maksimalus stulpelių skaičius: 1280 (> = 640) Maksimalus eilučių skaičius: 960 (> = 480) Maksimalus duomenų plotis: 8

31 veiksmas: jungtys prie OV7670

Jungtis prie OV7670
Jungtis prie OV7670

Bloke ov7670_axi_stream_capture

  • Padarykite visus įvestis išorinius (dešiniuoju pelės mygtuku spustelėkite kaištį ir pasirinkite iš meniu arba kairįjį pelės klavišą-> ctrl+T)
  • Palikite vardus tokius, kokie jie yra

„Ov7670_controller“bloke

  • Padarykite visus bloko išėjimus išorinius
  • Pervardykite config_finished prievadą į led0
  • prijunkite clk prie „CameraClock“(<= 50 MHz) (FCLK_2)

Ant atjungimo bloko

  • prijunkite „button1“įvestį prie išorinio įvesties prievado, vadinamo btn0
  • prijunkite out1 prie pakartotinio siuntimo linijos ov7670_controller IP bloke
  • prijunkite „button2“įvestį prie išorinio įvesties prievado, vadinamo „btn3“
  • prijunkite „out2n“prie „ext_reset_in“įvesties, esančios vaizdo įrašymo laikrodžio domeno procesoriaus sistemos atstatymo IP. (*Tai gali reikėti padaryti sugeneravus IP*)
  • prijunkite clk prie „CameraClock“(<= 50 MHz) (FCLK_2)

32 veiksmas: jungtys vaizdo išvesties pusėje

Jungtys vaizdo išvesties pusėje
Jungtys vaizdo išvesties pusėje
Jungtys vaizdo išvesties pusėje
Jungtys vaizdo išvesties pusėje
Jungtys vaizdo išvesties pusėje
Jungtys vaizdo išvesties pusėje
Jungtys vaizdo išvesties pusėje
Jungtys vaizdo išvesties pusėje

Sujungimai blokuojant vaizdo įrašo laiko valdiklį (VTC), „AXI4-Stream to Video Out“ir pjūvius

  • Naudokite 25MHz laikrodį (FCLK_1) vid_io_out_clk ir VTC clk
  • Naudokite 100MHz laikrodį (FCLK_0), kad susietumėte „AXI4-Stream“į vaizdo išvestį
  • vtiming_out į vtiming_in
  • Vaizdo kadrų buferis Skaityti m_axis_video eina į „AXI4-Stream to Video Out video_in“
  • vtg_ce eina į gen_clken
  • Susiekite VTC užblokuotą, susietą, vid_io_out_ce su nuolatine dout [0: 0]
  • Atveskite vid_hsync ir vid_vsync atitinkamai prie išorinių išvesties prievadų vga_hs ir vga_vs. (ne nuotraukoje)

Skiltelės:

  • Skiltelės turi būti nustatytos taip, kaip parodyta paveikslėlyje

    • pervadinkite blokus į „slice_red“, „slice_green“ir „slice_blue“
    • sąrankos pjūvių diapazonai, kaip parodyta paveikslėliuose pagal bloko pavadinimą
    • prijunkite kiekvieną pjūvio išvestį prie išorinio prievado išvesties, kaip parodyta paveikslėlyje.
  • vid_data [23: 0] jungiasi prie kiekvienos pjūvio įvesties (Din [23: 0])

33 veiksmas: paleiskite blokavimo ir ryšio automatizavimą

Paleiskite blokavimo ir ryšio automatizavimą
Paleiskite blokavimo ir ryšio automatizavimą
Paleiskite blokavimo ir ryšio automatizavimą
Paleiskite blokavimo ir ryšio automatizavimą
Paleiskite blokavimo ir ryšio automatizavimą
Paleiskite blokavimo ir ryšio automatizavimą

Paleiskite „Block Automation“, kad sujungtumėte dalykus iš ZYNQ7 PS bloko. Kaip parodyta paveikslėlyje.

Paleiskite ryšio automatizavimą, kad sukurtumėte visus sujungimo IP. Atkreipkite dėmesį į visas kiekvienos nuotraukos parinktis.

Atjungimo bloke prijunkite „out2n“prie vaizdo įrašymo laikrodžio domeno procesoriaus sistemos nustatymo iš naujo ext_reset_in.

34 žingsnis: sukurkite HDL įvyniojimą

Sukurkite HDL įvyniojimą
Sukurkite HDL įvyniojimą

Sukurkite „HDL Wrapper“savo bloko dizainui.

Nustatykite jį kaip viršutinį modulį.

35 veiksmas: sukurkite „Bitstream“, eksportuokite aparatūrą į SDK, paleiskite SDK iš „Vivado“

Į eksportą būtinai įtraukite bitų srautą.

Bitų srauto generavimas gali užtrukti labai ilgai.

Tada paleiskite SDK

36 veiksmas: SDK (be „FreeRTOS“)

SDK (nėra „FreeRTOS“)
SDK (nėra „FreeRTOS“)

Ši versija daro viską nenaudodama „FreeRTOS“, puikiai sutankindama kodą.

Sukurkite atskirą BSP pagal aparatūros dizainą. Numatytosios parinktys turėtų būti tinkamos. Įsitikinkite, kad buvo sukurti BSP šaltiniai.

Sukurkite programą, kaip parodyta paveikslėlyje. (tuščia programa)

Ištrinkite automatiškai sukurtą pagrindinį failą ir importuokite pridėtus failus.

37 žingsnis: „FreeRTOS“diegimas

„FreeRTOS“diegimas
„FreeRTOS“diegimas

Šioje versijoje naudojamas „FreeRTOS“. Sukurkite „FreeRTOS901 BSP“pagal aparatūros dizainą. Numatytosios parinktys turėtų būti tinkamos. Įsitikinkite, kad buvo sukurti BSP šaltiniai.

Sukurkite programą, kaip parodyta paveikslėlyje. (tuščia programa)

Ištrinkite automatiškai sukurtą pagrindinį failą ir importuokite pridėtus failus.

38 veiksmas: naudojimo instrukcijos

Šis projektas yra šiek tiek sudėtingas. Atlikite nurodytus veiksmus.

Įsitikinkite, kad įjungus ZYBO nieko nesikrauna. Tai reiškia, kad „Done“šviesos diodas neturėtų užsidegti. Vienas iš būdų tai padaryti yra nustatyti įkrovos šaltinio jungiklį į JTAG.

Atidarykite projektą („FreeRTOS“ar ne), kurį norite užprogramuoti iš SDK

  1. Įjunkite ZYBO. Šviesos diodas „Done“neturėtų užsidegti.
  2. Užprogramuokite FPGA naudodami bitų failą. Šviesos diodas „Done“turėtų užsidegti. „Led0“neturėtų užsidegti.
  3. Paleiskite kodą (nepamirškite praeiti pradžios pradžios taško, jei tai darote).

Šiuo metu turėtumėte gauti išvestį savo VGA ekrane.

Jei norite iš naujo paleisti (jei ji klaidinga ar pan.): Greitai palieskite PS-SRST mygtuką arba išjunkite ir vėl įjunkite ZYBO. Tęskite nuo 2 veiksmo.

Sustabdžius procesorių su derintuvu, fotoaparatas nejudės, o laikys poziciją. Vaizdo srautas vis tiek bus tęsiamas.

39 žingsnis: nuorodos ir nuorodos

„Xilinx“informaciniai vadovai ir dokumentai:

  • PG044 - „AXI -Stream“vaizdo išvestis
  • PG278 - Vaizdo kadrų buferis skaitymui/rašymui

Kitos nuorodos:

  • Lauri tinklaraštis - VDMA įvestis
  • Lauri tinklaraštis - OV7670 į VGA išvestį naudojant BRAM
  • „Hamsterworks“wiki, Mike Fields, pirminis OV7670 kodo šaltinis
  • Duomenų lapas, kuriame pateikiamos pagrindinės laiko specifikacijos

Rekomenduojamas: