Sterownik PWM – #5 – Odczyt ADC z więcej niż 8 kanałów w procesorze STM32G0

Na rozgrzewkę:

Po zaprojektowaniu PCB, zamówieniu, wyprodukowaniu u jednego z chińskich dostawców, montażu, przeszedłem do konfiguracji procesora, oraz pisania programu. W projekcie użyłem procesor STM32 z rodziny G0. Wspomniany procesor nie jest wspierany przez bibliotekę StdPeriph, więc do konfiguracji użyłem CubeMX. Czytając dokumentację procesora podczas tworzenia schematu, wspomniane było o 16 zewnętrznych kanałach ADC oraz 3 wewnętrznych. Po wprowadzeniu konfiguracji do CubeMX okazało się, że mam do dyspozycji tylko 8 kanałów. W tym wpisie chcę powiedzieć Ci, jak rozwiązałem wyżej opisaną zagwozdkę.

Zakres wpisu:

  • Wstępna konfiguracja
  • Funkcjonalność sequencer
  • Rozwiązanie zagwozdki

Wstępna konfiguracja:

Na początku skonfigurowałem przetwornik analogowo-cyfrowy w następujący sposób:

W tym miejscu można skonfigurować kolejność odczytywania kanałów oraz częstotliwość próbkowania każdego z nich.

Funkcjonalność sequencer:

Włączając funkcjonalność sequencer, można odczytywać kanały według zdefiniowanej przez użytkownika kolejności. Wspomnianą funkcjonalność można włączyć w następujący sposób:

Rozwiązanie zagwozdki:

Sposób na wykorzystanie wszystkich kanałów analogowych znalazłem w Reference Manual używanego przeze mnie procesora. Jeśli użytkownik chcę użyć więcej niż 8 kanałów analogowych, należy wyłączyć funkcjonalność sequencer. Wtedy kanały odczytywane są zgodnie ze zdefiniowanymi przez producenta numerami.

Wyłączając funkcjonalność sequencer, zmienia się wygląd okna konfiguracji na następujący:

Podczas wyłączonej funkcjonalności sequencer nie ma możliwości wyboru kolejności odczytu kanału, lecz można zdefiniować kierunek odczytu (Forward od 0 do 18, Backward od 18 do 0), poprzez opcję „Scan Conversion Mode”.

Dowodem na większą ilość kanałów przetwornika ADC jest lista pinów skonfigurowana jako wejścia przetwornika:

[1] Dostęp w Internecie: https://www.st.com/resource/en/reference_manual/rm0444-stm32g0x1-advanced-armbased-32bit-mcus-stmicroelectronics.pdf

Autor artykułu
Mateusz Pluta

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *