Skocz do zawartości

[C] [STM32] PWM z przesunięciem faz


ArczerMX

Pomocna odpowiedź

Cześć,
Zacznę od tego że używam płytki STM32F103 Nucleo i bibliotek HAL'a.

Przechodząc do tematu, chce wygenerować sygnał PWM na kilku kanałach jednego timera. Problem w tym że sygnal na kolejnych kanałach ma być przesunięty względem poprzedniego kanału.

Obrazek poglądowy, wypełnienie PWM ma wynosić 1/3.

W jaki sposób uzyskać taki sygnał?

Z góry dzięki za odpowiedź

Link do komentarza
Share on other sites

Jeden timer to jeden licznik → komparatory poszczególnych wyjść korzystają z tej samej wartości inkrementowanej co cykl → faza wyjść PWM jest ta sama.

Przy niewielkich częstotliwościach mógłbyś to robić przez każdorazowe zlecanie zmian pinów przy kolejnych komparacjach (funkcja output compare), ale musiałbyś przeładowywać rejestr(y) TIMx_CCRx po każdej zmianie każdego wyjścia. To wymaga trochę zabawy przerwaniami, ale jest jak najbardziej możliwe do zrobienia.

Tak myślę, że gdybyś ustawił poprawnie rejestr okresu TIMx_ARRx tak żeby okres zliczania timera był równy okresowi jednego PWMa, to do przeładowywania rejestrów CCRx mógłbyś zaprzęgnąć DMA. Wtedy każdy kanał wyjściowy czerpałby nowe momenty przełączeń z przygotowanej w RAMie tablicy obejmującej jeden okres i obeszłoby się w ogóle bez ingerencji programowej.

Napisz do czego to Ci jest potrzebne, może znajdzie się inne rozwiązanie?

Link do komentarza
Share on other sites

Dzieki za odpowiedź

Docelowo ma to być kontroler do silników bezszczotkowych.

Chcę sterować sześcioma mosfet'ami z częstotliwością 1KHz. Każdy tranzystor na osobnym kanale, a "przesunięcie" między kolejnymi kanałami to 1/6 ARR.

Zastanawiałem się nad wykorzystaniem dead time'a lub trybu "center aligned", ale nigdy wcześniej nie używałem ich i nie jestem pewien jak one działają.

Link do komentarza
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.