Mundarija:

Erni qanday qilish kerak: 11 qadam
Erni qanday qilish kerak: 11 qadam

Video: Erni qanday qilish kerak: 11 qadam

Video: Erni qanday qilish kerak: 11 qadam
Video: 🤔 Erim har kuni 2-3 marta qo'shilaylik, birga bo'laylik, yaqinlik qilaylik deydi. | Fayoz Aminov 2024, Noyabr
Anonim
Erni qanday qilish kerak
Erni qanday qilish kerak

Bu Erni, sizning avtonom ovozingizdan so'ng, Zybo Board yordamida qanday qurish bo'yicha qo'llanma. U quyidagilarni o'z ichiga oladi: Vivadoda loyiha yaratish, FPGA-da PWM-ga o'xshash servo dvigatel drayverlarini yaratish, ikkita ovoz sensori bilan interfeys, IP-ning kelish vaqtidagi farqni yaratish, freeRTOS-dan foydalanish va zybo-ni batareya to'plamidan o'chirish. Bu Cal Poly SLOda real vaqtda operatsion tizimlar sinfining (CPE 439) yakuniy loyihamiz edi.

Uskunalar ro'yxati:

  • 1 - ZYBO Zynq 7000 ishlab chiqish kengashi
  • 2 - paralaksning uzluksiz aylanishi
  • 2 - Ovoz sensori (SparkFun tovush detektori)
  • 1 - 5v lityum -ionli USB batareyalar to'plami (taxta uchun)
  • 4 - AA batareyalar (servo uchun)
  • 1 - AA batareya to'plami (4 ta batareya uyasi)
  • 1 - Micro USB kabeli
  • 1 - non paneli
  • ko'p - Erkak -erkak simlari
  • 1 - Servo shassisi

Dasturiy ta'minot talablari:

  • Xilinx Vivado Design Suite 2016.2
  • Digilent Adept 2.16.1

1 -qadam: Vivadoda Erni uchun loyiha o'rnatish

Vivadoda Erni uchun loyiha o'rnatish
Vivadoda Erni uchun loyiha o'rnatish
Erni uchun Vivadoda loyiha o'rnatish
Erni uchun Vivadoda loyiha o'rnatish
Erni uchun Vivadoda loyiha o'rnatish
Erni uchun Vivadoda loyiha o'rnatish
  1. Sehrgar paydo bo'ladi
  2. Keyingiga bosing
  3. Loyihaga keyingi nom bering

    1. Hech qachon bo'sh joy bo'lgan loyiha nomi yoki katalog yo'lini ishlatmang !!!!!
    2. Bu RTL loyihasi bo'ladi.
  4. Biz manbalarni aniqlamoqchi emasmiz
  5. Keyingi tugmachasini bosish orqali biz qismlar sahifasiga o'tamiz. Biz ZYNQ XC7Z010-1CLG400C dan foydalanmoqdamiz.

    1. Vivadoda Zybo oldindan belgilangan taxtalardan biri sifatida ro'yxatga olinmagan. Tanlang: "qismlar", keyin xc7z010clg400-1 ni qidiring.
    2. Agar siz noto'g'ri qismini noto'g'ri tanlasangiz, siz chiplarni osongina o'zgartirishingiz mumkin: Asboblar -> Loyiha sozlamalari -> Umumiy va "Loyiha qurilmasi" o'ng tomonidagi nuqtalarni bosing.
  6. Blok dizaynini yaratish -ni bosing.

    Hozir uni design_1 deb nomlang

  7. Siz yashil chiziqni ko'rasiz, unda IP qo'shing, ustiga bosing.
  8. Zynq qidiring.

    1. ZYNQ7 ishlov berish tizimini ikki marta bosing,
    2. Bu blok bizning dizayn dizaynimizda paydo bo'ladi.
  9. Siz yashil blokni ko'rasiz, unda Run Block Automation yoziladi, ustiga bosing.
  10. Quyida zybo_zynq_def.xml -ni yuklab oling.
  11. Vivadoda "XPS sozlamalarini import qilish" ni bosing va "zybo_zynq_def.xml" -ni tanlang.

    Bu Vivado blokining konfiguratsiyasini Zybo platasining barcha ichki qurilmalari va pinli topshiriqlari bilan oldindan to'ldiradi

  12. ZYNQ blokini ikki marta bosing.

    1. MIO konfiguratsiyasi

      1. Taymer 0 ni yoqish (Ilova protsessor birligi ostida - img 1)
      2. Watchdog-ni yoqish (1-ilovali protsessor birligi ostida)
      3. GPIO-> GPIO MIO -ni yoqish (dastur protsessor birligi ostida - img 2)
      4. GPIO-> ENET Reset-ni yoqish (I/U atrof-muhit birliklari ostida- img 2)
    2. Soat konfiguratsiyasi

      FCLK0 -ni o'chirish (PL mato soatlari ostida - img 3)

  13. OK ni bosing.
  14. Endi "Avtomatlashtirish blokini ishga tushiring".

    Signallar haqida ba'zi savollar bo'ladi, OK deb ayting

  15. "HDL o'rash vositasini yaratish" ni bosing.

    Biz foydalanuvchining tahrirlashiga ruxsat berish uchun hosil qilingan qog'ozni nusxalashni xohlaymiz

  16. OK ni bosing.

2 -qadam: Vivadoda Erni PWM yaratish

Vivadoda Erni PWM yaratish
Vivadoda Erni PWM yaratish
Vivadoda Erni PWM yaratish
Vivadoda Erni PWM yaratish

Bu qadam AXI kutubxonasi orqali yuboriladigan kirishlar bilan PWM IP hosil qiladi.

  1. Orqa fonni o'ng tugmasini bosib, "IP qo'shish" tugmachasini bosib, AXI GPIO blokini yarating.

    qidirish satriga "AXI_GPIO" kiriting va ushbu paketni tanlang

  2. Yangi axi_gpio_0 blokini ikki marta bosish orqali IP-ni qayta sozlang

    1. GPIO ostida, GPIO kengligini 2 ga o'rnating. Bu bitlar har bir PWM moduli misolini haydash uchun PWM_ON signal bo'ladi.
    2. "Ikki kanalli kanalni yoqish" tugmasini bosing
    3. GPIO 2 ostida, GPIO kengligini 2 ga o'rnating. Bu bitlar har bir PWM moduli misolining yo'nalishini belgilash uchun PWM_FW signal bo'ladi.
  3. GPIO deb nomlangan axi_gpio_0 chiqish portini o'ng tugmasini bosing va "Tashqi ko'rinish" ni tanlang.

    1. GPIO deb nomlangan yangi chiqishni bosing va asboblar panelidagi "xususiyatlar" yorlig'iga o'ting va nomini PWM_ON ga o'zgartiring.
    2. GPIO2 deb nomlangan yangi chiqishni bosing va asboblar panelidagi "xususiyatlar" yorlig'iga o'ting va nomini PWM_FW ga o'zgartiring.
  4. Blok -diagramma ustidagi yashil bannerda Connection Automation -ni ishga tushirish -ni tanlang.

    Agar siz portlarni qo'lda ulasangiz, AXI manzillari sozlanmagan bo'lishi mumkin, bu esa keyinchalik aloqa bilan bog'liq muammolarga olib keladi

  5. Yangi Navigator panelida yangi maxsus IP -blok yaratish uchun loyiha menejeri -> Manba qo'shish -ni tanlang

    1. "Dizayn manbalarini qo'shish yoki yaratish" -ni tanlang va keyingisini bosing
    2. "Fayl yaratish" ni bosing, fayl turini "SystemVerilog" ga o'zgartiring va fayl nomi maydoniga "pwm" kiriting, so'ng OK ni bosing.
    3. Finish tugmasini bosing
    4. "OK" tugmasini bosish orqali "Modulni aniqlash" oynasini e'tiborsiz qoldiring (keyinroq ularni qayta yozamiz)

      agar ishonchingiz komilmi deb so'rasa, Ha tugmasini bosing

  6. Manbalar ko'rinishida pwm.sv-ni ikki marta bosing ("Dizayn manbalari/design_1_wrapper" da joylashgan)

    SystemVerilog kodini quyida biriktirilgan pwm.txt faylidan nusxa ko'chiring/joylashtiring

3 -qadam: Vivadoda Erni TDOA yaratish

Vivadoda Erni TDOA yaratish
Vivadoda Erni TDOA yaratish
Vivadoda Erni TDOA yaratish
Vivadoda Erni TDOA yaratish

Bu qadam TDOA IP -ni yaratadi, uning chiqishini AXI kutubxonasi orqali o'qish mumkin

  1. Orqa fonni o'ng tugmasini bosib, "IP qo'shish" tugmachasini bosib, AXI GPIO blokini yarating.

    qidirish satriga "AXI_GPIO" kiriting va ushbu paketni tanlang

  2. Yangi axi_gpio_1 blokini ikki marta bosish orqali IP-ni qayta sozlang

    1. GPIO ostida "Hamma kirishlar" katagiga belgi qo'ying va GPIO kengligini 32 ga sozlang. Bu avtobus ikkita sensorlar orasidagi kelish vaqtidagi farq bo'ladi.
    2. axi_gpio_1 blokining ichida GPIO portining yonidagi + belgisini bosing va gpio_io_i [31: 0] ni oching.
  3. Gpio_io_i [31: 0] deb belgilangan axi_gpio_1 chiqish portini o'ng tugmasini bosing va "Tashqi ko'rinish" ni tanlang.

    Gpio_io_i [31: 0] deb belgilangan yangi kirishni bosing va asboblar panelidagi "xususiyatlar" yorlig'iga o'ting va nomini TDOA_val qilib o'zgartiring

  4. Blok -diagramma ustidagi yashil bannerda Connection Automation -ni ishga tushirish -ni tanlang.

    Agar siz portlarni qo'lda ulasangiz, AXI manzillari sozlanmagan bo'lishi mumkin, bu esa keyinchalik aloqa muammolariga olib keladi

  5. Yangi Navigator panelida yangi maxsus IP -blok yaratish uchun loyiha menejeri -> Manba qo'shish -ni tanlang

    1. "Dizayn manbalarini qo'shish yoki yaratish" -ni tanlang va keyingisini bosing
    2. "Fayl yaratish" ni bosing, fayl turini "SystemVerilog" ga o'zgartiring va fayl nomi maydoniga "tdoa" ni kiriting, so'ng OK ni bosing.
    3. Finish tugmasini bosing
    4. "OK" tugmachasini bosib, "Modulni aniqlash" oynasini e'tiborsiz qoldiring (biz ularni keyinroq yozamiz)

      agar ishonchingiz komilmi deb so'rasa, Ha tugmasini bosing

  6. Manbalar ko'rinishida tdoa.sv-ni ikki marta bosing ("Dizayn manbalari/design_1_wrapper" da joylashgan)

    SystemVerilog kodini quyida biriktirilgan tdoa.txt faylidan nusxa ko'chiring/joylashtiring

4 -qadam: Erni o'rash va eksport qilish

Erni o'rash va eksport qilish
Erni o'rash va eksport qilish
  1. Blok diagramma biriktirilgan skrinshotga o'xshashligini tekshiring
  2. Manbalar ko'rinishida design_1.bd-ni o'ng tugmasini bosing va "HDL o'rash moslamasini yaratish …" -ni tanlang.

    1. "Foydalanuvchilarni tahrirlash uchun ishlab chiqarilgan chiqishni nusxalash" -ni tanlang va "OK" tugmasini bosing.
    2. Kodni quyida biriktirilgan design_1_wrapper.txt -dan nusxa oling va uni design_1_wrapper.v kodining o'rniga joylashtiring.
    3. design_1_wrapper.v -ni saqlang
  3. Manbalar ko'rinishida ZYBO_Master.xdc faylini Cheklovlar/constrs1 ostida ikki marta bosing.

    1. Kodni quyida biriktirilgan ZYBO_Master.txt -dan nusxa oling va uni ZYBO_Master.xdc kodining o'rniga joylashtiring.
    2. Quyidagi kirish/chiqish pinlariga e'tibor bering:

      1. L15: Chap dvigatel uchun PWM signali (Zybo -dagi Pmod JA2)
      2. L14: o'ng dvigatel uchun PWM signali (Zybo -dagi Pmod JA8)
      3. V12: ovoz sensori 1dan eshik kirish (Zybo -dagi Pmod JE1)
      4. K16: ovoz sensori 2 dan eshik kirish (Zybo -dagi Pmod JE2)
  4. Navigatorlar panelida Dastur va disk raskadrovka ostida "Bitstream yaratish" ni bosing

    Agar siz buni darhol amalga oshirilgan deb hisoblasangiz, ehtimol unday emas. jiddiy, choy tayyorlang

  5. Fayl-> Eksport-> Uskuna yaratish-ni bosing

    "Bitstream qo'shishni" belgilang va OK tugmasini bosing

  6. Fayl-> SDK-ni ishga tushirish-ni bosing

5 -qadam: Erni qurish

Erni qurilish
Erni qurilish
Erni qurilish
Erni qurilish
  1. Servolarni servo shassisiga joylashtiring.
  2. Servo ma'lumotlari jadvalidan so'ng quyidagilarni bajaring:

    1. servolarning erini Zybo JA Pmod -dagi topraklama pinlariga ulang (biriktirilgan pinout rasmiga qarang)
    2. servo quvvat simini AA batareya to'plamiga ulang

      Biz aniqladikki, servolar Zybo Vdd -ga ulanganida, taxta juda ko'p tokni tortadi, bu esa taxtaning uzluksiz tiklanishiga olib keladi

    3. kirish signal pimlarini Zyboning tegishli chiqish pinlariga ulang (chapda: JA2, o'ngda: JA8)
  3. tovush sensorlarini shassining old tomoniga, oldinga qarab, iloji boricha bir -biriga yaqin tuting
  4. ovoz sensorlarini ulash uchun ovoz sensori ulanish qo'llanmasidan foydalaning

    1. erga va har bir tovush sensorining Vdd pinlarini erga va Zyboning JE Pmod -dagi Vdd pinlarini simga ulang (biriktirilgan pinout rasmiga qarang)
    2. chap ovoz sensori Gate pinini JE1 ga ulang
    3. to'g'ri ovoz sensori Gate pinini JE2 ga ulang

6 -qadam: Erni birinchi BSP

Erni birinchi BSP
Erni birinchi BSP
Erni birinchi BSP
Erni birinchi BSP
  1. Biz yaratgan platformani to'ldirish uchun BSP yarating.

    Siz buni Fayl -> Yangi -> Kengashni qo'llab -quvvatlash paketi orqali olishingiz mumkin

  2. BSPni yaratishda sizga yordam beradigan sehrgar ochiladi.

    1. Biz bu BSPni biz yaratgan Platformamiz bilan bog'lamoqchimiz, shuning uchun
    2. Uskuna platformasi biz yaratgan platformaga mos kelishi kerak (1 -rasmga qarang)
    3. Bizning CPU _0 protsessor bo'ladi.
    4. Finish tugmasini bosing
    5. Ochilgan oynada bsp -ni kiritish uchun lwip141 -ni o'chirib qo'yganingizga ishonch hosil qiling (img 2 -ga qarang)

7 -qadam: FreeRTOS -ning Erni

  1. Sourceforge -dan FreeRTOS -ning so'nggi versiyasini yuklab oling.

    Agar yuklab olish bajariladigan bo'lsa, FreeRTOS fayllarini loyiha katalogingizga chiqarish uchun uni ishga tushiring

  2. SDK -ni ochiq saqlang va Fayl -> Import -ni bosing.
  3. Biz "Umumiy"-"Mavjud ish maydonidan" ni bosmoqchimiz, keyin FreeRTOS yuklangan joyga o'tishni xohlaymiz.
  4. Bizning demo FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 da joylashgan bo'ladi. Ushbu papkani tanlagandan so'ng, biz uchta loyihaning ochilishini ko'rishimiz kerak (bizning kodimiz (OS), bu BSP va HW platformasi).

    Faqat RTOSDemo -ni joriy ish joyingizga import qiling

  5. Barcha "ko'k" papkalar loyihalarida havola qilingan BSP o'zgaradi

    1. Sichqonchaning o'ng tugmachasini bosing va "Ishonchli BSP -ni o'zgartirish" -ni tanlang.
    2. Zybo uchun hozirgina yaratgan BSP ni tanlang
    3. Xilinx -ning SDK Blue papkalarida kodni tahrirlash haqiqiy kod loyihalari.

8 -qadam: Erni C kodini import qilish

  1. RTOSDemo/src katalogida main.c faylini shu erga biriktirilgan holda yozing.
  2. Main_sound.c faylini RTOSDemo/src katalogiga nusxalash.

9 -qadam: Erni disk raskadrovka

  1. Ishga tushirish -> Tuzatish konfiguratsiyalarini tanlang
  2. Chap panelda yangi tizim tuzatuvchisi ishga tushadi
  3. Maqsadli sozlash yorlig'ida,

    "Butun tizimni asl holatiga qaytarish" -ni tanlang, shunda u ham, ps7_init ham tanlanadi

  4. Endi Ilovalar yorlig'ini tanlang.

    1. "Ilovani yuklab olish" -ni tanlang
    2. Cortexa9_0 yadrosini "dastur kirishda to'xtash" ga sozlang.
    3. Qo'llash va disk raskadrovka -ni bosing.
  5. Nosozliklarni tuzatish jarayonida xatolar yo'qligini tekshiring
  6. Robotni diqqat bilan kuzatib turing, dastur to'xtash nuqtalariga tegmasdan, ishga tushguncha, Resume tugmasini bosing
  7. Robot endi burilib, baland tovushlar tomon harakatlanishi kerak. Vajjaj!

10 -qadam: Erni avtonom qilish

  1. Loyihangiz ishga tayyor bo'lgach (siz disk raskadrovka vositasi orqali hech qanday muammosiz ishlashingiz mumkin), siz uni kartadagi flesh xotiraga yuklashga tayyormiz.
  2. "Birinchi darajali yuklash yuklovchisi" (FSBL) loyihasi deb nomlangan loyihani yarating va ishga tushganda loyiha fayllarini (bit oqimi va OS) yuklash uchun sizning taxtangizga kerak bo'lgan barcha ko'rsatmalarni o'z ichiga oladi.

    1. Tanlang: Fayl-> Yangi-> Ilova loyihasi va quyidagi oyna paydo bo'lishi kerak.
    2. O'zingiz xohlagan narsani nomlang (ya'ni "FSBL")
    3. Ishlayotgan apparat platformasi ekanligiga ishonch hosil qiling
    4. Keyingisini bosing (Finish tugmachasini bosmang)
    5. Zynq FSBL shablonini tanlang
    6. Tugatish -ni bosing.
  3. Yaratish jarayoni tugagandan so'ng, agar siz Project Explorer oynasida quyidagi ikkita yangi papkani ko'rsangiz, hamma narsa ishlaganligini bilib olasiz.
  4. Yuklash tasvirini yarating Endi siz yuklash tasvirini yaratishingiz kerak bo'ladi.

    1. Loyiha papkasini o'ng tugmasini bosing (bu holda meniki "RTOSDemo" deb nomlanadi)
    2. Ochiladigan menyuda "Yuklash rasmini yaratish" ni bosing
    3. Agar hamma narsa to'g'ri bog'langan bo'lsa, loyiha qanday fayllarga muhtojligini biladi va quyida ko'rib turganingizdek quyidagi oyna paydo bo'ladi (asosiysi, sizda yuklash tasviri bo'limida 3 ta bo'lim, yuklovchi, bitli fayl va loyihalaringiz.elf fayli)).

      Agar bunday bo'lmasa, sizning loyihangizni bog'lashda noto'g'ri narsa bo'lishi mumkin. Loyiha papkalari tegishli BSP bilan bog'langanligiga ishonch hosil qiling

    4. "Rasm yaratish" tugmasini bosing
  5. Dasturiy ta'minotni bajarishning oxirgi bosqichi - bu avval yaratilgan tasvirni taxtaning xotirasiga o'chirish

    1. SDK-ning asosiy asboblar panelidan Xilinx Tools-> Program Flash Memory-ni tanlang
    2. To'g'ri apparat platformasi tanlanganligini va tasvir faylining yo'li oldingi bosqichda yaratilgan. BIN faylini to'g'ri ko'rsatayotganligini tekshiring.
    3. Flash turidan "qspi singl" ni tanlang
    4. Butunlikni ta'minlash uchun "Yorug'likdan keyin tekshirish" belgisini qo'ying, lekin bu kerak emas
  6. Kengashni sozlang Nihoyat, BootROM ishga tushirilganda qspi -dan yuklashni tanlash uchun taxtalarni dasturlash rejimiga o'tish moslamasi (JP5) to'g'ri o'rnatilganligiga ishonch hosil qilishingiz kerak.
  7. Endi qurilmani quvvat bilan aylantiring va "Logic Configuration Done LED" (LED 10) yashil rangda yonishini ta'minlang.

11 -qadam: Erni yoqimli qilish

  1. Mo'ynali kiyimlar
  2. Ko'p mo'yna
  3. Katta ko'zlar!
  4. … bosh kiyim

Tavsiya: