[PROJEKT] Sterowanie urządzeniami dużych mocy – KA-NUCLEO oraz moduł z przekaźnikami
W tym momencie można przejść do konfiguracji wejść oraz wyjść płytki KA-NUCLEO. Proces wyboru płytki oraz ustawienia odpowiedniego zegara został opisany m.in. w artykule [PROJEKT] Sterowanie silnikami – KA-Nucleo-F411CE oraz shield z układem L298. Dlatego w tej części skupię się tylko na konfiguracji roli odpowiednich linii, do których będą podłączone przyciski oraz wyjściowych podłączonych do przekaźnika.
Szczegółowy opis narzędzia CubeMX znajduje się w artykule:
STM32Cube graficzny konfigurator STM32
W projekcie potrzeba dwóch wejść na dwa przyciski (po jednym przycisku dla każdego przekaźnika) oraz dwóch pinów, które będą skonfigurowane jako wyjścia dla modułu z przekaźnikami.
Piny do których będą podłączone przyciski należy skonfigurować tak, aby była możliwość ich obsługi za pomocą przerwania. W ten tryb ustawiono piny PB3 oraz PA10 (D2 oraz D3 na płytce KA-NUCLEO). Aby to zrobić należy kliknąć na pin np PA10 i wybrać opcję GPIO_EXTI10 (jak na rysunku). Analogicznie postępujemy z pinem PB3.
Rys 4. Ustawianie pinu PA10 w tryb obsługi przerwań
Następnie trzeba zadeklarować dwa piny, które będą sterować urządzeniami wykonawczymi za pomocą przekaźników. Muszą być one ustawione w tryb wyjścia. Ja wykorzystałem piny PA8 (D7) oraz PA9 (D8). Należy kliknąć na interesujący nas pin np. PA8 i wybrać opcję GPIO_output (rysunek 5).
Rysunek 5. Ustawienie pinu PA 8 jako wyjścia – GPIO_Output
Dodatkowo klikając prawym przyciskiem na nazwach skonfigurowanych pinów można wybrać opcję Enter User Label dzięki czemu możliwe jest nadanie nazwy pinowi w celu uproszczenia późniejszego programowania. Ja nazwałem piny PA8 i PA9 odpowiednio WYJ_PRZEKAZNIK_1 oraz WYJ_PRZEKAZNIK_2. Przyciskom nadałem nazwy Przycisk_1 oraz Przycisk_2. Po nadaniu tych nazw konfiguracja prezentuje się następująco:
Rys 6. Nadanie nazwy pinom wejściowym oraz wyjściowym
Pozostało jeszcze ustawienie obsługi przerwań. Aby to zrobić należy przejść do zakładki Configuration, następnie w sekcji system wybrać ustawienia GPIO (rysunek 7).
Rys 7. Przejście do ustawień portów GPIO
Następnie należy upewnić się że dla pinów PA10 oraz PB3 (do których będą podłączone przyciski) GPIO mode jest ustawione na wartość External Interrupt Mode with Falling edge trigger detection (reakcja na zbocze opadające, ponieważ wciśniecie przycisku powoduje ustawienie stanu niskiego). Jeżeli są tak ustawione klikamy przycisk Apply oraz OK.
Rys 8. Ustawienia rodzaju przerwania
Powinno się jeszcze włączyć obsługę przewiań. W tym celu należy przejść do zakładki NVIC w sekcji System (rysunek 7). Należy zaznaczyć ustawienia jak na rysunku 9.
Rys 9. Włączenie obsługi przerwań
Teraz należy wygenerować kod oraz pliki projektu dla darmowego środowiska programowania STM32 – AC6. Aby to zrobić trzeba wybrać z górnej belki Projekt > Generate Code. Pojawia się okno (rysunek 10) z ustawieniami projektu. Należy ustawić nazwę projektu np. KA_Nucleo_Przekazniki (1). Wybierając lokalizację projektu należy zwrócić uwagę, że powinna być ona taka sama jak workspace programu AC6 (2). Z rozwijanej listy wybiera się środowisko, do którego ma zostać wyeksportowany projekt – w naszym przypadku jest to SW4STM32. Na koniec należy nacisnąć przycisk OK.
Rys 10. Generowanie plików projektu w programie CubeMX