Tartalomjegyzék:

Ernie elkészítése: 11 lépés
Ernie elkészítése: 11 lépés

Videó: Ernie elkészítése: 11 lépés

Videó: Ernie elkészítése: 11 lépés
Videó: 🔞СКИПОВ упал с крыши❌ #шок 2024, November
Anonim
Hogyan készítsük Ernie -t
Hogyan készítsük Ernie -t

Ez egy oktatóanyag arról, hogyan építheti fel Ernie -t, az önálló hangkövető robotját a Zybo Board segítségével. Ez a következőkre terjed ki: projekt létrehozása Vivadóban, PWM-szerű szervomotor-illesztőprogramok létrehozása az FPGA-ban, interfész két hangérzékelővel, időbeli eltérés létrehozása az érkezési IP-n, freeRTOS használata, és a zyboy akkumulátorról történő futtatása. Ez volt az utolsó projektünk a Cal Poly SLO Real Time Operating Systems osztályához (CPE 439).

Felszerelés lista:

  • 1 - ZYBO Zynq 7000 Fejlesztési Tanács
  • 2 - Parallax folyamatos forgás szervo
  • 2 - Hangérzékelő (SparkFun hangérzékelő)
  • 1 - 5 V lítium -ion USB akkumulátor (tábla)
  • 4 - AA elem (szervókhoz)
  • 1 - AA elemcsomag (4 elemrésszel)
  • 1 - Micro USB kábel
  • 1 - Kenyeretábla
  • sok - férfi -férfi vezetékek
  • 1 - Szervo alváz

Szoftverkövetelmények:

  • Xilinx Vivado Design Suite 2016.2
  • Digilent Adept 2.16.1

1. lépés: Projekt beállítása Vivadóban Ernie számára

Projekt létrehozása Vivadóban Ernie számára
Projekt létrehozása Vivadóban Ernie számára
Projekt létrehozása Vivadóban Ernie számára
Projekt létrehozása Vivadóban Ernie számára
Projekt létrehozása Vivadóban Ernie számára
Projekt létrehozása Vivadóban Ernie számára
  1. Egy varázsló jelenik meg
  2. Kattintson a Tovább gombra
  3. Következő neve a projektnek

    1. Soha ne használjon olyan projektnevet vagy könyvtárútvonalat, amelyben szóközök vannak !!!!!
    2. Ez egy RTL projekt lesz.
  4. Nem akarunk forrásokat megadni
  5. A Tovább gombra kattintva a Rész oldalra jutunk. ZYNQ XC7Z010-1CLG400C készüléket használunk.

    1. Vivado nem tartalmazza a Zybo-t, mint előre meghatározott táblákat. Válassza ki: „alkatrészek”, majd keressen rá az xc7z010clg400-1 kifejezésre.
    2. Ha véletlenül a rossz részt választja, könnyen válthat a chipek között: Eszközök -> Projektbeállítások -> Általános, és kattintson a „Projekteszköz” jobb oldalán található pontokra
  6. Kattintson a Blokkterv létrehozása elemre.

    Nevezze el egyelőre a design_1 nevet

  7. Látni fog egy zöld sávot, amely azt írja, hogy Add IP, kattintson rá.
  8. Zynq keresése.

    1. Kattintson duplán a ZYNQ7 feldolgozó rendszerre,
    2. Ez a blokk megjelenik a blokk kialakításunkban.
  9. Látni fog egy zöld sávot, amely azt mondja, hogy Futtassa a blokk automatizálását, kattintson rá.
  10. Töltse le alább a zybo_zynq_def.xml fájlt.
  11. A Vivado alkalmazásban kattintson az „XPS -beállítások importálása” elemre, és válassza a „zybo_zynq_def.xml” lehetőséget.

    Ez előzetesen feltölti a Vivado blokkkonfigurációt a Zybo tábla összes beépített perifériájával és tű hozzárendelésével

  12. Kattintson duplán a ZYNQ blokkra.

    1. MIO konfiguráció

      1. Időzítő 0 engedélyezése (Alkalmazásfeldolgozó egység alatt - img 1)
      2. A Watchdog engedélyezése (az Alkalmazásfeldolgozó egység alatt- img 1)
      3. GPIO-> GPIO MIO engedélyezése (Alkalmazásfeldolgozó egység alatt - img 2)
      4. GPIO-> ENET Reset engedélyezése (I/O perifériák alatt- img 2)
    2. Óra beállítása

      Az FCLK0 letiltása (a PL Fabric Clocks alatt - img 3)

  13. Kattintson az OK gombra.
  14. „Futtassa a blokk -automatizálást” most.

    Lesz néhány kérdés a jelekkel kapcsolatban, mondja az OK -t

  15. Kattintson a „HDL csomagoló létrehozása” gombra.

    Szeretnénk másolni a generált burkolólapot, hogy lehetővé tegyük a felhasználói szerkesztéseket

  16. Kattintson az OK gombra.

2. lépés: Ernie PWM létrehozása Vivadóban

Ernie PWM létrehozása Vivadóban
Ernie PWM létrehozása Vivadóban
Ernie PWM létrehozása Vivadóban
Ernie PWM létrehozása Vivadóban

Ez a lépés létrehoz egy PWM IP -t az AXI könyvtáron keresztül küldött bemenetekkel.

  1. Hozzon létre AXI GPIO blokkot a jobb egérgombbal a háttérben, majd az "IP hozzáadása" gombra kattintva

    írja be a "AXI_GPIO" szót a keresősávba, és válassza ki ezt a csomagot

  2. Testreszabhatja az IP-t úgy, hogy duplán kattint az új axi_gpio_0 blokkra
    1. a GPIO alatt állítsa a GPIO szélességét 2 -re. Ezek a bitek lesznek a PWM_ON jel, amely meghajtja az egyes PWM modulpéldányokat.
    2. kattintson a "kétcsatornás engedélyezés" lehetőségre
    3. A GPIO 2 alatt állítsa a GPIO szélességét 2 -re. Ezek a bitek a PWM_FW jel, amely az egyes PWM modulpéldányok irányát állítja be.
  3. Kattintson jobb gombbal az axi_gpio_0 GPIO feliratú kimeneti portra, és válassza a "Külső létrehozása" lehetőséget

    1. Kattintson a GPIO feliratú új kimenetre, navigáljon a "Properties" fülre a bal eszköztáron, és módosítsa a nevet PWM_ON -ra
    2. Kattintson a GPIO2 feliratú új kimenetre, navigáljon a "Properties" fülre a bal eszköztáron, és módosítsa a nevet PWM_FW -re
  4. Válassza a Kapcsolat -automatizálás futtatása lehetőséget a tömbvázlat feletti zöld sávban.

    Ha manuálisan csatlakoztatja a portokat, előfordulhat, hogy az AXI -címek nincsenek konfigurálva, ami később kommunikációs problémákhoz vezethet

  5. A Flow Navigator ablaktáblán válassza ki a projektmenedzser -> Források hozzáadása elemet egy új egyéni IP -blokk létrehozásához

    1. válassza a "tervezési források hozzáadása vagy létrehozása" lehetőséget, majd nyomja meg a következő gombot
    2. kattintson a "fájl létrehozása" gombra, módosítsa a fájltípust "SystemVerilog" -ra, és írja be a "pwm" fájlt a fájlnév mezőbe, majd kattintson az OK gombra
    3. kattintson a Befejezés gombra
    4. figyelmen kívül hagyja a Modul meghatározása ablakot az OK megnyomásával (ezeket később felülírjuk)

      ha megkérdezi, hogy biztos -e, kattintson az Igen gombra

  6. A források lapon kattintson duplán a pwm.sv fájlra (amely a "Tervezési források/design_1_wrapper" mappában található)

    Másolja/illessze be a teljes SystemVerilog kódot az alább csatolt pwm.txt fájlból

3. lépés: Ernie TDOA létrehozása Vivadóban

Ernie TDOA létrehozása Vivadóban
Ernie TDOA létrehozása Vivadóban
Ernie TDOA létrehozása Vivadóban
Ernie TDOA létrehozása Vivadóban

Ez a lépés létrehoz egy TDOA IP -t, amelynek kimenete az AXI könyvtáron keresztül olvasható

  1. Hozzon létre AXI GPIO blokkot a jobb egérgombbal a háttérben, majd az "IP hozzáadása" gombra kattintva

    írja be a "AXI_GPIO" szót a keresősávba, és válassza ki ezt a csomagot

  2. Testreszabhatja az IP-t úgy, hogy duplán kattint az új axi_gpio_1 blokkra
    1. A GPIO alatt jelölje be az "Összes bemenet" négyzetet, és állítsa a GPIO szélességét 32 -re. Ez a busz lesz a két érzékelő közötti érkezési időkülönbség.
    2. az axi_gpio_1 blokkban kattintson a GPIO port melletti + jelre a gpio_io_i [31: 0] megjelenítéséhez.
  3. Kattintson a jobb gombbal a gpio_io_i [31: 0] feliratú axi_gpio_1 kimeneti portra, és válassza a "Külső létrehozása" lehetőséget

    Kattintson a gpio_io_i [31: 0] feliratú új bemenetre, navigáljon a "Properties" fülre a bal eszköztáron, és módosítsa a nevet TDOA_val -ra

  4. Válassza a Kapcsolati automatizálás futtatása lehetőséget a tömbvázlat feletti zöld sávban.

    Ha manuálisan csatlakoztatja a portokat, előfordulhat, hogy az AXI -címek nincsenek konfigurálva, ami később kommunikációs problémákhoz vezethet

  5. A Flow Navigator ablaktáblán válassza ki a projektmenedzser -> Források hozzáadása elemet egy új egyéni IP -blokk létrehozásához

    1. válassza a "tervezési források hozzáadása vagy létrehozása" lehetőséget, majd nyomja meg a következő gombot
    2. kattintson a "fájl létrehozása" gombra, módosítsa a fájltípust "SystemVerilog" -ra, és írja be a "tdoa" fájlt a fájlnév mezőbe, majd kattintson az OK gombra
    3. kattintson a Befejezés gombra
    4. figyelmen kívül hagyja a Modul meghatározása ablakot az OK megnyomásával (ezeket később felülírjuk)

      ha megkérdezi, hogy biztos -e, kattintson az Igen gombra

  6. A források lapon kattintson duplán a tdoa.sv fájlra (amely a „Tervezési források/design_1_wrapper” mappában található)

    Másolja/illessze be a teljes SystemVerilog kódot az alább csatolt tdoa.txt fájlból

4. lépés: Ernie csomagolása és exportálása

Csomagolás és exportálás Ernie
Csomagolás és exportálás Ernie
  1. Ellenőrizze, hogy a blokkdiagram úgy néz ki, mint a mellékelt képernyőkép
  2. A források lapon kattintson a jobb gombbal a design_1.bd elemre, és válassza a "HDL csomagoló létrehozása …" lehetőséget.

    1. Válassza a "Generált kimenet másolása a felhasználói szerkesztések engedélyezéséhez" lehetőséget, majd nyomja meg az "OK" gombot
    2. Másolja a kódot az alább mellékelt design_1_wrapper.txt fájlból, és illessze be a létrehozott design_1_wrapper.v kód helyére
    3. mentés design_1_wrapper.v
  3. A források lapon kattintson duplán a ZYBO_Master.xdc fájlra a Kényszerek/constrs1 alatt

    1. Másolja ki a kódot az alább csatolt ZYBO_Master.txt fájlból, és illessze be a meglévő ZYBO_Master.xdc kód helyére
    2. Vegye figyelembe a következő bemeneti/kimeneti csapokat:

      1. L15: PWM jel a bal motorhoz (Pmod JA2 a Zybo -n)
      2. L14: PWM jel a jobb motorhoz (Pmod JA8 a Zybo -n)
      3. V12: kapu bemenet az 1. hangérzékelőből (Pmod JE1 a Zybo -n)
      4. K16: kapu bemenet a 2. hangérzékelőből (Pmod JE2 a Zybo -n)
  4. A Folyamatnavigátor ablaktáblában kattintson a "Bitfolyam létrehozása" lehetőségre a Program és hibakeresés alatt

    ha úgy gondolja, hogy azonnal elkészült, akkor valószínűleg nem. komolyan, főzz egy teát

  5. Kattintson a Fájl-> Exportálás> Hardver létrehozása elemre

    Jelölje be a „Bitstream beillesztése” lehetőséget, és nyomja meg az OK gombot

  6. Kattintson a Fájl-> SDK indítása elemre

5. lépés: Ernie építése

Ernie építése
Ernie építése
Ernie építése
Ernie építése
  1. Szerelje fel a szervókat a szervo alvázára.
  2. A szervók adatlapját követve tegye a következőket:

    1. csatlakoztassa a szervók földjét a Zybo JA Pmod földelőcsapjaihoz (lásd a mellékelt pinout képet)
    2. csatlakoztassa a szervók tápcsatlakozóját az AA elemhez

      Azt tapasztaltuk, hogy amikor a szervókat csatlakoztatják a Zybo Vdd -jéhez, az alaplap túl sok áramot vesz fel, ami miatt az alaplap folyamatosan visszaáll

    3. csatlakoztassa a bemeneti jelcsapokat a Zybo megfelelő kimeneti csapjaihoz (bal: JA2, jobb: JA8)
  3. szerelje fel a hangérzékelőket az alváz elé, előre nézve, a lehető legközelebb tartva őket
  4. használja a hangérzékelő csatlakoztatási útmutatóját a hangérzékelők integrálásához

    1. csatlakoztassa az egyes hangérzékelők földelő és Vdd csapjait a földhöz és a Zdd JE Pmod Vdd csapjaihoz (lásd a mellékelt pinout képet)
    2. csatlakoztassa a bal hangérzékelő kaputűjét a JE1 -hez
    3. csatlakoztassa a jobb hangérzékelő kaputűjét a JE2 -hez

6. lépés: Ernie első BSP -je

Ernie első BSP -je
Ernie első BSP -je
Ernie első BSP -je
Ernie első BSP -je
  1. Hozzon létre egy BSP -t az imént létrehozott platform befejezéséhez.

    Ezt a Fájl -> Új -> Board Support Package segítségével érheti el

  2. Egy varázsló jelenik meg, amely segít a BSP létrehozásában.

    1. Ezt a BSP -t szeretnénk összekapcsolni a most létrehozott platformunkkal
    2. A hardverplatformnak összhangban kell lennie a most létrehozottal (lásd img 1)
    3. A CPUunk a _0 CPU lesz.
    4. Kattintson a Befejezés gombra
    5. Feltétlenül ellenőrizze, hogy az lwip141 -ben szerepel -e a bsp -je a felugró ablakban (lásd img 2)

7. lépés: FreeRTOSinging Ernie

  1. Töltse le a FreeRTOS legújabb kiadását a Sourceforge -ból.

    Ha a letöltés végrehajtható, akkor futtassa le a FreeRTOS fájlok kivonásához a projektkönyvtárba

  2. Tartsa nyitva az SDK -t, majd kattintson a Fájl -> Importálás gombra.
  3. Kattintson az Általános-> Egy meglévő munkaterületről lehetőségre, majd navigálni szeretnénk a FreeRTOS letöltési helyére.
  4. Demónk a FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 -ben található. A mappa kiválasztásakor három projektet kell látnunk (a kódunk (OS), ez a BSP és a HW Platform).

    CSAK az RTOSDemo importálása az aktuális munkaterületre

  5. Minden „kék” mappaprojektnél módosítsa a hivatkozott BSP -t

    1. Kattintson a jobb egérgombbal, és válassza a „Hivatkozott BSP módosítása” lehetőséget.
    2. Válassza ki az éppen létrehozott BSP -t a Zybook számára
    3. A kódszerkesztés a Xilinx SDK Blue mappáiban a tényleges kódprojektek.

8. lépés: Ernie C -kódjának importálása

  1. Az RTOSDemo/src könyvtárban írja felül a meglévő main.c fájlt az ide csatolt main.c fájllal.
  2. Másolja a main_sound.c fájlt az RTOSDemo/src könyvtárba.

9. lépés: Ernie hibakeresése

  1. Válassza a Futtatás -> Hibakeresési konfigurációk lehetőséget
  2. A bal oldali ablaktáblán hozzon létre egy új System Debugger futtatást
  3. A Célbeállítás lapon kattintson a

    válassza a „Teljes rendszer visszaállítása” lehetőséget, hogy mind az, mind a ps7_init ki legyen választva

  4. Most válassza az Alkalmazás fület.

    1. Válassza az „alkalmazás letöltése” lehetőséget
    2. Állítsa a cortexa9_0 magot „megállás a program belépésekor” értékre
    3. Kattintson az Alkalmazás és hibakeresés gombra.
  5. Ellenőrizze, hogy nincs -e hiba a hibakeresési folyamatban
  6. Figyelemmel kísérve a robotot, nyomja meg a Folytatás gombot, amíg a program fut, anélkül, hogy elérné a töréspontokat
  7. A robotnak most fordulnia és hangos zajok felé kell haladnia. Hurrá!

10. lépés: Ernie autonómvá tétele

  1. Miután a projekt készen áll az indulásra (problémamentesen futtatható a hibakeresőn keresztül), készen áll arra, hogy betöltse azt az alaplap flash memóriájába.
  2. Hozza létre az úgynevezett „első lépcsőfokú rendszerbetöltő” (FSBL) projektet, és tartalmazza az összes utasítást, amelyre a táblának szüksége lesz a projektfájlok (bitfolyam és operációs rendszer) betöltéséhez az indításkor.

    1. Válassza ki: Fájl-> Új-> Alkalmazásprojekt, és a következő ablaknak kell megjelennie.
    2. Nevezze el, amit akar (pl. „FSBL”)
    3. Győződjön meg arról, hogy a hardverplatform az, amellyel dolgozik
    4. Nyomja meg a következő gombot (ne nyomja meg a Befejezés gombot)
    5. Válassza ki a Zynq FSBL sablont
    6. Kattintson a Befejezés gombra.
  3. A létrehozási folyamat befejezése után tudni fogja, hogy minden működött -e, ha a következő két új mappát látja a Project Explorer ablakban.
  4. Boot kép létrehozása Most létre kell hoznia a Boot képet.

    1. Kattintson a jobb gombbal a projekt mappájára (ebben az esetben az enyém az „RTOSDemo”)
    2. Kattintson a „Boot image létrehozása” lehetőségre a legördülő menüben
    3. Ha minden megfelelően van összekapcsolva, a projekt tudja, hogy milyen fájlokra van szüksége, és a következő ablak az alábbiak szerint fog kinézni (a lényeg az, hogy 3 partíciója van a Boot image szakasz alatt, a bootloader, a bitfájl és a projektek.elf fájlja).

      Ha nem ez a helyzet, akkor valószínűleg valami baj van a projekt összekapcsolásával. Győződjön meg arról, hogy a projektmappák össze vannak kapcsolva a megfelelő BSP -kkel

    4. Kattintson a „Kép létrehozása” gombra
  5. A szoftverben végzett utolsó lépés az, hogy most villanja fel a korábban létrehozott képet a tábla memóriájába
    1. Válassza ki az SDK fő eszköztárából a Xilinx Eszközök-> Flash memória programozása lehetőséget
    2. Győződjön meg arról, hogy a megfelelő hardverplatformot választotta ki, és hogy a képfájl elérési útja megfelelően mutat az előző lépésben létrehozott. BIN fájlra.
    3. Válassza ki a „qspi single” lehetőséget a Flash típusból
    4. Jelölje be az „Ellenőrizze vaku után” jelölőnégyzetet az integritás biztosítása érdekében, de nincs rá szükség
  6. A tábla konfigurálása Végül meg kell győződnie arról, hogy a táblák programozási módjának jumperje (JP5) megfelelően van beállítva a qspi -ből (amely az imént villogott) való indítást választja a BootROM futtatásakor.
  7. Most egyszerűen kapcsolja be a készüléket, és győződjön meg arról, hogy a „Logikai konfiguráció kész LED” (LED 10) zölden világít.

11. lépés: Ernie aranyossá tétele

  1. Szőrme
  2. Sok prém
  3. Nagy szeme!
  4. … cilinder

Ajánlott: