STM32Cube w kilku krokach [2]. Konfiguracja systemu taktującego

Uwaga! Pierwsza część cyklu jest dostępna pod adresem.

Kolejną ważną konfiguracją mikrokontrolera jest ustawienie taktowania. Układ taktowania nowoczesnych mikrokontrolerów bardzo się rozbudował w porównaniu z prostymi konstrukcjami sprzed lat. Możliwość zaprogramowania w szerokim częstotliwości taktowania rdzenia i osobno częstotliwości taktowania peryferii wymusiła zastosowanie programowanych układów PLL i programowych układów przełączających. Ponadto można wybrać źródło zegara: z oscylatora kwarcowego z dołączanym zewnętrznym rezonatorem lub z wewnętrznego precyzyjnego oscylatora RC o stałej częstotliwości. Ta elastyczność w konfigurowaniu taktowania jest okupiona większym, lub mniejszym skomplikowaniem układu i dlatego sprawia trudności nawet bardziej doświadczonym programistom, nie mówiąc już o początkujących. Żeby zadanie konfiguracji uczynić prostym jak to tylko możliwe w pakiecie STM32Cube MX umieszczono zakładkę Clock Configuration z graficznym przedstawieniem układu taktowania – rysunek 7.

Rys. 7. Zakładka Clock Configuration

 

Domyślnie układ jest tak skonfigurowany żeby rdzeń był taktowany z maksymalną częstotliwością taktowania równą 168MHz. Źródłem sygnału zegarowego jest oscylator kwarcowy HSE o częstotliwości 8MHz umieszczony na płytce STM32F4Discovery. Alternatywnie do taktowanie można wybrać oscylator RC HSI o częstotliwości taktowania 16MHz. Wyboru oscylatora dokonuje się w bloku PLL Source Mux.

Wysoką częstotliwość taktowania uzyskuje się w układzie powielania częstotliwości z pętlą PLL (Main PLL), gdzie wejściowa częstotliwość jest najpierw powielana przez 336, a potem dzielona przez 2. Sygnał z wyjścia układu PLL podawany jest na selektor System Clock Mux.

Oprócz konfigurowania ścieżki sygnału taktowania zakładka Clock Configuration pokazuje na bieżąco jakie częstotliwości są ustawione dla wszystkich bloków mikrokontrolera: rdzenia, magistrali AHB, modułów peryferyjnych APAB1, APB2 itp.

Po wygenerowaniu kodu ustawienia z zakładki Clock Configurator są zapisywane w funkcji SystemClockConfig umieszczonej w pliku main.clisting 3.

 

List. 3. Ustawienia taktowania mikrokontrolera

Moduł STM32F4Discovery ma zamontowane 4 diody LED podłączone do linii portu PD:

  • zielona, podłączona do portu PD12
  • pomarańczowa, podłączona do portu PD13
  • czerwona, podłączona do portu PD14
  • niebieska, podłączona do portu PD15

Jeżeli w projekcie wybierzemy wsparcie tego modułu, to w oknie Pinout wyprowadzenia tych linii portów zostaną zdefiniowane jako linie wyjściowe i opisane etykietami z nazwami diod – rysunek 8.

 

Rys. 8. Definicja linii diod modułu STM32F4Discovery

 

W kolejnym odcinku wykonamy projekt cyklicznie zapalający i gaszący jedną lub kilka diod. Do migania diodami LED będzie nam potrzebne odliczanie opóźnienia. Można to zrobić programowo, ale lepszym wyjściem jest – jak pokażemy – użycie licznika i systemu przerwań.

Tomasz Jabłoński

Autor: