Obliczenie FFT na mikrokontrolerze STM32 (3) – Pomiar trzech przebiegów za pomocą niezależnych przetworników analogowo-cyfrowych z wykorzystaniem DMA i trybu Combined regular simultaneous + alternate trigger mode w celu dokładnego pomiaru przesunięcia fazowego na procesorze STM32F103

Przedstawiamy trzeci artykuł Mateusza Pluty i ostatni z serii o FFT. Obliczenia zawarte w dwóch poprzednich wpisach wykonane były za pomocą płytki ewaluacyjnej STM32F401C-DISCO. W docelowym projekcie Mateusz użył procesora STM32F103VET6, który dysponuje trzema niezależnymi przetwornikami analogowo-cyfrowymi. Dobierając ten procesor, upewnił się, że ma on trzy niezależne przetworniki ADC, lecz nie sprawdził, czy każdy z nich dysponuje swoim DMA. W projekcie chciał mierzyć dokładne przesunięcie fazowe między przebiegami prądu i dwoma przebiegami napięcia, dlatego zależało mu na pomiarze przebiegów z wykorzystaniem DMA. Po wykonaniu PCB, konfigurując procesor i dalej podczas zgłębiania dokumentacji dowiedział się, że jeden z przetworników nie posiada DMA. Dalej przeglądając dokumentację, zastanawiał się jak rozwiązać problem. Wyczytał, że jest możliwość pomiaru z wykorzystaniem DMA drugiego przetwornika, kiedy pierwszy przetwornik jest masterem, a drugi slave. W artykule zajmie się implementacją pomiaru z wykorzystaniem DMA w konfiguracji master i slave.

Zachęcamy do przeczytania pierwszej cześci seriiObliczenie FFT na mikrokontrolerze STM32 (1) – Biblioteka CMSIS, wyciek widma, okna wykorzystywane do FFT, wdrożenie w projekcie

Oraz drugiej: Obliczenie FFT na STM32 (2) – Program realizujący FFT, prezentacja wyników, wyciek widma oraz jego przyczyny

Więcej artykułów na Blog IntHou

Zakres wpisu:

  • Procesor STM32F103VET6
  • Konfiguracja STM32F103VET6 w STM32CubeIDE
  • Program dla STM32F103VET6
  • Działanie programu

Procesor STM32F103VET6:

Do swojego projektu dobrałem procesor STM32F103VET6, który charakteryzuje się następującymi parametrami:

Dobierając ten procesor, zależało mi na następujących aspektach:

  • minimum 3 niezależne przetworniki ADC z DMA,
  • możliwość podłączenia zewnętrznej referencji analogowej (dostępne w obudowie LQFP100),
  • niski błąd przetwornika ADC (Total Unadjusted Error),
  • dwa przetworniki DAC.

Po wykonaniu PCB dowiedziałem się, że ADC2 nie posiada DMA. Znalazłem rozwązanie tego problemu, którego opis przedstawiłem poniżej z Reference Manual STM32F103 [1]:

O autorze