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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
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 to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.