Przykład oparty został na wyświetlaczu Winstar WG240128B-TFH-TZ#. Jest to graficzny LCD typu COB (z kontrolerem na PCB) posiadający rozdzielczość 240×128, biały kolor tła i czarną treść. Wyświetlacz pozwala na wykorzystywanie interfejsu 8-bitowego. Projekt do pobrania z: https://github.com/PiotrPoterala/stm32f429i-disco_RA6963 Cechy Zależności Podłączenie systemu Inicjalizacja Wyświetlenie grafiki Wyświetlenie tekstu Wyświetlenie kursora Wyświetlenie własnej czcionki Przykład
Boot loader w STM32F030
STM32F030 może rozpocząć pracę wywołując program spod jednego z trzech obszarów: z pamięci FLASH, pamięci systemowej lub z wbudowanej pamięci SRAM. Boot loader, zlokalizowany w pamięci systemowej mikrokontrolera, może posłużyć do przeprogramowania jego pamięci FLASH poprzez USART (piny PA14/PA15). W tym celu należy: Ustawić bit nBoot1 na 1 (ustawienie domyślne). Aby upewnić się co do… Czytaj dalej Boot loader w STM32F030
ARM, SWD, printf() i Keil uVision
Choć duże pokrycie kodu testami jednostkowymi powinno zminimalizować prawdopodobieństwo pojawienia się błędów, czasami i tak, konieczne jest przedebugowanie się przez kod. W takich sytuacjach, oprócz breakpoint’ów, pomocnym narzędziem może okazać się „wyrzucenie”, w określonych punktach programu, danych na „konsolę”. Na desktopie nie ma z tym problemu. Co jednak, jeżeli debugujemy firmware na docelowym sprzęcie? Standard… Czytaj dalej ARM, SWD, printf() i Keil uVision
CppUtest w Keil uVision
Wpis zawiera kroki postępowania przy stworzeniu projektu ze scenariuszami testów jednostkowych dla firmware’u zapisanego w C++11. Toolchain: uVision MDK-ARM Essential Version: V5.29.0.0, Compiler/Linker Version: V6.13.1 Target: STM32F429ZITx Projekt do pobrania z: https://github.com/PiotrPoterala/PP_Library/tree/main/pp_unit_tests CppUtest CppUtest to framework oparty na modelu xUnit przeznaczony do przeprowadzania testów jednostkowych w projektach embedded. Napisany w C++ z powodzeniem może być… Czytaj dalej CppUtest w Keil uVision
Library 1 – sterownik silnika krokowego na STM32F429 DISCO (part 3).
Komunikacja pomiędzy PC, a płytką DISCOVERY oparta została na interfejsie UART. W celu podłączenia urządzeń wymagana jest przejściówka USB-UART, najlepiej, wyposażona w układ FT232. Konfiguracja mikrokontrolera pod obsługę UART przedstawiona została w części 1 omawianej biblioteki. Projekt do pobrania z: https://github.com/PiotrPoterala/stm32f429i-disco_stepper_motor oraz biblioteki: https://github.com/PiotrPoterala/PP_Library Struktura klas Mechanizm odbioru/wysyłania danych oparty został na wzorcu projektowym Dekorator.… Czytaj dalej Library 1 – sterownik silnika krokowego na STM32F429 DISCO (part 3).
Library 1 – sterownik silnika krokowego na STM32F429 DISCO (part 2).
Projekt oparty został na systemie czasu rzeczywistego Keil RTX w wersji 5 (RTX5) implementującego CMSIS-RTOS2 jako natywny interfejs RTOS dla urządzeń opartych na procesorach Arm Cortex-M. Projekt do pobrania z: https://github.com/PiotrPoterala/stm32f429i-disco_stepper_motor oraz biblioteki: https://github.com/PiotrPoterala/PP_Library Utworzenie projektu opartego na RTX5 Stworzyć nowy projekt i wybrać mikrokontroler, pod który będzie pisane oprogramowanie, W oknie Menage Run-Time Enviroment… Czytaj dalej Library 1 – sterownik silnika krokowego na STM32F429 DISCO (part 2).
Library 1 – sterownik silnika krokowego na STM32F429-DISCO (part 1).
Niniejszym wpisem chciałbym zapoczątkować cykl postów opisujących bibliotekę do zarządzania pracą silnika krokowego. W tej części zajmę się krótkim opisem projektu, podłączeniem silnik-L6258 (płytka P46d)-STM32F429_DISCO-PC oraz konfiguracją peryferiów mikrokontrolera. Projekt do pobrania z: https://github.com/PiotrPoterala/stm32f429i-disco_stepper_motor Wykorzystane technologie: C++11, RTOS: RTX5. Cechy: Obsługa driverów silników krokowych dysponujących interfejsem równoległym opartym na: parze sygnałów dir/clock, parze sygnałów zegarowych… Czytaj dalej Library 1 – sterownik silnika krokowego na STM32F429-DISCO (part 1).
P46d – sterownik silników krokowych z wysterowaniem 2x zegar
Miniaturowy sterownik silników krokowych P46d jest jednym z moich autorskich rozwiązań. Opiera się na układzie L6258ex obsługującym interfejs równoległy oparty na parze sygnałów zegarowych przesuniętych w fazie. Potrzeba jego powstania wynikła z faktu, że zdecydowana większość rozwiązań dostępnych na rynku dostarcza interfejs równoległy oparty na parze sygnałów zegar/kierunek. (Dlaczego w pewnych sytuacjach DIR/CLOCK nie jest… Czytaj dalej P46d – sterownik silników krokowych z wysterowaniem 2x zegar
Interfejs równoległy w sterownikach silników krokowych
Silniki krokowe, ze względu na łatwość pozycjonowania rotora są jednymi z najchętniej stosowanych napędów – od przemysłu, przez robotykę, po rozwiązania amatorskie/edukacyjne. Tym samym, nie dziwi mnogość, dostępnych na rynku, sterowników zarządzających pracą tego typu aktuatorów. Znajdziemy rozwiązania specjalistyczne dla automatyzacji przemysłu, jak i miniaturowe, szeroko stosowane przez fanów robotyki. Interfejs równoległy Bez względu na… Czytaj dalej Interfejs równoległy w sterownikach silników krokowych