Sygnały zegarowe w STM32F1 Connectivity Line

Listing 1. Konfiguracja bloku RCC (Reset and Clock Control)

 

Domyślnie po włączeniu zasilania mikrokontroler używa do pracy wewnętrzny generator RC o częstotliwości około 8 MHz. Szybki oscylator zewnętrzny (HSE – High Speed External), zanim zostanie użyty, musi zostać włączony. Działanie to realizuje wywołanie funkcji RCC_HSE_Config. Następnie w pętli sprawdzany jest stan flagi, która informującej o tym, czy HSE został poprawnie uruchomiony. Oczekiwanie na poprawne włączenie się oscylatora trwa do 1280 (szesnastkowo 0x0500) wywołań pętli. Wartość ta jest określona przez definicję HSEStartUp_TimeOut. Ograniczenie liczby wywołań pętli służy zabezpieczeniu przed zablokowaniem się w przypadku braku poprawnej inicjalizacji HSE. W bibliotece API dostarczanej przez firmę STMicroelectronics dyrektywy preprocesora umieszczone są w pliku stm32f10x.h.

Jeśli flaga HSERDY po przekroczeniu czasu wyznaczonego przez pętlę jest nadal wyzerowana, to wtedy instrukcja warunkowa zapisuje do zmiennej statusu HSEStatus wartość ERROR. Wystąpienie takiej sytuacji skutkuje przerwaniem procesu konfiguracji sygnałów zegarowych, włączane jest jedynie taktowanie dla portów wejścia/wyjścia. W przypadku poprawnego startu HSE rozpoczyna się właściwy proces konfiguracji RCC. W ramach ,którego ustawiane są m. in. mnożniki i dzielniki sygnałów zegarowych.

Pamięć FLASH wbudowana w mikrokontrolery STM32 serii F1 może pracować z maksymalną częstotliwością 24 MHz, w związku z czym należy ustawić dla niej tzw. „wait state”, czyli opóźnienie.

Dalej konfiguracja odbywa się jakby od końca. Najpierw ustalane są częstotliwości sygnałów wyznaczanych na podstawie zegara systemowego SYSCLK, a więc taktowanie wszystkiego, co jest podłączone do magistrali AHB (patrz rys. 2). Wybierane jest źródło sygnału zegarowego m. in. dla: rdzenia mikrokontrolera, magistral APB1 (PCLK1) i APB2 (PCLK2), opcjonalnie również taktowanie przetworników A/C, liczników itd.. Dodać tu należy, że magistrala APB1 może być taktowana sygnałem o maksymalnej częstotliwości 36 MHz, natomiast dla magistrali APB2 jest to wartość 72 MHz.

Gdy fragment bloku RCC podłączony do magistrali AHB ma ustalone swoje parametry pracy, należy przystąpić do właściwej konfiguracji układów PLL, multiplekserów i dzielników.

O autorze