Агуулгын хүснэгт:

Pan/tilt удирдлагатай ZYBO OV7670 камер: 39 алхам (зурагтай)
Pan/tilt удирдлагатай ZYBO OV7670 камер: 39 алхам (зурагтай)

Видео: Pan/tilt удирдлагатай ZYBO OV7670 камер: 39 алхам (зурагтай)

Видео: Pan/tilt удирдлагатай ZYBO OV7670 камер: 39 алхам (зурагтай)
Видео: Low Cost Smart Camera Project - Xilinx XOHW17 - XIL-70961 2024, Долдугаар сарын
Anonim
Image
Image
Pan/tilt удирдлагатай ZYBO OV7670 камер
Pan/tilt удирдлагатай ZYBO OV7670 камер

2 тэнхлэгтэй servo PWM хянагчийг бий болгох талаар дэлгэрэнгүй үзэхийн тулд эхний алхамаас эхэлнэ үү.

Бүтэн төслийг хэрэгжүүлэхийн тулд асар том блок диаграмаас (Алхам 19) эхлүүлээрэй.

Бидний ашиглаж байсан камер + Pan/tilt тохиргоо:

Servo -г холбоход Digilent -ийн PmodCON3 -ийг ашигласан.

Алхам 1: ХБХ-ийн модулийг бүтээх- Эх файл

Алхам 2: ХБХ-ийн модулийг бий болгох- Vivado-ийн тохиргоо

ХБХ-ийн модулийг бүтээх- Vivado тохиргоо
ХБХ-ийн модулийг бүтээх- Vivado тохиргоо

Нэгдүгээрт, Vivado Design Suite -ийг Xilinx вэбсайтаас татаж аваарай. Vivado Software Development Kit (SDK) зэрэг бүх дизайны багцыг суулгаарай. Энэ төсөл нь 2017.2 хувилбарыг ашигладаг.

Үүний зэрэгцээ Digilent Adept 2 -ийг Zybo самбарын драйвер болгон суулгах ёстой.

Алхам 3: ХБХ-ийн модулийг бүтээх- Төслийн файл үүсгэх

ХБХ-ийн модулийг бүтээх- Төслийн файл үүсгэх
ХБХ-ийн модулийг бүтээх- Төслийн файл үүсгэх

Төслийн файл үүсгэхээс өмнө Zybo файлыг энд заавар болгон зөв суулгасан эсэхээ шалгаарай.

Vivado хувилбар 2015.1 ба түүнээс хойшхи самбар дээр файл суулгах

Vivado 2017.2 -ийг нээнэ үү. Түргэн эхлэх дээр Төсөл үүсгэх -> Дараагийн -> Төслийн нэр (Төслийнхөө нэрийг энд оруулна уу) -> Төслийн төрөл дээр дарна уу. Төслийн төрөл дээр RTL төслийг сонгоод "Одоогоор эх сурвалжийг зааж өгөхгүй" гэж тэмдэглээрэй. Дараа нь, Анхдагч хэсгийн хувьд "Самбарууд" ба "Зибо" -г дэлгэцийн нэр болгон сонгоно уу. Дараа нь Finish дээр дарж төслийг эхлүүлнэ үү.

Алхам 4: ХОУХШ-ийн модулийг бүтээх- Блокны дизайн ба хязгаарлах файлын тохиргоо (I)

ХБХ-ийн модулийг бүтээх- Блокны дизайн ба хязгаарлалтын файлын тохиргоо (I)
ХБХ-ийн модулийг бүтээх- Блокны дизайн ба хязгаарлалтын файлын тохиргоо (I)

Flow Navigator дээр "" Блок дизайн үүсгэх "дээр дараад OK дарна уу. "+" тэмдэг дээр дарж шаардлагатай IP хаягийг нэмнэ үү. Нэмэх:

  • Нэг ZYNQ7 боловсруулах систем хоёр AXI таймер
  • Хоёр AXI таймер

Алхам 5: ХОУХШ-ийн модулийг бүтээх- Блокны дизайн ба хязгаарлах файлын тохиргоо (II)

ХБХ-ийн модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (II)
ХБХ-ийн модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (II)

IP -ийг нэмсний дараа Block Automation болон холболтын автоматжуулалтыг ажиллуулна уу. Автоматжуулалт дууссаны дараа "axi_timer_0" блок дээр pwm0 -> Гадаад болгох дээр дарна уу. Pwm0 гадаад зүүг pwm_Xaxis гэж нэрлэнэ үү. Дээрх процедурыг "axi_timer_1" блок дээр давтаж, pwm0 гадаад зүүг pwm_Zaxis гэж нэрлэнэ үү.

Алхам 6: ХОУХШ-ийн модулийг бүтээх- Блокны дизайн ба хязгаарлалтын файлын тохиргоо (III)

ХБХ-ны модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (III)
ХБХ-ны модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (III)

Vivado дахь Block Design -ийг дуусгах болгондоо HDL боолт хийх шаардлагатай болдог. Энэ нь төсөл бүрийн дээд түвшний модуль байх болно.

Алхам 7: ХОУХШ-ийн модулийг бүтээх- Блокны дизайн ба хязгаарлах файлын тохиргоо (IV)

ХБХ-ийн модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (IV)
ХБХ-ийн модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (IV)

Одоо бид блок диаграмтайгаа холбогдсон тээглүүрийг зааж өгөхийн тулд хязгаарлалтын файлаа тохируулах хэрэгтэй. Block Design цонхыг хааж, Эх сурвалж таб дээр "Эх сурвалж нэмэх"-> Хязгаарлалт нэмэх эсвэл үүсгэх-> Zybo-Master.xdc-ийг манай хязгаарлах файл болгон нэмнэ үү.

Алхам 8: ХОУХШ-ийн модулийг бүтээх- Блокны дизайн ба хязгаарлах файлын тохиргоо (V)

ХБХ-ны модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (V)
ХБХ-ны модулийг бүтээх- Блок дизайн ба хязгаарлалтын файлын тохиргоо (V)

Constraints фолдероос Zybo-Master.xdc хязгаарлах файлыг нээж, гаралтын дохио болгон оруулахыг хүссэн портуудынхаа комментийг тайлж, "get_ports {XXXX}" гэж нэрлээрэй. Хязгаарлагдмал файлын тохиргоог зурагт үзүүлэв.

Алхам 9: ХБХ-ийн модулийг бүтээх- Тоног төхөөрөмж суурилуулах

ХБХ-ийн модулийг бүтээх- Тоног төхөөрөмж суурилуулах
ХБХ-ийн модулийг бүтээх- Тоног төхөөрөмж суурилуулах

Servo моторыг Pmod CON3 руу холбоно уу. TowerPro SG90 бол бидний энэ төсөлд ашигласан servo моторын загвар юм. Серво хөдөлгүүрийн утаснуудын хувьд улбар шар утас нь Pmod CON3 дахь SIG зүүтэй холбогдсон ХОУХД -ийн дохиог илэрхийлдэг. Улаан утас Vcc нь Pmod CON3 дээрх VS зүүтэй холбогдсон цахилгаан утас юм. Эцэст нь хүрэн утас Gnd бол GND зүүтэй холбогдсон газардуулгын утас юм. Дараа нь Pmod CON3 -ийг Zybo Board дахь JD портын дээд эгнээнд оруулна уу.

Алхам 10: ХОУХШ-ийн модулийг бүтээх- Bitstream үүсгэж SDK-ийг ажиллуулна уу

1. Project Navigator таб дээр GenStore BitStream -ийг ажиллуулна уу.

2. Тоног төхөөрөмжийг экспортлох: Файл> Экспорт> Тоног төхөөрөмжийг экспортлох-> "bitstream оруулах" дээр тэмдэглээрэй-> OK 3. SDK: File-> SDK-ийг ажиллуулна уу.

Алхам 11: ХБХ-ийн модулийг бүтээх- Xilinx SDK дээр шинэ програм үүсгэх

ХБХ-ийн модулийг бүтээх- Xilinx SDK дээр шинэ програм үүсгэх
ХБХ-ийн модулийг бүтээх- 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: ХБХ-ийн модулийг бүтээх- Төслийн Explorer-ийн тойм (I)

ХБХ-ны модулийг бүтээх- Төслийн Explorer-ийн тойм (I)
ХБХ-ны модулийг бүтээх- Төслийн Explorer-ийн тойм (I)

Project Explorer дээрх зарим файлыг шалгацгаая. Нэгдүгээрт, "design_1_wrapper_hw_platform_0" фолдерт "system.hdf" -ийг нээнэ үү. Энэ файл нь ps7_cortex9 процессор болон манай загварт байгаа IP блокуудын хаягийн газрын зургийг харуулав.

Алхам 13: ХБХ-ийн модулийг бүтээх- Төслийн Explorer-ийн тойм (II)

ХБХ-ийн модулийг бүтээх- Төслийн Explorer-ийн тойм (II)
ХБХ-ийн модулийг бүтээх- Төслийн Explorer-ийн тойм (II)

Дараа нь "Axis_2_PWM_SDK_bsp" фолдер доторх "оруулах" ба "libsrc" файлыг шалгана уу. Энд байгаа номын сангийн файлууд нь бүртгэлийг "тоглуулахгүйгээр" тоног төхөөрөмжийн дагалдах хэрэгслүүдтэй ажиллах боломжийг бидэнд олгодог.

Алхам 14: ХБХ-ийн модулийг бий болгох- Төслийн тоймчийн тойм (III)

ХБХ-ийн модулийг бүтээх- Төслийн Explorer-ийн тойм (III)
ХБХ-ийн модулийг бүтээх- Төслийн Explorer-ийн тойм (III)

BSP баримт бичгээр дамжуулан xtmrctr.h нь AXI таймертай холбоотой Xilinx таймерын хяналтын номын сан хэлбэрээр олддог. Ерөнхийдөө бид хүссэн ХОУХШ -ийн функцийг эндээс олж болно. Гэсэн хэдий ч, хэрэв та "tmrctr_v4_3" баримт бичгийг уншсан бол драйвер нь одоогоор төхөөрөмжийн ХОУХШ -ийг дэмждэггүй болохыг харуулж байна. ХОУХШ -ийн функц дутагдсанаас болж бид xtmrctr.h болон AXI Timer v2.0 LogiCORE IP бүтээгдэхүүний гарын авлагын тусламжтайгаар ХОУХШ -ийн үйл ажиллагааг дуусгах ёстой.

Алхам 15: ХБХ-ийн модулийг бий болгох- ХОУХШ-ийн функцийг дуусгах (I)

ХБХ-ийн модулийг бий болгох- ХОУХШ-ийн функцийг дуусгах (I)
ХБХ-ийн модулийг бий болгох- ХОУХШ-ийн функцийг дуусгах (I)

"Helloworld.c" үндсэн файл руу буцаж ороод дараах толгой файлуудыг оруулна уу.

Алхам 16: ХОУХШ-ийн модулийг бий болгох- ХОУХШ-ийн функцийг боох (II)

ХБХ-ийн модулийг бүтээх- ХОУХШ-ийн функцийг дуусгах (II)
ХБХ-ийн модулийг бүтээх- ХОУХШ-ийн функцийг дуусгах (II)

Хоёр AXI TImer -ийн үндсэн хаягийг "xparameters.h" -аар тодорхойлно уу.

Алхам 17: ХБХ-ийн модулийг бий болгох- ХОУХШ-ийн функцийг дуусгах (III)

ХБХ-ийн модулийг бүтээх- ХОУХШ-ийн функцийг дуусгах (III)
ХБХ-ийн модулийг бүтээх- ХОУХШ-ийн функцийг дуусгах (III)

Хүссэн PWM функцийг бий болгох.

Duty_val: зэрэглэлийн утгыг үүргийн мөчлөг болгон хөрвүүлдэг. Цагийн хугацааг бас зааж өгөх ёстой.

PWM_START: ХОУХ -ны бүртгэлийн хаягийг зааж, ХОУ -ыг үүсгэж эхэлнэ.

PWM_STOP: ХОУХ -ны бүртгэлийн хаягийг оноож, ХОУ -ыг үүсгэхийг зогсооно.

Үлдсэн демо кодыг "axloworld.c" хэсэгт "Axis_2_PWM_SDK" хэсэгт харуулав.

Алхам 18: ХБХ-ийн модулийг бүтээх- Үүнийг ажиллуулаарай

1. SDK -ээр дамжуулан FPGA програмчлах

  • USB портоор дамжуулан Zybo Board -ийг компьютерт холбоно уу.
  • Xilinx Tools -> FPGA програм

2. Хөтөлбөрийг ажиллуулна уу

"Ажиллуулах" дүрс дээр дараад цэсийг унтраа -> Ажиллуулах -> Тоног төхөөрөмж дээр ажиллуулна уу

3. SDK терминал

  • SDK терминалыг нээнэ үү -> Цуваа порт руу холбогдох -> OK
  • Хөтөлбөрийг ажиллуулна уу. Хэрэв демо код амжилттай ажиллаж байвал "Эхлүүлэх ажил дууссан!" SDK терминал дээр.

Алхам 19: OV7670 ашиглан Digilent ZYBO дээр видео боловсруулалт хийх

Бүрэн архивын файлыг хавсаргасан болно.

Алхам 20: Блок диаграмыг бөглөнө үү

Бүрэн блок диаграм
Бүрэн блок диаграм

Энэ нь төслийн бүх холболт, IP блокуудын бүрэн диаграммыг харуулав

Алхам 21: OV7670 -ийг ZYBO руу холбоно уу

OV7670 -ийг ZYBO руу холбоно уу
OV7670 -ийг ZYBO руу холбоно уу

Ov7670 модулийг ZYBO Pmods руу холбохын тулд холболт үүсгэнэ үү

Data Pmod бол Pmod D юм

Pmod -ийг хянах нь Pmod C юм

Нэмж дурдахад энэ зааврын эхний хагаст заасан PmodCON3 болон servo -г холбоно уу

Алхам 22: Блок дизайныг бий болгох

Блок дизайныг бий болгох
Блок дизайныг бий болгох

Flow Navigator дээр "Блок дизайн үүсгэх" дээр дараад OK дарна уу.

Алхам 23: OV7670 камерын хяналт ба зураг авахад VHDL файлуудыг нэмнэ үү

Энэ алхамд хавсаргасан VHDL файлуудыг төсөлд нэмнэ үү

Алхам 24: Хязгаарлагдмал файл нэмнэ үү

Төсөлдөө хавсаргасан хязгаарлалтын файлыг нэмнэ үү.

Алхам 25: HLS IP -д IP Repo нэмнэ үү

HLS IP -д IP Repo нэмнэ үү
HLS IP -д IP Repo нэмнэ үү

Zip файлыг хавсаргаад "HLS_repo" нэртэй шинэ лавлах (фолдер) дотор ижил нэртэй шинэ хавтсанд задална уу.

IP каталог руу очиж IP репозитороо төсөл дээрээ нэмж, "Хадгалах сан нэмэх …" -ийг сонгоод хулганы баруун товчийг дарна уу.

"HLS_repo" лавлах руу очоод сонгоно уу.

Нэмэлт: HLS видео боловсруулах блокыг өөрөө үүсгээрэй!

Алхам 26: Модулиуд болон IP нэмнэ үү

Модуль ба IP нэмнэ үү
Модуль ба IP нэмнэ үү
Модуль ба IP нэмнэ үү
Модуль ба IP нэмнэ үү

Ov7670_axi_stream_capture, debounce болон ov7670_controller модулийг арын дэвсгэр дээр хулганы баруун товчийг дараад "Модуль нэмэх …" -ийг сонгон блок схемд нэмнэ үү.

Үүний нэгэн адил IP хаягийг нэмнэ үү.

  • HLS_Video_Track
  • Видео хүрээний буфер бичих
  • Видео хүрээ орчуулгыг унших
  • Видео Хугацаа хянагч
  • AXI4-видео дамжуулах
  • "Зүсмэл" киноны 3
  • Тогтмол
  • AXI таймерын 2

Алхам 27: IP тохиргооны тохиргоо

IP тохиргооны тохиргоо
IP тохиргооны тохиргоо
IP тохиргооны тохиргоо
IP тохиргооны тохиргоо
IP тохиргооны тохиргоо
IP тохиргооны тохиргоо

Зураг дээр үзүүлсэн шиг

Алхам 28: PS IP блокыг нэмж тохируулна уу

PS IP Block -ийг нэмж тохируулна уу
PS IP Block -ийг нэмж тохируулна уу
PS IP Block -ийг нэмж тохируулна уу
PS IP Block -ийг нэмж тохируулна уу

ZYNQ7 боловсруулах системийг блок диаграммд нэмнэ үү

тохиргоог засах:

  • PS-PL тохиргоо

    • HP

      • S HP 0 -ийг идэвхжүүлнэ үү
      • S HP 1 -ийг идэвхжүүлнэ үү
  • Цагны тохиргоо

    • PL даавуун цаг

      • FCLK_0 100 МГц давтамжтай
      • FCLK_1 25MHz дээр (OutputClock)
      • FLCK_2 35MHz (<= 50MHz) дээр (CameraClock)

Алхам 29: 1 -р хэсэг. Servo моторт зориулсан ХОУХШ -ийн модулийг бүтээх

Axi_timer_0 pwm0 -ийг pwm_Xaxis гаралтын шинэ порт руу гаргаж ирээрэй

Axi_timer_1 pwm0 -ийг pwm_Zaxis гаралтын шинэ порт руу гаргаж ирээрэй

Алхам 30: Видео оролтын хажуугийн холболт (тодруулсан)

Видео оролтын хажуугийн холболтууд (тодруулсан)
Видео оролтын хажуугийн холболтууд (тодруулсан)

Видео оролтын талын IP блокуудыг зөв холбоно уу

(* холболтыг автоматжуулах явцад зөв сонголтуудыг сонгох замаар эдгээр холболтыг бий болгох ёстой) axi_stream_capture -аас "aclk" дараах руу орно.

  • ap_clk дээр видео хүрээ буфер бичих
  • ap_clk HLS видео урсгал боловсруулах блок дээр
  • *Видео хүрээний буфераас AXI smartconnect IP дээр aclk S_AXI_HP0 руу бичээрэй.
  • *HLS видео боловсруулах блокийн S_AXI сувгууд болон видео хүрээний буферт зориулсан AXI Interconnect IP сувгуудад харгалзах aclk нь PS блок дээр S_AXI_HP0_ACLK бичнэ.

Видео дамжуулах дохио нь зүгээр л зураг авалтын блокоос Zynq санах ойн интерфэйс рүү цувралаар холбогддог.

  • Видео нь барих блокоос HLS боловсруулах блок руу шилждэг.
  • HLS блокоос боловсруулсан видео нь хүрээ буфер бичих блок руу ордог.
  • *Хүрээний буфер бичих блок нь Zynq PS блок дээрх HP0 интерфэйстэй холбогддог.
  • Барих блокийн гаралтаас m_axis_tuser дохио нь HLS боловсруулах блок дээрх video_in_TUSER оролтын дохио болон нэг блок дээрх ap_start дохио руу гараар холбогддог.

TUSER (tuser) дохиог AXI видео дамжуулалтын протокол ашигладаг бөгөөд энэ нь видеоны хүрээ эхэлснийг илэрхийлдэг. AP_Start нь HLS блокыг боловсруулж эхлэхийг хэлдэг. Автобусны ганц дохиог холбож, ийм байдлаар салгахдаа бусад автобусны ердийн төгсгөлийн цэгийг холбох шаардлагатай. Вивадо нь хэрэв та дохиог гараар холбож байгаа бол ердийнхөөрөө холбогдож байгаа зүйлийг салгахыг хүсч байна гэж үздэг.

IP блокуудын тохиргооны тохиргоо:

Видео хүрээ буфер бичих:

Видео формат: RGB8

Нэг цаг тутамд 1 дээж Хамгийн их багана: 1280 (> = 640) Хамгийн их мөр: 960 (> = 480) Хамгийн их өгөгдлийн өргөн: 8

Алхам 31: OV7670 руу холбогдох

OV7670 руу холбогдох
OV7670 руу холбогдох

Ov7670_axi_stream_capture блок дээр

  • Бүх оролтыг гадаад болгох (зүү дээр хулганы баруун товчийг дараад цэснээс сонгох эсвэл зүүн товчлуур дээр дарна уу-> ctrl+T)
  • Нэрсийг байгаагаар нь үлдээгээрэй

Ov7670_ хянагчийн блок дээр

  • Блокийн бүх гаралтыг гадаад болгох
  • Config_finished портын нэрийг led0 болгон өөрчил
  • clk -ийг CameraClock руу холбоно уу (<= 50MHz) (FCLK_2)

Татгалзах блок дээр

  • button1 оролтыг btn0 гэж нэрлэгддэг гадаад оролтын порт руу холбоно уу
  • out1 -ийг ov7670_controller IP блок дээрх дахин илгээх шугам руу холбоно уу
  • button2 оролтыг btn3 нэртэй гадаад оролтын порт руу холбоно уу
  • out2n -ийг процессор системийн ext_reset_in оролттой холбож видео бичлэг хийх цагийн домэйны IP хаягийг дахин тохируулна уу. (*IP үүсгэсний дараа үүнийг хийх шаардлагатай байж магадгүй юм)
  • clk -ийг CameraClock руу холбоно уу (<= 50MHz) (FCLK_2)

Алхам 32: Видео гаралтын холболт

Видео гаралтын холболтууд
Видео гаралтын холболтууд
Видео гаралтын холболтууд
Видео гаралтын холболтууд
Видео гаралтын холболтууд
Видео гаралтын холболтууд
Видео гаралтын холболтууд
Видео гаралтын холболтууд

Видео Хугацаа Хянагч (VTC), AXI4-Stream to Video Out болон зүсмэлүүдийг блоклох холболтууд

  • Vid_io_out_clk болон VTC clk -д 25MHz цаг (FCLK_1) ашиглана уу
  • AXI4-Stream дээр видео гаргахын тулд 100MHz цаг (FCLK_0) ашиглана уу
  • vtiming_out to vtiming_in руу
  • Видео хүрээний буферийг унших m_axis_video нь AXI4-Stream рүү Video Out to video_in руу ордог.
  • vtg_ce нь gen_clken руу очдог
  • VTC clken, aclken, vid_io_out_ce -ийг Constant dout -тай уя [0: 0]
  • Vid_hsync ба vid_vsync -ийг vga_hs болон vga_vs гадаад гаралтын портууд руу тус тус авчирна. (зураг дээр байхгүй)

Зүсмэлүүд:

  • Зүсмэлүүдийг хавсаргасан зурган дээр үзүүлсэн шиг тохируулах ёстой

    • блокуудын нэрийг slice_red, slice_green, slice_blue болгон өөрчил
    • блокуудын нэр дээрх зурган дээр үзүүлсэн шиг зүсмэлүүдийг тохируулах
    • Зураг дээр үзүүлсэн шиг зүсмэл гаралт бүрийг гадаад порт гаралттай холбоно.
  • vid_data [23: 0] нь зүсэм бүрийн оролтод холбогддог (Din [23: 0])

Алхам 33: Блок ба холболтын автоматжуулалтыг ажиллуулна уу

Блок ба холболтын автоматжуулалтыг ажиллуулна уу
Блок ба холболтын автоматжуулалтыг ажиллуулна уу
Блок ба холболтын автоматжуулалтыг ажиллуулна уу
Блок ба холболтын автоматжуулалтыг ажиллуулна уу
Блок ба холболтын автоматжуулалтыг ажиллуулна уу
Блок ба холболтын автоматжуулалтыг ажиллуулна уу

ZYNQ7 PS блокоос зүйлийг холбохын тулд Block Automation -ийг ажиллуулна уу. Зураг дээр үзүүлсэн шиг.

Бүх холболтын IP үүсгэхийн тулд Connection автоматжуулалтыг ажиллуулна уу. Зураг бүрийн бүх сонголтыг анхаарч үзээрэй.

Татгалзах блок дээр out2n -ийг видео бичлэг хийх цагийн домэйнтэй холбоно уу Процессорын систем Reset ext_reset_in оролт.

Алхам 34: HDL боолт үүсгэх

HDL боолт үүсгэх
HDL боолт үүсгэх

Өөрийн блок дизайны хувьд HDL боодол үүсгэ.

Үүнийг дээд модуль болгон тохируулаарай.

Алхам 35: Bitstream үүсгэх, тоног төхөөрөмжийг SDK руу экспортлох, Vivado -аас SDK ажиллуулах

Экспортод битийн урсгалыг оруулахаа мартуузай.

Bitstream үүсгэх нь маш удаан хугацаа шаардагдах болно.

Дараа нь SDK -ийг ажиллуулна уу

Алхам 36: SDK (FreeRTOS байхгүй)

SDK (FreeRTOS байхгүй)
SDK (FreeRTOS байхгүй)

Энэ хувилбар нь FreeRTOS -ийг ашиглахгүйгээр бүх зүйлийг хийдэг бөгөөд кодыг маш сайн нягтруулдаг.

Тоног төхөөрөмжийн дизайн дээр үндэслэн бие даасан BSP үүсгэх. Анхдагч сонголтууд сайн байх ёстой. BSP эх сурвалжийг үүсгэсэн эсэхийг шалгаарай.

Зураг дээр үзүүлсэн шиг апп үүсгээрэй. (хоосон програм)

Автомат үүсгэсэн үндсэн файлыг устгаад хавсаргасан файлуудыг импортлоорой.

Алхам 37: FreeRTOS -ийн хэрэгжилт

FreeRTOS -ийн хэрэгжилт
FreeRTOS -ийн хэрэгжилт

Энэ хувилбар нь FreeRTOS -ийг ашигладаг. Тоног төхөөрөмжийн дизайнд үндэслэн FreeRTOS901 BSP үүсгэнэ. Анхдагч сонголтууд сайн байх ёстой. BSP эх сурвалжийг үүсгэсэн эсэхийг шалгаарай.

Зураг дээр үзүүлсэн шиг апп үүсгээрэй. (хоосон програм)

Автомат үүсгэсэн үндсэн файлыг устгаад хавсаргасан файлуудыг импортлоорой.

Алхам 38: Хэрэглэх заавар

Энэ төслийг ажиллуулахад жаахан төвөгтэй байдаг. Алхам алхмуудыг дарааллаар нь хий.

Таны ZYBO асаалттай байхдаа юу ч өөрөө ачаалахгүй байгаа эсэхийг шалгаарай. Энэ нь дууссан LED асахгүй байх ёстой гэсэн үг юм. Үүнийг хийх нэг арга бол ачаалах эх үүсвэрийн холбогчийг JTAG болгож тохируулах явдал юм.

SDK -аас програмчлахыг хүсч буй төслийг (FreeRTOS эсвэл үгүй) нээнэ үү

  1. ZYBO -г асаана уу. Done LED асахгүй байх ёстой.
  2. FPGA -г бит файлаар програмчлах. Done LED асах ёстой. Led0 асахгүй байх ёстой.
  3. Кодыг ажиллуулна уу (хэрэв та үүнийг хийж байгаа бол эхлэх цэгийг давахаа мартуузай).

Энэ үед та VGA дэлгэц дээр гаралт авах ёстой.

Дахин эхлүүлэхийн тулд (хэрэв алдаа гарсан бол): PS-SRST товчлуурыг хурдан дарна уу эсвэл ZYBO-г унтраагаад дахин асаана уу. 2 -р алхамаас үргэлжлүүлнэ үү.

Дибаг хийгч ашиглан процессорыг зогсоосноор камер хөдлөхийн оронд байр сууриа хадгална. Видео урсгал ямар ч байсан үргэлжлэх болно.

Алхам 39: Лавлагаа ба холбоос

Xilinx лавлах гарын авлага, баримт бичиг:

  • PG044 - AXI -цацалт руу видео дамжуулах
  • PG278 - Видео хүрээний буфер унших/бичих

Бусад холбоосууд:

  • Лауригийн блог - VDMA оролт
  • Лауригийн блог - OV7670 -аас BRAM ашиглан VGA гаралт
  • Hamsterworks вики, OV7670 кодын анхны эх сурвалж Майк Филдс
  • Хугацааны үндсэн үзүүлэлтүүдийг харуулсан мэдээллийн хуудас

Зөвлөмж болгож буй: