Skocz do zawartości

Kurs STM32L4 – #8 – liczniki sprzętowe (PWM, enkoder)


Pomocna odpowiedź

Kurs STM32L4 – #8 – liczniki sprzętowe (PWM, enkoder)

Mikrokontrolery STM32L4 są wyposażane w wiele liczników sprzętowych, dzięki którym można bez problemu odmierzać czas, generować PWM lub obsługiwać różne czujniki. W tej części kursu będziemy ćwiczyć stosowanie liczników w praktyce – od migania LED-em przez sterowanie diody RGB aż do obsługi enkoderów.

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Link do komentarza
Share on other sites

Przypominamy: w komentarzach do kursów rozmawiamy wyłącznie na tematy związane z konkretnym kursem. Mile widziane są również informacje od osób, które korzystały wcześniej z naszych poradników. Wszystko po to, aby kursanci, którzy mają zamiar korzystać z tego kursu nie musieli "przedzierać" się przez dziesiątki postów na inne tematy. Tematy na pytanie, które nie są związane z kursem można zadawać na naszym forum o mikrokontrolerach.

Link do komentarza
Share on other sites

Zachęcam do lektury kolejnego odcinka kursu STM32L4, który w całości poświęciliśmy licznikom sprzętowym. Tym razem mowa m.in. o wywoływaniu cyklicznych przerwań, generowaniu sygnału PWM oraz obsłudze enkoderów. To jednak nie koniec tematu, bo to tematu liczników sprzętowych wrócimy jeszcze w jednej z kolejnych części tego kursu.

Link do komentarza
Share on other sites

Mikrokontrolery STM32 są znane z bardzo rozbudowanych układów czasowo-licznikowych, więc to co udało się nam opisać w kursie to raptem wstęp do poznania ich możliwości. Szczególnie temat sterowania silników, w tym BLDC zasługuje na oddzielny kurs. Może kiedyś do tematu uda się wrócić, szczególnie że dostępne są bardzo fajne zestawy ewaluacyjne, przykładowo: https://www.st.com/en/evaluation-tools/p-nucleo-ihm002.html,albo  https://www.st.com/en/evaluation-tools/p-nucleo-ihm03.html. W każdym razie możliwości timerów STM32 nie kończą się na prostym PWM 🙂

  • Lubię! 2
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Pamiętam jak pierwszy raz bawiłem się enkoderem. Było to już dość dawno temu, ale pamiętam, że próbowałem wykorzystywać go w połączeniu ze zwykłymi GPIO. Później "odkryłem" przerwania zewnętrzne i byłem dumny z siebie, ale dedykowany tryb do obsługi enkoderów to już mistrzostwo. Nawet nie wiedziałem, że istnieją takie rzeczy, świetna sprawa. Jak zwykle ciekawy poradnik!

  • Lubię! 2
Link do komentarza
Share on other sites

@Toomas faktycznie sprzętowa obsługa enkoderów to świetna sprawa. Szczególnie, gdy korzysta się z enkoderów do tego, aby kontrolować prace silników. Taki enkoder może generować tysiące impulsów podczas jednego obrotu koła. Liczba danych do zebrania jest gigantyczna, a tutaj wystarczy tylko konfiguracja modułu sprzętowego i gotowe - nie musimy przejmować się niczym więcej 🙂

Link do komentarza
Share on other sites

4 godziny temu, Elvis napisał:

Szczególnie temat sterowania silników, w tym BLDC zasługuje na oddzielny kurs.

A mógłbyś powiedzieć co ciekawego te mikrokontrolery mają w kontekście silników BLDC? Nie mam z tym dużo wspólnego, nie oczekuję konkretów, ale chętnie bym usłyszał 2-3 zdania tak dla zaspokojenia własnej ciekawości i pobudzenia apetytu na więcej ;)

  • Lubię! 1
Link do komentarza
Share on other sites

Mam pytanie czy ktoś jeszcze nie mógł znaleźć funkcji HAL_TIM_GetActiveChannel? Jej wpisanie wyrzuciło mi błąd. Jak wpisuję w wyszukiwarkę mam 0 znalezionych.

Problemów mi to nie przysporzyło, bo obszedłem to łatwo wpisując w switcha wyciągnięte pole Channel ze struktury htim3 (htim3.Channel), ale pytam z ciekawości, bo nie znałem tej funkcji. A jak spróbowałem użyć to nie mam jej nawet w bibliotekach HALa.

Link do komentarza
Share on other sites

@Bhoy67 czy na pewno korzystasz z mikrokontrolera STM32L4?

Pytam, bo widzę, że nie masz zarejestrowanego zestawu do tego kursu, a korzystanie z innej rodziny mikrokontrolerów może generować właśnie tego typu problemy. Funkcja, o której wspominasz znajduje się w pliku: Drivers\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c - sprawdziłem kod jeszcze raz i działa bez żadnego problemu.

Link do komentarza
Share on other sites

@Treker, dzięki za odpowiedź. Tak, zestawu nie mam, ale używam płytki Nucleo tej samej co w kursie.

Jak już pytasz to przypomniała mi się pewna różnica, heh. Nie używam STM32CubeIDE tylko CubeMX i Workbencha jako osobne programy. Pewnie to jest przyczyną. Może inny plik ...tim.c jest u mnie wtedy generowny. Bo właśnie w tym pliku, o którym piszesz, się tej funkcji spodziewałem, a nie ma.

Link do komentarza
Share on other sites

Możliwe, że korzystasz z jakiejś starej wersji biblioteki HAL lub masz jakąś inną konfigurację projektu - ciężko tutaj o konkretną poradę, bo nie wiemy czym dokładnie dysponujesz (obstawiałbym jednak inną wersję biblioteki). Raz jeszcze gorąco zachęcam, aby podczas nauki z kursów korzystać z tego samego sprzętu i oprogramowania. Można uniknąć wielu niejasnych sytuacji 😉

Link do komentarza
Share on other sites

Panowie, czy podczas przekręcania enkodera o jeden klik program dodaje(lub odejmuje) do countera 1 czy 2? U mnie dodaje dwa co w sumie nie dziwne, można o tym przeczytać w nocie aplikacyjnej (rozdział 4.3.4, str. 33), jednak odniosłem wrażenie, że w podanym przykładzie inkrementuje o 1. Jak to jest i dlaczego?

image.thumb.png.81b37ea6aa2fce3f098a5daee0110099.png

 

Link do komentarza
Share on other sites

@rafal132 dałeś nam niezłą zagwozdkę - od wczoraj analizujemy ten temat i wygląda na to, że chyba niestety "w obiegu" są 2 wersje enkoderów, które wyglądają tak samo, a działają trochę inaczej. Jak tylko będziemy mieli taką pewność to opiszemy ten temat tutaj w komentarzu. Dla formalności dopytam: czy korzystasz z enkodera, który jest w naszym zestawie do tego kursu?

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.