Բովանդակություն:
- Քայլ 1. Կառուցեք PWM մոդուլ- Աղբյուր ֆայլ
- Քայլ 2. Կառուցեք PWM մոդուլ- Vivado Setup
- Քայլ 3. Կառուցեք PWM մոդուլ- Ստեղծեք ծրագրի ֆայլ
- Քայլ 4. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (I)
- Քայլ 5. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (II)
- Քայլ 6. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (III)
- Քայլ 7. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (IV)
- Քայլ 8. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (V)
- Քայլ 9. Կառուցեք PWM մոդուլ- Սարքավորումների տեղադրում
- Քայլ 10. Կառուցեք PWM մոդուլ. Ստեղծեք Bitstream և գործարկեք SDK
- Քայլ 11. Կառուցեք PWM մոդուլ. Ստեղծեք նոր ծրագիր Xilinx SDK- ում
- Քայլ 12. Կառուցեք PWM մոդուլ- Exploreրագրի Explorer- ի ակնարկ (I)
- Քայլ 13. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (II)
- Քայլ 14. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (III)
- Քայլ 15. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (I)
- Քայլ 16. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (II)
- Քայլ 17. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (III)
- Քայլ 18. Կառուցեք PWM մոդուլ. Գործարկեք այն:
- Քայլ 19. Հեռարձակեք տեսանյութերի մշակում Digilent ZYBO- ով OV7670- ով
- Քայլ 20. Ամբողջական արգելափակման դիագրամ
- Քայլ 21. Միացրեք OV7670- ը ZYBO- ին
- Քայլ 22. Ստեղծեք բլոկի ձևավորում
- Քայլ 23. Ավելացրեք VHDL ֆայլեր OV7670 տեսախցիկի կառավարման և նկարահանման համար
- Քայլ 24. Ավելացրեք սահմանափակումների ֆայլ
- Քայլ 25. Ավելացրեք IP ռեպո HLS IP- ի համար
- Քայլ 26. Ավելացնել մոդուլներ և IP
- Քայլ 27: IP- ի կազմաձևման կարգավորումներ
- Քայլ 28. Ավելացրեք և կազմաձևեք PS IP բլոկը
- Քայլ 29. Մաս 1. Servo Motors- ի համար PWM մոդուլի կառուցում
- Քայլ 30. Տեսանյութի ներածման կողային միացումներ (ընդգծված է ՝ նշելով)
- Քայլ 31. Միացումներ OV7670- ին
- Քայլ 32. Միացումներ Video Out Side- ում
- Քայլ 33: Գործարկեք Block and Connection Automation
- Քայլ 34. Ստեղծեք HDL փաթաթիչ
- Քայլ 35. Ստեղծեք Bitstream, Արտահանեք սարքաշար SDK- ին, գործարկեք SDK Vivado- ից
- Քայլ 36. SDK (առանց FreeRTOS)
- Քայլ 37. FreeRTOS- ի ներդրում
- Քայլ 38. Օգտագործման հրահանգներ
- Քայլ 39. հղումներ և հղումներ
Video: ZYBO OV7670 տեսախցիկ ՝ թավայի/թեքության վերահսկմամբ ՝ 39 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Սկսեք առաջին քայլից ՝ 2 առանցքի servo PWM վերահսկիչ ստեղծելու մանրամասների համար:
Սկսեք զանգվածային բլոկ -դիագրամից (Քայլ 19) ամբողջական նախագծի համար:
Տեսախցիկ + թավայի/թեքության կարգավորում, որն օգտագործել ենք ՝
Սպասարկիչները միացնելու համար օգտագործվել է Digilent- ի PmodCON3- ը:
Քայլ 1. Կառուցեք PWM մոդուլ- Աղբյուր ֆայլ
Քայլ 2. Կառուցեք PWM մոդուլ- Vivado Setup
Նախ, ներբեռնեք Vivado Design Suite- ը Xilinx կայքից: Տեղադրեք դիզայնի ամբողջ փաթեթը, ներառյալ Vivado Software Development Kit- ը (SDK): Այս նախագիծը օգտագործում է 2017.2 տարբերակը:
Այդ ընթացքում Digilent Adept 2 -ը նույնպես պետք է տեղադրվի որպես Zybo տախտակի վարորդ:
Քայլ 3. Կառուցեք PWM մոդուլ- Ստեղծեք ծրագրի ֆայլ
Նախքան նախագծի ֆայլ ստեղծելը, դուք պետք է համոզվեք, որ արդեն ճիշտ եք տեղադրել Zybo ֆայլը ՝ որպես ձեռնարկ այստեղ:
Vivado տարբերակ 2015.1 և ավելի ուշ տախտակի ֆայլերի տեղադրում
Բաց Vivado 2017.2. Արագ մեկնարկի ժամանակ կտտացրեք Ստեղծել նախագիծ -> Հաջորդ -> Nameրագրի անուն (նշեք ձեր ծրագրի անունը այստեղ) -> Typeրագրի տեսակը: Projectրագրի տիպի վրա ընտրեք RTL Project և նշեք «Այս պահին աղբյուրներ մի նշեք»: Հաջորդը, կանխադրված մասի համար որպես ցուցադրման անուն ընտրեք «Տախտակներ» և «Zybo»: Հաջորդը, կտտացրեք Ավարտել ՝ նախագիծը սկսելու համար:
Քայլ 4. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (I)
Flow Navigator- ում կտտացրեք «Ստեղծեք բլոկի ձևավորում», այնուհետև կտտացրեք OK: կտտացրեք «+» նշանին ՝ անհրաժեշտ IP հասցեներ ավելացնելու համար: Ավելացնել:
- Մեկ ZYNQ7 մշակման համակարգ Երկու AXI ժմչփ
- Երկու AXI ժմչփ
Քայլ 5. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (II)
IP- ների ավելացումից հետո գործարկեք Block Automation և միացման ավտոմատացում: Ավտոմատացման ավարտից հետո «axi_timer_0» բլոկում աջ սեղմեք pwm0 -> Make External: Անվանեք pwm0 արտաքին քորոցը որպես pwm_Xaxis: Բացի այդ, կրկնել վերը նշված գործընթացը «axi_timer_1» բլոկի վրա և անվանել pwm0 արտաքին քորոցը որպես pwm_Zaxis:
Քայլ 6. Կառուցել PWM մոդուլ. Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (III)
Ուշադրություն դարձրեք, որ ամեն անգամ, երբ ավարտում ենք Block Design- ը Vivado- ում, մենք պետք է ստեղծենք HDL Wrapper: Քանի որ դա կլինի ամենաբարձր մակարդակի մոդուլ յուրաքանչյուր ծրագրի համար:
Քայլ 7. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (IV)
Այժմ, մենք պետք է ստեղծենք մեր սահմանափակման ֆայլը `մեր բլոկ -դիագրամին միացված կապում նշանակելու համար: Փակեք Արգելափակման ձևավորման պատուհանը, Աղբյուրների վրա, «Ավելացնել աղբյուրներ»-> Ավելացնել կամ ստեղծել սահմանափակումներ-> ավելացնել Zybo-Master.xdc- ը որպես մեր սահմանափակման ֆայլեր:
Քայլ 8. Կառուցեք PWM մոդուլ- Արգելափակման ձևավորում և սահմանափակումների ֆայլի կարգավորում (V)
Բացեք սահմանափակումների ֆայլը Zybo-Master.xdc սահմանափակումների թղթապանակից, մեկնաբանեք այն նավահանգիստները, որոնք մենք ցանկանում ենք նշել որպես ելքային ազդանշաններ և վերանվանեք «get_ports {XXXX}», որը XXXX- ը նշում է Block Diagram- ում նշված արտաքին քորոցը: Սահմանափակման ֆայլի կարգավորումը ցույց է տրված նկարում:
Քայլ 9. Կառուցեք PWM մոդուլ- Սարքավորումների տեղադրում
Սերվո շարժիչները միացրեք Pmod CON3- ին: TowerPro SG90- ը servo շարժիչի մոդելն է, որը մենք օգտագործել ենք այս նախագծում: Servo շարժիչի լարերի համար նարնջագույն մետաղալարը ներկայացնում է PWM ազդանշանը, որը միացված է Pmod CON3- ի SIG կապին: Vcc կարմիր մետաղալարն էլեկտրալար է, որը միացված է Pmod CON3- ի VS կապին: Վերջապես, շագանակագույն մետաղալարերը Gnd- ը GND կապին միացված հիմնավորված մետաղալար է: Հաջորդը, տեղադրեք Pmod CON3- ը Jybo տախտակի JD նավահանգստի վերին շարքում:
Քայլ 10. Կառուցեք PWM մոդուլ. Ստեղծեք Bitstream և գործարկեք SDK
1. Project Navigator ներդիրում գործարկեք Generate BitStream- ը:
2. Արտահանեք սարքավորումներ. Ֆայլ> Արտահանել> Արտահանել սարքավորում-> «ներառել բիթսթրիմը»-> OK 3. Գործարկել SDK- ն ՝ Ֆայլը-> Գործարկել SDK- ն:
Քայլ 11. Կառուցեք PWM մոդուլ. Ստեղծեք նոր ծրագիր Xilinx SDK- ում
Ստեղծեք նոր ծրագիր.
Ֆայլ> Նոր> Կիրառման նախագիծ -> Մուտքագրեք ձեր նախագծի անունը -> Ավարտել
Project Explorer- ի ներքո պետք է լինի երեք թղթապանակ:
Այս դեպքում «design_1_wrapper_hw_platform_0» - ը Vivado- ի կողմից նախկինում արտահանված թղթապանակն է: Axis_2_PWM_SDK_bsp- ը տախտակի աջակցության փաթեթի թղթապանակն է: Իսկ Axis_2_PWM_SDK- ը մեր հիմնական նախագծի թղթապանակն է SDK- ում: Դուք կարող եք տեսնել «helloworld.c» ֆայլը Axis_2_PWM_SDK- ի «src» թղթապանակի տակ, որտեղ «helloworld.c» - ն հիմնական ֆայլն է:
Քայլ 12. Կառուցեք PWM մոդուլ- Exploreրագրի Explorer- ի ակնարկ (I)
Եկեք ստուգենք որոշ ֆայլեր Project Explorer- ի ներքո: Նախ, «design_1_wrapper_hw_platform_0» թղթապանակում բացեք «system.hdf»: Այս ֆայլը ցույց է տալիս ps7_cortex9 պրոցեսորի հասցեի քարտեզը և մեր նախագծում առկա IP բլոկները:
Քայլ 13. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (II)
Այնուհետև ստուգեք «ներառել» և «libsrc» ֆայլերը «Axis_2_PWM_SDK_bsp» պանակի տակ: Գրադարանի ֆայլերը մեզ հնարավորություն են տալիս փոխազդել ապարատային ծայրամասային սարքերի հետ `առանց« նվագելու »գրանցամատյանների:
Քայլ 14. Կառուցել PWM մոդուլ. Exploreրագրի Explorer- ի ակնարկ (III)
BSP փաստաթղթերի միջոցով xtmrctr.h- ն հայտնաբերվում է որպես Xilinx ժամաչափի կառավարման գրադարան ՝ կապված AXI ժմչփի հետ: Սովորաբար, այստեղ մենք կարող ենք գտնել ցանկալի PWM գործառույթը: Այնուամենայնիվ, եթե կարդաք «tmrctr_v4_3» փաստաթղթերը, դա ցույց է տալիս, որ վարորդը ներկայումս չի աջակցում սարքի PWM գործունեությունը: PWM գործառույթի անբավարարության պատճառով մենք պետք է ամփոփենք մեր PWM գործառույթը xtmrctr.h և AXI Timer v2.0 LogiCORE IP արտադրանքի ուղեցույցի օգնությամբ:
Քայլ 15. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (I)
Վերադառնալ «helloworld.c» հիմնական ֆայլին, ներառեք վերնագրի հետևյալ ֆայլերը.
Քայլ 16. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (II)
Սահմանեք երկու AXI TImer- ի հիմնական հասցեները «xparameters.h» - ի միջոցով:
Քայլ 17. Կառուցեք PWM մոդուլ- Փաթեթավորեք PWM գործառույթը (III)
Կառուցեք ցանկալի PWM գործառույթը:
Duty_val. Փոխակերպում է աստիճանի արժեքը հերթապահության: Shouldամացույցի ժամանակահատվածը նույնպես պետք է նշանակվի:
PWM_START. Նշանակեք PWM գրանցամատյանի հասցեն և սկսեք արտադրել PWM:
PWM_STOP. Նշանակեք PWM գրանցման հասցեն և դադարեցրեք PWM- ի արտադրությունը:
Մնացած ցուցադրական կոդը ցուցադրվում է «helloworld.c» - ում «Axis_2_PWM_SDK» - ի ներքո
Քայլ 18. Կառուցեք PWM մոդուլ. Գործարկեք այն:
1. PGրագրեք FPGA- ն SDK- ի միջոցով
- Միացրեք Zybo Board- ը USB պորտի միջոցով համակարգչին:
- Xilinx գործիքներ -> Fրագիր FPGA
2. Գործարկել ծրագիրը
Կտտացրեք «Գործարկել» պատկերակին և բաց թողեք ընտրացանկը -> Գործարկել որպես -> Գործարկել սարքաշարի վրա
3. SDK տերմինալ
- Բացեք SDK տերմինալը -> Միացեք սերիական նավահանգստին -> OK
- Գործարկեք ծրագիրը: Եթե ցուցադրական ծածկագիրը հաջողությամբ գործարկվի, դուք պետք է տեսնեք «Նախնականացումը կատարված է»: SDK տերմինալում:
Քայլ 19. Հեռարձակեք տեսանյութերի մշակում Digilent ZYBO- ով OV7670- ով
Արխիվի ամբողջական ֆայլը կցված է:
Քայլ 20. Ամբողջական արգելափակման դիագրամ
Սա ցույց է տալիս նախագծի բոլոր կապերի և IP բլոկների ամբողջական դիագրամը
Քայլ 21. Միացրեք OV7670- ը ZYBO- ին
Ստեղծեք կապ ov7670 մոդուլը ZYBO Pmods- ին միացնելու համար
Տվյալների Pmod- ը Pmod D է
Control Pmod- ը Pmod C է
Բացի այդ, միացրեք PmodCON3- ը և սերվերը, ինչպես նշված է այս ձեռնարկի առաջին կեսում
Քայլ 22. Ստեղծեք բլոկի ձևավորում
Flow Navigator- ում կտտացրեք «Ստեղծեք բլոկի ձևավորում», այնուհետև կտտացրեք OK:
Քայլ 23. Ավելացրեք VHDL ֆայլեր OV7670 տեսախցիկի կառավարման և նկարահանման համար
Այս քայլին կցված VHDL ֆայլերը ավելացրեք նախագծին
Քայլ 24. Ավելացրեք սահմանափակումների ֆայլ
Ավելացրեք կցված սահմանափակումների ֆայլը ձեր նախագծին:
Քայլ 25. Ավելացրեք IP ռեպո HLS IP- ի համար
Վերցրեք կցված Zip ֆայլը և բացեք այն նոր թղթապանակի մեջ, որը կոչվում է նմանապես նոր գրացուցակում (թղթապանակում), որը կոչվում է «HLS_repo»:
Ձեր նախագծին ավելացրեք IP պահոց `գնալով IP կատալոգ և աջ սեղմելով ընտրեք« Ավելացնել պահեստ… »
Գնացեք դեպի ձեր «HLS_repo» գրացուցակը և ընտրեք այն:
Լրացուցիչ. Ստեղծեք HLS վիդեո մշակման բլոկ ձեզ համար:
Քայլ 26. Ավելացնել մոդուլներ և IP
Ավելացրեք ov7670_axi_stream_capture, debounce և ov7670_controller մոդուլները բլոկ -դիագրամին ՝ աջ սեղմելով ֆոնի վրա և ընտրելով «Ավելացնել մոդուլ…»
Նմանապես, ավելացրեք IP- ները.
- HLS_Video_Track
- Տեսանյութի շրջանակի բուֆեր գրել
- Կադրի վիդեո շրջանակի բուֆեր
- Տեսանյութի ժամանակի վերահսկիչ
- AXI4-Stream to Video Out
- 3 -րդ «շերտ»
- Մշտական
- 2 AXI ժմչփ
Քայլ 27: IP- ի կազմաձևման կարգավորումներ
Ինչպես ցույց է տրված նկարներում
Քայլ 28. Ավելացրեք և կազմաձևեք PS IP բլոկը
Ավելացրեք ZYNQ7 մշակման համակարգը բլոկ -դիագրամին
խմբագրել կազմաձևը.
-
PS-PL կազմաձևում
-
HP
- Միացնել S HP 0 -ը
- Միացնել S HP 1 -ը
-
-
Ockամացույցի կազմաձևում
-
PL Գործվածքների ժամացույցներ
- FCLK_0 100 ՄՀց հաճախականությամբ
- FCLK_1 25 ՄՀց հաճախականությամբ (OutputClock)
- FLCK_2 35 ՄՀց (<= 50 ՄՀց) (CameraClock)
-
Քայլ 29. Մաս 1. Servo Motors- ի համար PWM մոդուլի կառուցում
Axi_timer_0 pwm0 դուրս բերեք pwm_Xaxis նոր ելքային պորտին
Բերեք axi_timer_1 pwm0 նոր ելքային պորտ pwm_Zaxis
Քայլ 30. Տեսանյութի ներածման կողային միացումներ (ընդգծված է ՝ նշելով)
Connectիշտ միացրեք տեսագրման մուտքի կողմի IP բլոկները
(* այս կապերը պետք է ստեղծվեն ՝ միացման ավտոմատացման ընթացքում ճիշտ ընտրանքներ ընտրելով) «aclk» axi_stream_capture- ից գնում է.
- ap_clk վիդեո շրջանակի բուֆերի վրա գրել
- ap_clk HLS վիդեո հոսքի մշակման բլոկի վրա
- *AClk AXI խելացի միացման IP- ի վրա ՝ Video Frame Buffer- ից Գրել S_AXI_HP0- ին
- *ACLK, որը համապատասխանում է AXI Interconnect IP- ի ալիքներին HLS վիդեո մշակման բլոկի S_AXI ալիքների համար և վիդեո շրջանակի բուֆերի վրա PS բլոկում գրել S_AXI_HP0_ACLK
Տեսահոսքի ազդանշանը պարզապես միացված է սերիայի մեջ ՝ գրավման բլոկից մինչև Zynq հիշողության ինտերֆեյս:
- Տեսանյութը գրավման բլոկից անցնում է HLS մշակման բլոկի:
- HLS բլոկից մշակված տեսանյութը գնում է շրջանակի բուֆերային գրելու բլոկ:
- *Շրջանակի բուֆերային գրելու բլոկը միանում է Zynq PS բլոկի HP0 ինտերֆեյսի հետ:
- Գրավման բլոկի ելքից m_axis_tuser ազդանշանը ձեռքով միացված է ինչպես HLS մշակման բլոկի տեսանյութի_ին_ՏՈERՍԵՐԻ մուտքի ազդանշանին, այնպես էլ նույն բլոկի ap_start ազդանշանին:
TUSER (tuser) ազդանշանը օգտագործվում է AXI վիդեո հոսքի արձանագրության միջոցով ՝ տեսահոլովակի շրջանակի սկիզբը նշելու համար: AP_Start- ը HLS բլոկին ասում է, որ սկսի մշակումը: Այսպիսով, մենք օգտագործում ենք tuser- ը ՝ HLS բլոկը գործարկելու համար, որպեսզի յուրաքանչյուր շրջանակ մշակի այնպես, ինչպես դա է: ներս է մտնում: Ավտոբուսի մեկ ազդանշանը միացնելիս և այն անջատելիս անհրաժեշտ է նաև այն միացնել ավտոբուսի մնացած հատվածի սովորական ավարտի կետին: Vivado- ն ենթադրում է, որ եթե դուք միացնում եք ազդանշանը ձեռքով, ապա ցանկանում եք անջատել այն, ինչին այն սովորաբար միանում էր:
IP բլոկների կազմաձևման կարգավորումներ.
Տեսանյութի շրջանակի բուֆեր գրեք
Տեսանյութի ձևաչափեր ՝ RGB8
Sampleամացույցի 1 նմուշ Առավելագույն սյուներ ՝ 1280 (> = 640) Առավելագույն տողեր ՝ 960 (> = 480) Տվյալների առավելագույն լայնություն ՝ 8
Քայլ 31. Միացումներ OV7670- ին
Ov7670_axi_stream_capture բլոկի վրա
- Բոլոր մուտքերը դարձրեք արտաքին (աջ սեղմեք քորոցի վրա և ընտրեք ընտրացանկից, կամ ձախ կտտացրեք-> ctrl+T)
- Անունները թողեք այնպես, ինչպես կան
Ov7670_controller բլոկի վրա
- Արգելափակման բոլոր ելքերը դարձրեք արտաքին
- Վերանվանել config_finished նավահանգիստը led0
- միացրեք clk- ը CameraClock- ին (<= 50 ՄՀց) (FCLK_2)
Դեբունսի բլոկի վրա
- button1 մուտքը միացրեք արտաքին մուտքի պորտին, որը կոչվում է btn0
- միացրեք out1- ը ov7670_controller IP բլոկի վերագրանցման տողին
- button2 մուտքը միացրեք արտաքին մուտքի պորտին, որը կոչվում է btn3
- միացրեք out2n- ը ext_reset_in մուտքագրմանը Processor System Reset IP- ում `տեսագրման ժամացույցի տիրույթի համար: (*Դա կարող է անհրաժեշտ լինել անել այդ IP- ի ստեղծումից հետո*)
- միացրեք clk- ը CameraClock- ին (<= 50 ՄՀց) (FCLK_2)
Քայլ 32. Միացումներ Video Out Side- ում
Արգելափակումների համար Video Timing Controller (VTC), AXI4-Stream to Video Out և շերտերի միացումներ
- Օգտագործեք 25 ՄՀց ժամացույց (FCLK_1) vid_io_out_clk- ի և VTC clk- ի համար
- Օգտագործեք 100 ՄՀց ժամացույց (FCLK_0) AXI4-Stream- ի տեսանյութերի ելքի համար aclk- ի համար
- vtiming_out- ից vtiming_in
- Վիդեո շրջանակի բուֆեր
- vtg_ce գնում է gen_clken
- ՎՏԿ -ն clken, aclken, vid_io_out_ce կապել Constant dout- ին [0: 0]
- Vid_hsync և vid_vsync համապատասխանաբար դուրս բերեք vga_hs և vga_vs արտաքին ելքային պորտեր: (պատկերված չէ)
Շերտեր:
-
Կտրուկները պետք է տեղադրվեն այնպես, ինչպես ցույց է տրված կից նկարներում
- բլոկները վերանվանել slice_red, slice_green և slice_ble
- կարգաբերման հատվածը տատանվում է, ինչպես ցույց է տրված նկարներում ՝ ըստ բլոկի անվան
- միացրեք յուրաքանչյուր հատվածի ելքը արտաքին պորտի ելքին, ինչպես ցույց է տրված նկարում:
- vid_data [23: 0] միանում է յուրաքանչյուր հատվածի մուտքերին (Din [23: 0])
Քայլ 33: Գործարկեք Block and Connection Automation
Գործարկեք Block Automation- ը ՝ ZYNQ7 PS բլոկից իրերը միացնելու համար: Ինչպես ցույց է տրված նկարում:
Գործարկեք միացման ավտոմատացումը ՝ բոլոր փոխկապակցման IP- ն ստեղծելու համար: Ուշադիր ուշադրություն դարձրեք յուրաքանչյուր նկարի բոլոր տարբերակներին:
Դեբունսային բլոկում միացրեք out2n- ը տեսագրման ժամացույցի տիրույթին Processor System Reset ext_reset_in մուտքագրում:
Քայլ 34. Ստեղծեք HDL փաթաթիչ
Ստեղծեք HDL Wrapper ձեր բլոկի ձևավորման համար:
Սահմանեք այն որպես վերին մոդուլ:
Քայլ 35. Ստեղծեք Bitstream, Արտահանեք սարքաշար SDK- ին, գործարկեք SDK Vivado- ից
Համոզվեք, որ bitstream- ը ներառեք արտահանման մեջ:
Bitstream- ի ստեղծումը կարող է շատ երկար տևել:
Այնուհետեւ գործարկեք SDK- ն
Քայլ 36. SDK (առանց FreeRTOS)
Այս տարբերակը ամեն ինչ անում է առանց FreeRTOS- ի օգտագործման ՝ գեղեցիկ խտացնելով ծածկագիրը:
Ստեղծեք ինքնուրույն BSP ՝ հիմնված ապարատային դիզայնի վրա: Լռելյայն ընտրանքները պետք է լավ լինեն: Համոզվեք, որ ստեղծվել են BSP աղբյուրներ:
Ստեղծեք հավելված, ինչպես ցույց է տրված Նկարում: (դատարկ դիմում)
Deնջել ավտոգեներացված հիմնականը և ներմուծել կցված ֆայլերը:
Քայլ 37. FreeRTOS- ի ներդրում
Այս տարբերակն օգտագործում է FreeRTOS- ը: Ստեղծեք FreeRTOS901 BSP ՝ հիմնված ապարատային դիզայնի վրա: Լռելյայն ընտրանքները պետք է լավ լինեն: Համոզվեք, որ ստեղծվել են BSP աղբյուրներ:
Ստեղծեք հավելված, ինչպես ցույց է տրված Նկարում: (դատարկ դիմում)
Deնջել ավտոգեներացված հիմնականը և ներմուծել կցված ֆայլերը:
Քայլ 38. Օգտագործման հրահանգներ
Այս նախագիծը մի փոքր բարդ է գործարկելու համար: Հետևեք քայլերին ըստ հերթականության:
Համոզվեք, որ ձեր ZYBO- ն ոչինչ չի ինքնաբեռնում, երբ այն միանում է: Սա նշանակում է, որ Կատարված LED- ը չպետք է լուսավորվի: Դա անելու եղանակներից մեկն այն է, որ բեռնման աղբյուրի jumper- ը սահմանվի JTAG:
Բացեք նախագիծը (FreeRTOS, թե ոչ), որը ցանկանում եք ծրագրավորել SDK- ից
- Միացրեք ձեր ZYBO- ն: Կատարված LED- ը չպետք է լուսավորվի:
- Programրագրեք FPGA- ն բիթ ֆայլով: Կատարված LED- ը պետք է լուսավորվի: Led0- ը չպետք է լուսավորվի:
- Գործարկեք ծածկագիրը (հիշեք, որ դա անում եք, անցեք սկզբնական ճեղքման կետից):
Այս պահին դուք պետք է ելք ստանաք ձեր VGA էկրանին:
Վերագործարկելու համար (եթե այն սխալ է կամ որևէ այլ բան). Արագ հպեք PS-SRST կոճակին կամ անջատեք ZYBO- ն, ապա նորից միացրեք: Շարունակեք 2 -րդ քայլից:
Պրոցեսորը վրիպազերծիչի հետ կանգնեցնելու դեպքում տեսախցիկը կշարունակի պահել դիրքը ՝ տեղաշարժվելու փոխարեն: Տեսահոլովակն ամեն դեպքում կշարունակվի:
Քայլ 39. հղումներ և հղումներ
Xilinx- ի տեղեկատու ուղեցույցներ և փաստաթղթեր.
- PG044 - AXI -Stream to Video Out
- PG278 - Տեսանյութի շրջանակի բուֆեր Կարդալ/գրել
Այլ հղումներ.
- Լաուրիի բլոգը `VDMA մուտքագրում
- Լաուրիի բլոգ - OV7670 դեպի VGA ելք ՝ օգտագործելով BRAM
- Hamsterworks վիքի, Մայք Ֆիլդսի կողմից, OV7670 ծածկագրի սկզբնական աղբյուրը
- Տվյալների թերթիկ, որը ցույց է տալիս ժամանակի հիմնական բնութագրերը
Խորհուրդ ենք տալիս:
Հեշտ թեքության վրա հիմնված գույնի փոփոխման անլար Ռուբիկի խորանարդի լամպ. 10 քայլ (նկարներով)
Հեշտ թեքության վրա հիմնված գույնը փոխող անլար Ռուբիկի խորանարդի լամպ. Այսօր մենք պատրաստվում ենք կառուցել այս հիանալի Ռուբիկի խորանարդիկով լամպը, որը փոխում է գույնը `կախված այն կողմի վերևից: Խորանարդն աշխատում է LiPo- ի փոքր մարտկոցով, որը լիցքավորված է միկրո-USB ստանդարտ մալուխով և, իմ փորձարկմամբ, ունի մի քանի օր մարտկոցի կյանք: Այս
Հիմնական պարամետրերի ավտոմատ վերահսկմամբ ակվարիումի ձևավորում. 4 քայլ (նկարներով)
Ակվարիումի դիզայն հիմնական պարամետրերի ավտոմատացված վերահսկմամբ. Ներածություն Այսօր ծովային ակվարիումի խնամքը հասանելի է յուրաքանչյուր ակվարիումի համար: Ակվարիում ձեռք բերելու խնդիրը դժվար չէ: Բայց բնակիչների լիարժեք կենսապահովման, տեխնիկական խափանումներից պաշտպանվելու, հեշտ և արագ սպասարկում և խնամք
Տեսախցիկի տեսախցիկ ՝ 5 դոլար արժողությամբ փաստաթղթերի տեսախցիկ ՝ 4 քայլ (նկարներով)
5 դոլար արժողությամբ դյուրակիր համակարգչային փաստաթղթերի տեսախցիկ տեսաֆիլմերի կոնֆերանսի համար. Հրապարակվել է 202008 թ. Johnոն Է. www.instructables.com/id/A-Sub-10-MetaPrax-Documen
Ինչպես պատրաստել շարժակների թեքության թև ՝ 6 քայլ (նկարներով)
Ինչպես պատրաստել Gears Curving Arm Slider: FULL VIDEO Այս սահիկը կարող է սահել կորի և նորարարական եղանակով
Հինգ ցենտ թեքության ցուցիչ ՝ 4 քայլ (նկարներով)
Հինգ ցենտ թեքության ցուցիչ. Սա թեքության հիմնական սենսոր է, որը ներշնչված է գնդակի և վանդակի ոճի սենսորներից, բայց 2d- ի փոխարեն `3d- ի: Գրավված նիկելը կապում է զույգ լարերը `կախված սենսորի կողմնորոշումից: Սրանք արագ են կառուցվում և բավականին էժան են. Ես նրանց հետ եկա մի նախագծի համար