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
One Reply to “Sterownik PWM – #5 – Odczyt ADC z więcej niż 8 kanałów w procesorze STM32G0”