Мазмұны:
- 1 -қадам: Эрни үшін Vivado -да жоба орнату
- 2 -қадам: Vivado -да Эрни PWM құру
- 3 -қадам: Vivado -да Эрни TDOA құру
- 4 -қадам: Эрниді орау және экспорттау
- 5 -қадам: Эрниді құру
- 6 -қадам: Эрнидің бірінші BSP
- 7 -қадам: FreeRTOS -тың Эрни
- 8 -қадам: Эрнидің С кодын импорттау
- 9 -қадам: Эрниді жөндеу
- 10 -қадам: Эрниді автономды ету
- 11 -қадам: Эрниді сүйкімді ету
Бейне: Эрниді қалай жасауға болады: 11 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл Zybo тақтасын қолдана отырып, сіздің роботтан кейінгі автономды дыбыс Эрниді қалай құруға болатындығы туралы оқулық. Онда: Vivado-да жоба құру, FPGA-да PWM тәрізді серво-қозғалтқыш драйверлерін құру, екі дыбыс датчигі бар интерфейс, IP-тің келуінің айырмашылығын жасау, freeRTOS-ты пайдалану және аккумуляторлық топтамадан зибоны іске қосу. Бұл Cal Poly SLO -дағы нақты уақыттағы операциялық жүйелер класына (CPE 439) арналған біздің соңғы жобамыз болды.
Құрал -жабдықтар тізімі:
- 1 - ZYBO Zynq 7000 даму тақтасы
- 2 - Параллакс үздіксіз айналу сервисі
- 2 - дыбыс сенсоры (SparkFun дыбыс детекторы)
- 1 - 5В литий -иондық USB батареялар жиынтығы (тақта үшін)
- 4 - АА батареялары (серво үшін)
- 1 - AA батареялар жинағы (4 батарея ұясы бар)
- 1 - Micro USB кабелі
- 1 - Нан тақтасы
- көп - еркектен ерге дейінгі сымдар
- 1 - сервистік шасси
Бағдарламалық қамтамасыз етуге қойылатын талаптар:
- Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
1 -қадам: Эрни үшін Vivado -да жоба орнату
- Сиқыршы ашылады
- Келесі түймесін басыңыз
-
Жобаға келесі атау беріңіз
- Ешқашан бос орындары бар жоба атауын немесе каталог жолын қолданбаңыз !!!!!
- Бұл RTL жобасы болады.
- Біз дереккөздерді көрсеткіміз келмейді
-
Келесі түймесін басу арқылы біз Бөлік бетіне өтеміз. Біз ZYNQ XC7Z010-1CLG400C қолданамыз.
- Vivado-да Zybo алдын ала анықталған тақталардың бірі ретінде тізімделмеген. «Бөлшектерді» таңдаңыз, содан кейін xc7z010clg400-1 іздеңіз.
- Егер сіз қате бөлікті қате таңдасаңыз, сіз чиптерді оңай ауыстыра аласыз: Құралдар -> Жоба параметрлері -> Жалпы және «Жоба құрылғысының» оң жағындағы нүктелерді басыңыз.
-
Блок дизайнын жасау түймешігін басыңыз.
Әзірге design_1 деп атаңыз
- Сіз IP қосу, жасыл батырманы басыңыз, оны басыңыз.
-
Zynq іздеңіз.
- ZYNQ7 өңдеу жүйесін екі рет нұқыңыз,
- Бұл блок біздің блок дизайнында пайда болады.
- Сіз «Блокты автоматтандыруды іске қосыңыз» деген жасыл жолақты көресіз, оны басыңыз.
- Төменде zybo_zynq_def.xml жүктеп алыңыз.
-
Vivado -да «XPS параметрлерін импорттау» түймесін басып, «zybo_zynq_def.xml» таңдаңыз.
Бұл Vivado блогының конфигурациясын Zybo тақтасының барлық кірістірілген перифериялық қондырғыларымен және түйреуіштермен алдын ала толтырады
-
ZYNQ блогын екі рет шертіңіз.
-
MIO конфигурациясы
- Таймер 0 қосу (Қолданбалы процессор бірлігі астында - img 1)
- Watchdog функциясын қосыңыз (Қолданбалы процессор бірлігі img 1 астында)
- GPIO-> GPIO MIO қосу (Қолданбалы процессордың астында - img 2)
- GPIO-> ENET қалпына келтіруді қосу (енгізу-шығару перифериялық құрылғыларының астында- img 2)
-
Сағат конфигурациясы
FCLK0 өшіру (PL Fabric Clock астында - img 3)
-
- Ok түймешігін басыңыз.
-
Қазір «Блокты автоматтандыруды іске қосыңыз».
Сигналдарға қатысты сұрақтар болады, Жарайды деп айтыңыз
-
«HDL орауышын жасау» түймесін басыңыз.
Біз пайдаланушы өңдеуге рұқсат беру үшін жасалған орауышты көшіргіміз келеді
- OK түймесін басыңыз.
2 -қадам: Vivado -да Эрни PWM құру
Бұл қадам AXI кітапханасы арқылы жіберілетін кірістері бар PWM IP жасайды.
-
Фонды тінтуірдің оң жақ түймесімен басып, «IP қосу» түймесін басу арқылы AXI GPIO блогын жасаңыз.
іздеу жолағына «AXI_GPIO» теріңіз және осы буманы таңдаңыз
-
Axi_gpio_0 жаңа блогын екі рет басу арқылы IP-ді қайта баптаңыз
- GPIO астында GPIO енін 2 -ге орнатыңыз. Бұл биттер әрбір PWM модулінің данасын басқаратын PWM_ON сигналы болады.
- «қосарланған арнаны қосу» түймесін басыңыз
- GPIO 2 астында GPIO енін 2 -ге орнатыңыз. Бұл биттер PWM_FW модулінің әрбір данасының бағытын орнататын сигнал болады.
-
Axio_gpio_0 GPIO деп аталатын шығыс портын тінтуірдің оң жақ түймесімен нұқыңыз және «Сыртқы етуді» таңдаңыз.
- GPIO деп аталатын жаңа шығуды нұқыңыз және құралдар тақтасының сол жағындағы «қасиеттер» қойындысына өтіңіз және атауды PWM_ON етіп өзгертіңіз.
- GPIO2 деп белгіленген жаңа шығуды нұқыңыз және құралдар тақтасының сол жағындағы «қасиеттер» қойындысына өтіңіз және атауды PWM_FW етіп өзгертіңіз.
-
Блок -схеманың үстіндегі жасыл баннерде Connection Automation іске қосуды таңдаңыз.
Егер сіз порттарды қолмен қоссаңыз, AXI мекенжайлары конфигурацияланбауы мүмкін, бұл кейінірек байланыс мәселелеріне әкеледі
-
Flow Navigator панелінде жаңа реттелетін IP блогын құру үшін жоба менеджері -> Дереккөздерді қосу тармағын таңдаңыз
- «Дизайн көздерін қосу немесе жасау» тармағын таңдап, келесіге басыңыз
- «Файл жасау» түймесін басыңыз, файл түрін «SystemVerilog» етіп өзгертіңіз және файл атауы өрісіне «pwm» деп енгізіңіз, содан кейін OK түймесін басыңыз.
- Аяқтау түймешігін басыңыз
-
OK түймесін басу арқылы Define Module терезесін елемеңіз (біз оларды кейін қайта жазамыз)
егер сіз сенімді екеніңізді сұраса, Иә түймесін басыңыз
-
Дереккөздер қойындысында pwm.sv файлын екі рет шертіңіз («Дизайн көздері/design_1_wrapper» бөлімінде орналасқан)
Төменде берілген pwm.txt файлынан SystemVerilog кодының барлығын көшіру/қою
3 -қадам: Vivado -да Эрни TDOA құру
Бұл қадам TDOA IP шығарады, оның шығысын AXI кітапханасы арқылы оқуға болады
-
Фонды тінтуірдің оң жақ түймесімен басып, «IP қосу» түймесін басу арқылы AXI GPIO блогын жасаңыз.
іздеу жолағына «AXI_GPIO» теріңіз және осы буманы таңдаңыз
-
Axi_gpio_1 жаңа блогын екі рет басу арқылы IP-ді қайта баптаңыз
- GPIO астында «Барлық кірістер» ұяшығына белгі қойыңыз және GPIO енін 32 -ге орнатыңыз. Бұл шина екі сенсордың келу уақыт айырмашылығы болады.
- axi_gpio_1 блогының ішінде gpio_io_i [31: 0] ашу үшін GPIO портының жанындағы + белгісін басыңыз.
-
Gpio_io_i [31: 0] деп аталатын axi_gpio_1 шығыс портын тінтуірдің оң жақ түймесімен нұқыңыз және «Сыртқы етуді» таңдаңыз.
Gpio_io_i [31: 0] деп белгіленген жаңа енгізуді нұқыңыз және құралдар тақтасының сол жағындағы «қасиеттер» қойындысына өтіңіз және атауды TDOA_val етіп өзгертіңіз
-
Блок -схеманың үстіндегі жасыл баннерде Connection Automation іске қосуды таңдаңыз.
Егер сіз порттарды қолмен қоссаңыз, AXI мекенжайлары конфигурацияланбауы мүмкін, бұл кейінірек байланыс мәселелеріне әкеледі
-
Flow Navigator аймағында жаңа реттелетін IP блогын құру үшін жоба менеджері -> Дереккөздерді қосу тармағын таңдаңыз
- «Дизайн көздерін қосу немесе жасау» тармағын таңдап, келесіге басыңыз
- «Файл жасау» түймесін басыңыз, файл түрін «SystemVerilog» етіп өзгертіңіз және файл атауы өрісіне «tdoa» теріңіз, содан кейін OK түймесін басыңыз.
- Аяқтау түймешігін басыңыз
-
OK түймесін басу арқылы «Модульді анықтау» терезесін елемеңіз (біз оларды кейін қайта жазамыз)
егер сіз сенімді екеніңізді сұраса, Иә түймесін басыңыз
-
Дереккөздер қойындысында tdoa.sv файлын екі рет нұқыңыз («Дизайн көздері/design_1_wrapper» бөлімінде орналасқан)
Төменде берілген tdoa.txt файлынан SystemVerilog кодының барлығын көшіру/қою
4 -қадам: Эрниді орау және экспорттау
- Блок -схема скриншотқа қосылғанын тексеріңіз
-
Дереккөздер қойындысында design_1.bd тінтуірдің оң жақ түймешігімен нұқыңыз және «HDL орауыш жасау …» таңдаңыз.
- «Пайдаланушы өңдеуге рұқсат беру үшін шығарылған өнімді көшіруді» таңдаңыз, содан кейін «ОК» түймесін басыңыз.
- Төменде берілген design_1_wrapper.txt ішінен кодты көшіріп, оны design_1_wrapper.v кодының орнына қойыңыз.
- design_1_wrapper.v сақтаңыз
-
Көздер қойындысында ZYBO_Master.xdc файлын шектеулер/constrs1 астынан екі рет нұқыңыз.
- Төменде берілген ZYBO_Master.txt кодын көшіріп, оны ZYBO_Master.xdc кодының орнына қойыңыз.
-
Келесі кіріс/шығыс түйреуіштеріне назар аударыңыз:
- L15: сол қозғалтқыш үшін PWM сигналы (Zybo -дағы Pmod JA2)
- L14: оң қозғалтқыш үшін PWM сигналы (Zybo -дағы Pmod JA8)
- V12: 1 дыбыс сенсорынан қақпа кірісі (Zybo -дағы Pmod JE1)
- K16: 2 дыбыс сенсорынан кіру қақпасы (Zybo -дағы Pmod JE2)
-
Flow Navigator панелінде Бағдарлама мен күйін келтіру астындағы «Ағымдық ағынды жасау» түймесін басыңыз
Егер сіз мұны бірден жасалды деп ойласаңыз, олай емес шығар. байсалды түрде, шай жасаңыз
-
Файл-> Экспорттау-> Жабдықты жасау түймешігін басыңыз
«Ағынды қосу» құсбелгісін қойыңыз және OK түймесін басыңыз
- Файл-> SDK іске қосу түймешігін басыңыз
5 -қадам: Эрниді құру
- Серво серво шассиіне орнатыңыз.
-
Серверлерге арналған деректер кестесінен кейін келесі әрекеттерді орындаңыз:
- сервалардың жерін Zybo JA Pmod -дегі түйреуіштерге қосыңыз (бекітілген түйреуіш суретін қараңыз)
-
сервалардың қуат штырын AA батарея жинағына қосыңыз
Серво Zybo Vdd -ке қосылған кезде, тақта тым көп ток тартатынын, бұл тақтаның үздіксіз ысырылуына әкелетінін анықтадық
- кіріс сигналының түйреуіштерін Zybo сәйкес шығыс түйреуіштеріне жалғаңыз (сол жақта: JA2, оң жақта: JA8)
- дыбыс датчиктерін шассидің алдыңғы жағына, алға қаратып, мүмкіндігінше бір -біріне жақын ұстаңыз
-
дыбыс датчиктерін біріктіру үшін дыбыс сенсорының қосқыш нұсқаулығын пайдаланыңыз
- әр дыбыс датчигінің жерге және Vdd түйреуіштерін жерге қосыңыз және Zybo JE Pmod -дағы Vdd түйреуіштерін қосыңыз (бекітілген түйреуіш суретін қараңыз)
- сол жақ дыбыс сенсорының қақпасының штырын JE1 -ге жалғаңыз
- дыбыс датчигінің қақпағының штырьін JE2 -ге жалғаңыз
6 -қадам: Эрнидің бірінші BSP
-
Біз жасаған платформаны аяқтау үшін BSP құрыңыз.
Сіз мұны File -> New -> Board Support Pack арқылы ала аласыз
-
BSP құруға көмектесетін шебер ашылады.
- Біз бұл BSP -ті біз жасаған платформамен байланыстырғымыз келеді, сондықтан
- Аппараттық платформа біз жасаған платформаға сәйкес келуі керек (1 -суретті қараңыз)
- Біздің процессор _0 процессор болады.
- Аяқтау түймешігін басыңыз
- Ашылған терезеде bsp қосу үшін lwip141 белгісін тексеруді ұмытпаңыз (2 -суретті қараңыз)
7 -қадам: FreeRTOS -тың Эрни
-
Sourceforge -тен FreeRTOS соңғы шығарылымын жүктеп алыңыз.
Егер жүктеу орындалатын болса, FreeRTOS файлдарын жоба каталогына шығару үшін оны іске қосыңыз
- SDK ашық күйде сақтаңыз және Файл -> Импорттау түймешігін басыңыз.
- Біз Жалпы-> Бар жұмыс кеңістігінен шерткіміз келеді, содан кейін FreeRTOS жүктелген жерге барғымыз келеді.
-
Біздің демонстрация FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702 ішінде орналасады. Бұл қалтаны таңдаған кезде біз үш жобаның шығатынын көруіміз керек (біздің коды (ОЖ), бұл BSP және HW платформасы).
Тек RTOSDemo бағдарламасын ағымдағы жұмыс кеңістігіне импорттаңыз
-
Барлық «көк» қалта жобаларында сілтеме жасалған BSP өзгертіледі
- Тінтуірдің оң жақ түймешігімен нұқыңыз және «Сілтеме жасалған BSP өзгертуді» таңдаңыз.
- Жаңа Zybo үшін жасаған BSP таңдаңыз
- Xilinx SDK Blue қалталарында кодты өңдеу - бұл нақты кодтық жобалар.
8 -қадам: Эрнидің С кодын импорттау
- RTOSDemo/src каталогында бар main.c файлын осында тіркелген main.c файлымен қайта жазыңыз.
- Main_sound.c файлын RTOSDemo/src каталогына көшіріңіз.
9 -қадам: Эрниді жөндеу
- Іске қосу -> Түзету конфигурацияларын таңдаңыз
- Сол жақ тақтада жүйелік түзету құралының жаңа нұсқасы жасалады
-
Мақсатты орнату қойындысында,
ps7_init екеуі де таңдалуы үшін «Бүкіл жүйені қалпына келтіру» таңдаңыз
-
Енді Қолданба қойындысын таңдаңыз.
- «Қолданбаны жүктеуді» таңдаңыз
- Cortexa9_0 ядросын «бағдарламаға кіруді тоқтату» күйіне орнатыңыз.
- Қолдану мен жөндеуді басыңыз.
- Жөндеу процесінде қателер жоқ екенін тексеріңіз
- Роботты мұқият қадағалап, бағдарлама тоқтау нүктелеріне соқпай жұмыс жасамайынша Жалғастыру түймесін басыңыз
- Робот енді бұрылып, қатты дыбыстарға қарай жылжуы керек. Алақай!
10 -қадам: Эрниді автономды ету
- Сіздің жобаңыз дайын болғаннан кейін (сіз отладчик арқылы еш қиындықсыз жүгіре аласыз) сіз оны тақтадағы флэш -жадқа жүктеуге дайынсыз.
-
«Бірінші саты жүктеуші» (FSBL) жобасы деп аталатын жобаны жасаңыз және іске қосу кезінде сіздің жобалық файлдарыңызды (бит ағыны мен ОЖ) жүктеу үшін сіздің тақтаңызға қажет барлық нұсқауларды қамтиды.
- Таңдаңыз: Файл-> Жаңа-> Қолданбалы жоба және келесі терезе пайда болуы керек.
- Сіз қалаған нәрсені атаңыз (мысалы, «FSBL»)
- Аппараттық платформа сіз жұмыс істейтін платформа екеніне көз жеткізіңіз
- Келесі түймесін басыңыз (Аяқтау түймесін баспаңыз)
- Zynq FSBL үлгісін таңдаңыз
- Аяқтау түймешігін басыңыз.
- Жасау процесі аяқталғаннан кейін сіз Project Explorer терезесінде келесі екі жаңа қалтаны көрсеңіз, бәрі жұмыс істегенін білесіз.
-
Жүктеу кескінін жасау Енді сізге жүктеу кескінін жасау қажет болады.
- Жоба қалтасын тінтуірдің оң жақ түймесімен нұқыңыз (бұл жағдайда менікі «RTOSDemo» деп аталады)
- Ашылмалы тізімнен «Жүктеу кескінін жасау» түймесін басыңыз
-
Егер бәрі дұрыс байланыстырылған болса, жоба қандай файлдарға мұқтаж екенін біледі және төменде көрсетілгендей келесі терезе пайда болады (кілт - сізде жүктеу кескіні бөлімінде 3 бөлім бар, жүктеуші, сіздің бит файлыңыз және жобаларыңыз.elf файлы)).
Егер бұлай болмаса, сіздің жобаны байланыстыруда қате болуы мүмкін. Жоба қалталары олардың тиісті BSP -лерімен байланыстырылғанына көз жеткізіңіз
- «Кескін жасау» түймесін басыңыз
-
Бағдарламалық жасақтаманың соңғы қадамы - бұрын жасалған суретті тақта жадына жыпылықтау
- SDK негізгі құралдар тақтасынан Xilinx Tools-> Program Flash Memory таңдаңыз
- Дұрыс жабдық платформасы таңдалғанына және кескін файлының жолы алдыңғы қадамда жасалған. BIN файлына дұрыс бағытталғанына көз жеткізіңіз.
- Flash түрінен «qspi single» таңдаңыз
- Тұтастықты қамтамасыз ету үшін «Жарқылдан кейін тексеру» құсбелгісін қойыңыз, бірақ бұл қажет емес
- Тақтаны конфигурациялаңыз Ақырында, BootROM іске қосылған кезде qspi -ден жүктеуді таңдау үшін (JP5) тақталарды бағдарламалау режимінің қосқышы дұрыс орнатылғанына сенімді болуыңыз керек.
- Енді құрылғыны қуаттандырып, «Logic Configuration Done LED» (LED 10) жасыл болып жанатынын тексеріңіз.
11 -қадам: Эрниді сүйкімді ету
- Жүн
- Жүн көп
- Үлкен көздер!
- … бас киім
Ұсынылған:
DIY қалай керемет көрінетін сағатты жасауға болады - StickC - Оңай жасауға болады: 8 қадам
DIY қалай керемет көрінетін сағатты жасауға болады - StickC - Оңай жасауға болады: Бұл оқулықта біз ESP32 M5Stack StickC -ті Arduino IDE және Visuino көмегімен СКД -де уақытты көрсету үшін қалай бағдарламалауды, сонымен қатар StickC түймелерінің көмегімен уақытты орнатуды үйренеміз
Linux жүктеу дискісін қалай құруға болады (және оны қалай қолдануға болады): 10 қадам
Linux жүктеу дискісін қалай құруға болады (және оны қалай қолдануға болады): Бұл Linux -тен қалай бастау керектігі туралы қарапайым кіріспе, атап айтқанда Ubuntu
ARDUINO NANO/MINI ҚАЛАЙ ЖАСАУҒА БОЛАДЫ - Жүктеушіні қалай жағуға болады: 5 қадам
ARDUINO NANO/MINI ҚАЛАЙ ЖАСАУҒА БОЛАДЫ | Bootloader қалай жазылады: Бұл нұсқаулықта мен сізге Scratch -тен Arduino MINI -ді қалай жасау керектігін көрсетемін. Бұл нұсқаулықта жазылған процедураны жобаның жеке талаптарына сәйкес кез келген arduino тақталарын жасау үшін қолдануға болады. Жақсы түсіну үшін бейнені қараңыз
Ата мен әженің күнтізбесін қалай жасауға болады & Скрапбук (егер сіз скрапбоны қалай жасау керектігін білмесеңіз де): 8 қадам (суреттермен)
Ата мен әженің күнтізбесін қалай жасауға болады & Скрапбук (егер сіз скрапбоны қалай жасау керектігін білмесеңіз де): Бұл әжелер мен әжелер үшін өте үнемді (және өте бағалы!) Мерекелік сыйлық. Мен осы жылы әрқайсысы 7 доллардан төмен 5 күнтізбе жасадым. Материалдар: сіздің балаңыздың, балаларыңыздың, жиендеріңіздің, жиендеріңіздің, иттердің, мысықтардың немесе басқа туыстарыңыздың 12 керемет суреті12 түрлі бөліктер
Гитара динамигінің қорабын қалай құруға болады немесе стереоға арналған екеуін қалай құруға болады: 17 қадам (суреттермен)
Гитара динамигінің қорабын қалай құруға болады немесе стереоға арналған екеуін қалай құруға болады?: Мен жаңа гитара колонкасын өзім құрып жатқан түтік күшейткішпен бірге алғысы келді. Динамик менің дүкенімде қалады, сондықтан оған ерекше нәрсе қажет емес. Толекс жабындысы өте оңай зақымдалып кетуі мүмкін, сондықтан мен жеңіл құмнан кейін сыртқа қара шаштым