Master's Thesis

Time critical applications on STM32MP157

Final Thesis 32.57 MB Appendix 2.87 MB

Author of thesis: Ing. Jakub Kouřil

Acad. year: 2023/2024

Supervisor: Ing. Lukáš Pohl, Ph.D.

Reviewer: Ing. Lukáš Otava, Ph.D.

Abstract:

The goal of this thesis is to test the viability of using processors from the STM32MP15x series to run time critical applications. Testing was performed using a STM32MP157F-DK2 discovery kit. An application for field oriented control requiring precise timing was developed for the module to test its properties. Latency in the system was measured by storing and logging timestamps during execution.

Keywords:

STM32, STM32MPU1, STM32MPU157, field oriented control, time critical applications, Linux, OpenSTLinux

Date of defence

05.06.2024

Result of the defence

Defended (thesis was successfully defended)

znamkaAznamka

Grading

A

Process of defence

Práce byla mimořádně komplexní a prezentace přesvědčila komisi o výborných schopnostech studenta. Objasnil všechny připomínky oponenta.

Language of thesis

Czech

Faculty

Department

Study programme

Cybernetics, Control and Measurements (MPC-KAM)

Composition of Committee

prof. Ing. Jiří Koziorek, Ph.D. (předseda)
doc. Ing. Petr Fiedler, Ph.D. (místopředseda)
Ing. Martin Čala, Ph.D. (člen)
doc. Ing. Miroslav Jirgl, Ph.D. (člen)
Ing. Stanislav Klusáček, Ph.D. (člen)
Ing. Lukáš Pohl, Ph.D. (člen)

Supervisor’s report
Ing. Lukáš Pohl, Ph.D.

Zadání práce Bc. Kouřila bylo cíleno na prozkoumání možností mikrokontroleru řady STM32MP1, konkrétně jeho heterogenní více jádrové varianty MP157. V dnešní době je již zcela běžné, že výrobci do svých SoC implementují tzv big.LITTLE architekturu – spojení výkonného jádra s menšími a úspornějšími jádry. Co však není zcela běžné je spojení velkého jádra s mikrokontrolerem plně vybaveným perifériemi potřebnými pro embedded aplikace. Tato konfigurace spojuje možnosti plnohodnotného operačního systému (Linux) a plně deterministické aplikace běžící na samostatném jádru spojené s jádrem hlavním přes společně mapovaný paměťový prostor.
Student musel pro úspěšné vypracování zadání spojit dohromady znalosti dvou značně odlišných světů – programování POSIX aplikací operačního systému Linux (a jeho PREEMPT_RT varianty) a programování embedded mikrokontroleru. Studentovi se úspěšně podařilo seznámit se s dokumentací od STMicroelectronics, sestavit si vlastní Linux distribuci obsahující PREEMPT RT patch a naprogramovat jádro mikrokontroleru jednoduchou řídicí aplikací pro regulaci proudu žárovkou. Po domluvě s vedoucím byla studentem práce rozšířena o aplikaci demonstrující reálné nasazené této řady mikroprocesoru na regulaci pohonu. Student v rámci rozšíření vytvořil POSIX aplikaci s real-time prioritou plánovače pro komunikaci a ovládání podřízeného procesoru. Podřízený procesor byl naprogramován pro vektorové řízení třífázového motoru. Funkčnost celé aplikace byla studentem ověřena na reálném BLDC motoru.
Student po celou domu vypracování diplomové práce postupoval svědomitě a samostatně a pravidelně konzultoval se svým vedoucím. Jedinou výtku bych měl k samotnému textu práce, který je psán dosti obecně a je poměrně těžké replikovat všechny kroky vedoucí k úspěšnému rozchození výsledné aplikace. Celkově práci hodnotím stupněm B (88b). Points proposed by supervisor: 88

Grade proposed by supervisor: B

Reviewer’s report
Ing. Lukáš Otava, Ph.D.

Diplomová práce pana Kouřila se na 56 stranách zabývá vytvořením řídícího systému časově kritické aplikace řízení natočení hřídele motoru. Aplikace má používat obě jádra Cortex M4F a Cortex A7 mikroprocesoru.
První dvě kapitoly popisují HW prostředky použité řady mikroprocesoru a vývojové nástroje, které STMicroelectronics poskytuje jak k vývoji aplikace pro koprocesor Cortex M4F bez OS, tak k vývoji aplikací a úpravám OS OpenSTLinux pro Cortex A7. Jsou zmíněny také podpůrné a ladící nástroje s komentářem, jaké problémy autor při sestavování a testování celého SW mikroprocesoru musel řešit. Třetí kapitola ukazuje funkčnost ukázkové aplikace, která demonstruje komunikaci mezi oběma jádry. Tyto tři kapitoly správně naplňují body 1 až 3 zadání diplomové práce.
Kapitola čtyři se zabývá měřením latence komunikace mezi jádry mikroprocesoru (6. bod zadání). Tato část práce je dle mého názoru řešena až příliš jednoduše, protože není potlačen vliv ladících výpisů a logování na naměřené hodnoty. Zároveň není možné ověřit přesnou funkci programu, protože zdrojový kód uvedený v příloze neodpovídá textovému popisu v této kapitole.
Poslední tři kapitoly se věnují realizaci a ověření jednotlivých částí finální aplikace regulace natočení hřídele motoru (4. a 5. bod zadání). Je ukázán návrh aplikace jak z hlediska rozčlenění SW, tak z hlediska HW propojení motoru, senzorů a výkonové elektroniky k vývojovému kitu. Zároveň je řešeno mechanické uspořádání motoru pro testování. Tento návrh hodnotím jako správný.
V popisu aplikace pro Cortex M4F je uvedeno a zdůvodněno nastavení použitých periferií a jejich synchronizace. Nastavení periferii ADC1 a TIM1 je ověřeno na regulační smyčce s P regulátorem a přípravkem tvořeným žárovkou a fotorezistorem (ověřeno přechodovou charakteristikou). Krátce je popsána realizace vektorového řízení proudu motoru s použitím P regulátorů a je uveden způsob zpracování a kalibrace hodnot senzorů. Propojení obou jader mikroprocesoru je realizováno textovým komunikačním protokolem. Aplikace pro Cortex A7 realizuje nadřazenou polohovou regulaci, uživatelský vstup a tisk měřené polohy, žádaného proudu a periody spouštění úlohy regulátoru.
Ověření finální aplikace je provedeno pomocí měření přechodové charakteristiky polohy a měřením histogramu periody výpočtu regulátoru polohy.
Kladně hodnotím, že se studentovi podařilo realizovat a zprovoznit polohové řízení motoru, očekával bych však lepší verifikaci. Ocenil bych ověření časování i pomocí externího měření např. na digitálních pinech mikroprocesoru (perioda regulační smyčky, doba výpočtu, synchronizace ADC). Zároveň by měla být součástí komunikace mezi jádry kontrola, že aplikace Cortex A7 nastavuje žádanou hodnotu proudu v ohraničeném čase. Finální aplikace by také mohla umožňovat lépe sledovat a zaznamenávat měřené veličiny.
Z práce je patrné, že body zadání byly splněny. Formální zpracování práce je dobré. V práci se vyskytuje malé množství překlepů, ale na více místech chybí interpunkční znaménka. Práci lze považovat za původní, autor se v textu odkazuje na literaturu. Většinu pramenů tvoří dokumentace STMicroelectronics.
Předložená práce přes uvedené nedostatky svědčí o magisterských schopnostech studenta. Doporučuji ji k obhajobě s hodnocením dobře/C 77 bodů. Topics for thesis defence:
  1. Lišilo se chování regulátoru polohy rotoru podle toho, zda běžel na jádře Cortex A7 nebo na Cortex M4F?
  2. Jaké je chování systému, pokud přestane pracovat regulátor polohy rotoru běžící na jádře Cortex A7?
  3. Byl použit absolutní snímač polohy rotoru, je nějaký důvod, proč je počáteční poloha kalibrována při každém startu?
Points proposed by reviewer: 77

Grade proposed by reviewer: C

Responsibility: Mgr. et Mgr. Hana Odstrčilová