Мазмуну:
- 1 -кадам: Эрни үчүн Vivadoдо долбоор түзүү
- 2 -кадам: Vivadoдо Эрнинин PWM түзүү
- 3 -кадам: Vivadoдо Эрнинин TDOAсын түзүү
- 4 -кадам: Эрнини ороо жана экспорттоо
- 5 -кадам: Эрни куруу
- 6 -кадам: Эрни биринчи BSP
- 7 -кадам: FreeRTOS'ing Эрни
- 8 -кадам: Эрнинин С кодун импорттоо
- 9 -кадам: Эрнини мүчүлүштүктөрдү оңдоо
- 10 -кадам: Эрнини автономдуу кылуу
- 11 -кадам: Эрнини сүйкүмдүү кылуу
Video: Эрнини кантип жасоо керек: 11 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:38
Бул Zybo Boardтун жардамы менен роботту ээрчиген Эрнини кантип куруу боюнча үйрөткүч. Анда: Vivado'до долбоор түзүү, FPGAда PWM сыяктуу сервопривод драйверлерди түзүү, эки үн сенсору менен интерфейс, келүү IP убактысынын айырмасын түзүү, freeRTOSту колдонуу жана зибону батарейкадан өчүрүү. Бул Cal Poly SLOдогу Real Time Operating Systems (CPE 439) классынын акыркы долбоору болгон.
Жабдуулардын тизмеси:
- 1 - ZYBO Zynq 7000 өнүктүрүү кеңеши
- 2 - Parallax Үзгүлтүксүз айлануу Servo
- 2 - Үн сенсору (SparkFun Үн детектору)
- 1 - 5v литий -ион USB батарейка пакети (такта үчүн)
- 4 - АА батареялары (серволор үчүн)
- 1 - AA батарейкасы (4 батарея уячасы)
- 1 - Микро USB кабели
- 1 - нан тактасы
- көп - Эркектен Эркек зымдарына
- 1 - Servo шасси
Программалык камсыздоого талаптар:
- Xilinx Vivado Design Suite 2016.2
- Digilent Adept 2.16.1
1 -кадам: Эрни үчүн Vivadoдо долбоор түзүү
- Сыйкырчы калкып чыгат
- Кийинкини басыңыз
-
Долбоордун кийинки аталышы
- Эч качан проекттин атын же боштуктары бар каталог жолун колдонбоңуз !!!!!
- Бул RTL долбоору болот.
- Биз булактарды көрсөтүүнү каалабайбыз
-
Кийинкини чыкылдатып, Бөлүк барагына өтөбүз. Биз ZYNQ XC7Z010-1CLG400C колдонуп жатабыз.
- Vivadoda Zybo алдын ала тактайлардын бири катары көрсөтүлгөн эмес. Тандоо: "бөлүктөрдү" анан xc7z010clg400-1 изде.
- Эгерде сиз туура эмес бөлүктү жаңылыштык менен тандасаңыз, чиптерди оңой алмаштыра аласыз: Куралдар -> Проект Орнотуулары -> Жалпы жана "Проект Түзмөгүнүн" оң жагындагы чекитти басыңыз.
-
Блоктун дизайнын түзүү чыкылдатыңыз.
Азырынча ага design_1 деп ат коюңуз
- Сиз IP кошуу, аны чыкылдатуу деген жашыл тилкени көрөсүз.
-
Zynq изде.
- ZYNQ7 иштетүү тутумун эки жолу чыкылдатыңыз,
- Бул блок биздин блоктун дизайнында пайда болот.
- Сиз Run Block Automation деп аталган жашыл тилкени көрөсүз, аны басыңыз.
- Төмөндө zybo_zynq_def.xml жүктөп алыңыз.
-
Vivadoдо "XPS Орнотууларын Импорттоону" чыкылдатып, "zybo_zynq_def.xml" тандаңыз
Бул Vivado блогунун конфигурациясын Zybo тактасынын бардык орнотулган перифериялык жабдуулары жана пин тапшыруулары менен алдын ала толтурат
-
ZYNQ блогун эки жолу чыкылдатыңыз.
-
MIO конфигурациясы
- Таймерди 0 иштетүү (Application Processor Unit астында - img 1)
- Watchdog иштетүү (Application Processor Unit- img 1 астында)
- GPIO-> GPIO MIO иштетүү (Application Processor Unit астында - img 2)
- GPIO-> ENET баштапкы абалга келтирүүнү иштетүү (I/O перифериалдары астында- img 2)
-
Сааттын конфигурациясы
FCLK0 өчүрүү (PL Fabric Clocks астында - img 3)
-
- Ок басыңыз.
-
"Блокту автоматташтырууну иштетүү" азыр.
Сигналдар жөнүндө кээ бир суроолор болот, макул деп айт
-
"HDL орогучту түзүү" чыкылдатыңыз.
Колдонуучунун түзөтүүлөрүнө уруксат берүү үчүн түзүлгөн ороону көчүргүбүз келет
- OK басыңыз.
2 -кадам: Vivadoдо Эрнинин PWM түзүү
Бул кадам AXI китепканасы аркылуу жөнөтүлгөн киргизүү менен PWM IP түзөт.
-
Фонду оң баскыч менен чыкылдатып, "IP кошуу" баскычын басуу менен AXI GPIO блогун түзүңүз.
издөө тилкесине "AXI_GPIO" терип, бул топтомду тандаңыз
-
Жаңы axi_gpio_0 блогун эки жолу чыкылдатуу менен IPди кайра ыңгайлаштырыңыз
- GPIO астында GPIO туурасын 2ге коюңуз. Бул биттер PWM_ON модулунун ар бир нускасын айдай турган PWM_ON сигналы болот.
- "кош каналды иштетүүнү" чыкылдатыңыз
- GPIO 2 астында GPIO туурасын 2ге коюңуз. Бул биттер PWM_FW сигналы болуп, ар PWM модулунун мисалынын багытын белгилейт.
-
GPIO деп аталган axi_gpio_0 чыгаруу портун оң баскыч менен чыкылдатып, "Тышкы кылуу" тандаңыз
- GPIO деп аталган жаңы өндүрүштү чыкылдатыңыз жана сол панелдеги "касиеттер" өтмөгүнө өтүңүз жана атын PWM_ON деп өзгөртүңүз
- GPIO2 деп аталган жаңы өндүрүштү чыкылдатыңыз жана сол панелдеги "касиеттер" өтмөгүнө өтүңүз жана атын PWM_FW деп өзгөртүңүз
-
Блок -схеманын үстүндөгү жашыл баннерде Connection Automation Run дегенди тандаңыз.
Эгерде сиз порттарды кол менен туташтырсаңыз, AXI даректери конфигурацияланбай калышы мүмкүн, бул кийинчерээк байланыш көйгөйлөрүнө алып келет
-
Flow Navigator панелинен, жаңы менчик IP блогун түзүү үчүн долбоордун менеджери -> Булактарды кошууну тандаңыз
- "Дизайн булактарын кошуу же түзүү" тандап, кийинки баскычты басыңыз
- "Файл түзүү" баскычын чыкылдатыңыз, файлдын түрүн "SystemVerilog" деп өзгөртүңүз жана файлдын аталышына "pwm" деп жазыңыз, андан кийин ОК басыңыз.
- Finish басыңыз
-
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 астындагы "All Inputs" кутучасын белгилеңиз жана GPIO туурасын 32 деп коюңуз. Бул автобус эки сенсордун келген убактысынын айырмасы болот.
- axi_gpio_1 блогунун ичинде GPIO портунун жанындагы + баскычын чыкылдатып gpio_io_i [31: 0] ачыңыз.
-
Gpio_io_i [31: 0] деп белгиленген axi_gpio_1 чыгаруу портун оң баскыч менен чыкылдатып, "Тышкы кылуу" тандаңыз
Gpio_io_i [31: 0] деп аталган жаңы киргизүүнү чыкылдатып, сол куралдар тилкесиндеги "касиеттер" өтмөгүнө өтүңүз жана атын TDOA_val деп өзгөртүңүз
-
Блок -схеманын үстүндөгү жашыл баннерде Connection Automation Run дегенди тандаңыз.
Эгерде сиз порттарды кол менен туташтырсаңыз, AXI даректери конфигурацияланбай калышы мүмкүн, бул кийинчерээк байланыш көйгөйлөрүнө алып келет
-
Flow Navigator панелинен, жаңы менчик IP блогун түзүү үчүн долбоордун менеджери -> Булактарды кошууну тандаңыз
- "Дизайн булактарын кошуу же түзүү" тандап, кийинки баскычты басыңыз
- "Файл түзүү" баскычын чыкылдатыңыз, файлдын түрүн "SystemVerilog" кылып өзгөртүңүз жана файлдын аталыш талаасына "tdoa" деп териңиз, анан ОК басыңыз.
- Finish басыңыз
-
OK басуу менен Define Module терезесин этибарга албаңыз (буларды кийинчерээк жазабыз)
эгер сиз ишенесизби деп сураса, Ооба дегенди басыңыз
-
Булактар өтмөгүндө 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 файлын Constraints/constrs1 астынан эки жолу чыкылдатыңыз.
- Төмөндө тиркелген ZYBO_Master.txt кодун көчүрүп, учурдагы ZYBO_Master.xdc кодунун ордуна чаптаңыз
-
Төмөнкү киргизүү/чыгаруу казыктарына көңүл буруңуз:
- L15: Сол мотор үчүн PWM сигналы (Zybo боюнча Pmod JA2)
- L14: Оң мотор үчүн PWM сигналы (Zybo боюнча Pmod JA8)
- V12: үн сенсорунун 1 дарбазасы (Zybo боюнча Pmod JE1)
- K16: үн сенсорунун 2 дарбазасы (Zmbo боюнча Pmod JE2)
-
Flow Navigator панелинде Программа жана Мүчүлүштүктөрдү оңдоо бөлүмүнүн астындагы "Bitstream түзүү" баскычын чыкылдатыңыз
эгер сиз дароо эле жасалды деп ойлосоңуз, анда андай эмес. олуттуу, чай жаса
-
Файл-> Экспорт-> Техникалык жабдууларды түзүү дегенди басыңыз
"Битстримди кошуу" дегенди текшерип, ОК басыңыз
- Файл-> SDK иштетүү дегенди басыңыз
5 -кадам: Эрни куруу
- Серваларды шассиге орнотуңуз.
-
Серво үчүн маалымат барагынан кийин, төмөнкүлөрдү аткарыңыз:
- Zybo'нун JA Pmod'догу жер казыктарына серволордун жерин туташтырыңыз (тиркелген pinout сүрөтүн караңыз)
-
АВА батарейкасына серволордун кубаткычын туташтырыңыз
Серво Zybo Vddге туташканда, такта өтө көп ток тартат, такта тынымсыз баштапкы абалга келтирилет
- кирүү сигналынын казыктарын Zybo'нун тиешелүү чыгуу казыктарына туташтырыңыз (солдо: JA2, оңдо: JA8)
- үн сенсорлорун шассинин маңдайына, алдыга каратып, мүмкүн болушунча бири -бирине жакын кармаңыз
-
үн сенсорлорун бириктирүү үчүн үн сенсорунун туташтыргычын колдонуңуз
- ар бир үн сенсорунун жерге жана Vdd казыктарына жана Zybo JE Pmodго Vdd казыктарына зым салыңыз (тиркелген pinout сүрөтүн караңыз)
- сол үн сенсорунун Gate пинин JE1ге туташтырыңыз
- туура үн сенсорунун дарбазасын JE2ге туташтырыңыз
6 -кадам: Эрни биринчи BSP
-
Биз түзгөн платформаны бүтүрүү үчүн BSP түзүңүз.
Сиз муну File -> New -> Board Support Package аркылуу ала аласыз
-
BSP түзүүгө жардам берүү үчүн уста пайда болот.
- Биз бул BSPти өзүбүз түзгөн Платформабыз менен байланыштыргыбыз келет, ошондуктан
- Аппараттык платформа биз түзгөн платформага дал келиши керек (img 1ди караңыз)
- Биздин CPU _0 CPU болот.
- Бүтүрүү баскычын басыңыз
- Калкып чыккан терезеде bsp менен кошуу үчүн lwip141ди текшерүүнү унутпаңыз (img 2ди караңыз)
7 -кадам: FreeRTOS'ing Эрни
-
Sourceforgeдан FreeRTOSтун акыркы чыгарылышын жүктөп алыңыз.
Эгерде жүктөө аткарылуучу болсо, аны FreeRTOS файлдарын долбооруңуздун каталогуна чыгаруу үчүн иштетиңиз
- Ошол SDKны ачык кармаңыз жана Файл -> Импорттоону чыкылдатыңыз.
- Биз Жалпы-> Иштеп жаткан мейкиндиктен чыкылдатууну каалайбыз, андан кийин FreeRTOS жүктөлгөн жерге барууну каалайбыз.
-
Биздин демо FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702де болот. Бул папканы тандагандан кийин, биз үч долбоордун ачылышын көрүшүбүз керек (биздин код (OS), бул BSP жана HW платформасы).
ГАНА RTOSDemo учурдагы жумуш мейкиндигине импорттойт
-
Бардык "көк" папкалардагы долбоорлор шилтеме кылынган BSPти өзгөртөт
- Оң баскыч менен чыкылдатып, "шилтеме берилген BSPти өзгөртүү".
- Zybo үчүн жаңы эле түзүлгөн BSPти тандаңыз
- Xilinxтин SDK Blue папкаларында кодду түзөтүү - бул чыныгы коддук долбоорлор.
8 -кадам: Эрнинин С кодун импорттоо
- RTOSDemo/src каталогундагы main.c файлын бул жерге тиркелген менен кайра жазыңыз.
- Main_sound.c файлын RTOSDemo/src каталогуна көчүрүү.
9 -кадам: Эрнини мүчүлүштүктөрдү оңдоо
- Run -> Debug Configurations тандаңыз
- Сол панелде жаңы System Debugger иштетүүнү түзүңүз
-
Максаттуу орнотуу өтмөгүндө,
"Бүтүндөй системаны баштапкы абалга келтирүү" дегенди тандаңыз, ошону менен ps7_init экөө тең тандалат
-
Эми Колдонмо өтмөгүн тандаңыз.
- "Колдонмону түшүрүү" тандоо
- Cortexa9_0 ядросун "программаны киргизүүдө токтотуу" деп коюңуз
- Колдонуу жана мүчүлүштүктөрдү оңдоо дегенди басыңыз.
- Мүчүлүштүктөрдү оңдоо процессинде каталар жок экенин текшериңиз
- Роботту тыкыр көзөмөлдөп, Программаны токтотуу чекитине тийбестен, программаны иштеткенге чейин Resume баскычын басыңыз
- Робот эми бурулуп, катуу үндөргө карай жылышы керек. Ооба!
10 -кадам: Эрнини автономдуу кылуу
- Долбооруңуз даяр болгондон кийин (мүчүлүштүктөрдү оңдогуч аркылуу чуркай аласыз), сиз аны тактаңыздагы флеш -эске жүктөөгө даярсыз.
-
"Биринчи этап жүктөөчү" (FSBL) долбоору деп аталган нерсени түзүңүз жана долбооруңуздун файлдарын (бит агымы жана OS) баштоодо жүктөө үчүн тактаңызга керектүү болгон бардык көрсөтмөлөрдү камтыйт.
- Тандоо: File-> New-> Application Project жана төмөнкү терезе пайда болушу керек.
- Каалаган нерсеңизди атаңыз (б.а. "FSBL")
- Аппараттык платформа сиз менен иштеп жатканына ишениңиз
- Кийинкини басыңыз (Аяктоону баспаңыз)
- Zynq FSBL үлгүсүн тандаңыз
- Аяктоону чыкылдатыңыз.
- Түзүү процесси аяктагандан кийин, эгер сиз Project Explorer терезесинен төмөнкү эки жаңы папканы көрсөңүз, баары иштегенин билесиз.
-
Жүктөө сүрөтүн түзүү Эми сиз жүктөө сүрөтүн түзүшүңүз керек болот.
- Долбоор папкаңызды оң баскыч менен чыкылдатыңыз (бул учурда меники "RTOSDemo" деп аталат)
- Ылдый түшүүчү жерден "Жүктөө сүрөтүн түзүү" дегенди басыңыз
-
Эгерде баары туура шилтемеленген болсо, анда долбоор кандай файлдарга муктаж экенин билет жана төмөнкү терезе төмөндө көрүнгөндөй көрүнөт (ачкыч сизде Boot image бөлүмүнүн астында 3 бөлүм бар, жүктөгүч, бит файлыңыз жана долбоорлоруңуз.elf файлы)).
Эгер андай болбосо, анда сиздин долбоорду байланыштырууда туура эмес нерсе болушу мүмкүн. Долбоордун папкалары тиешелүү BSPлерине байланышкандыгын камсыздандырыңыз
- "Сүрөт түзүү" баскычын чыкылдатыңыз
-
Программалык камсыздоонун акыркы кадамы - бул мурунтан түзүлгөн сүрөтүңүздү тактанын эсине чагылдыруу
- SDKтин башкы куралдар тилкесинен Xilinx Tools-> Program Flash Memory тандаңыз
- Туура аппараттык платформа тандалганын жана сүрөт файлы жолу мурунку кадамда түзүлгөн. BIN файлын туура көрсөтүп жатканын камсыздандырыңыз.
- Flash түрүнөн "qspi single" тандаңыз
- Бүтүндүктү камсыздоо үчүн "Жарк эткенден кийин текшерүү" дегенди белгилеңиз, бирок ал кереги жок
- Башкармаңызды конфигурациялоо Акырында, BootROM иштетилгенде, тактайлардын программалоо режими секиргичи (JP5) qspiден жүктөө үчүн туура орнотулганын камсыздооңуз керек (анда сиз жаңы эле чагылдырган нерсени камтыйт).
- Эми жөн гана түзмөктү кубаттап, "Logic Configuration Done LED" (LED 10) жашыл болуп күйгүзүлүшүн камсыздаңыз.
11 -кадам: Эрнини сүйкүмдүү кылуу
- Fur
- Фур көп
- Чоң көздөр!
- … баш кийим
Сунушталууда:
DIY кантип кооз саатты жасоо керек - StickC - Оңой жасоо: 8 кадам
DIY кантип кооз саатты жасоо керек - StickC - Оңой жасалат: Бул окуу куралында биз ESP32 M5Stack StickCти Arduino IDE жана Visuino менен ЖКда убакытты көрсөтүү үчүн кантип программалоону, ошондой эле StickC баскычтарын колдонуу менен убакытты кантип коюуну үйрөнөбүз
Linux жүктөө дискин кантип түзүү керек (жана аны кантип колдонуу керек): 10 кадам
Linux жүктөө дискин кантип түзүү керек (жана аны кантип колдонуу керек): Бул Linuxту кантип баштоо керектиги жөнүндө жөнөкөй маалымат, тактап айтканда Ubuntu
Mac Терминалын кантип колдонуу керек жана Негизги функцияларды кантип колдонуу керек: 4 кадам
Mac Терминалын кантип колдонуу керек жана Негизги функцияларды кантип колдонуу керек: Биз сизге MAC Терминалын кантип ачууну көрсөтөбүз. Биз ошондой эле сизге терминалдын ичинде ifconfig, каталогдорду өзгөртүү, файлдарга кирүү жана arp сыяктуу бир нече мүмкүнчүлүктөрдү көрсөтөбүз. Ifconfig сизге IP дарегиңизди жана MAC жарнагыңызды текшерүүгө мүмкүндүк берет
Ыкчам өрт режимин кантип бекер жасоо керек (сизге болгону отвертка керек): 10 кадам
Ыкчам өрт режимин кантип акысыз жасоо керек (сизге керектүү нерсенин баары - бул отвертка): Бүгүн мен сизге xbox жабдууларында тез өрт режимин кантип жасоону үйрөтөм: коопсуздук тешиги бар бир торкс T8 бурагыч ЖЕ кичине колдонсоңуз болот жалпак баш. Бул жолу мен Titan Torx t8 колдонуп жатам, аны коопсуздук тешиги менен Autozoneдон сатып алса болот
Гитаранын спикери кутучасын кантип куруу керек же стерео үчүн экөөнү кантип куруу керек: 17 кадам (сүрөттөр менен)
Гитаранын спикери кутучасын кантип куруу керек же стерео үчүн экөөнү кантип куруу керек?: Мен куруп жаткан түтүк амп менен жаңы гитаралык спикердин барышын кааладым. Баяндамачы менин дүкөнүмдө калат, андыктан өзгөчө бир нерсенин кереги жок. Толекс жабуусу өтө оңой эле бузулуп калышы мүмкүн, ошондуктан мен кумдун артынан сыртын кара чачтым