[NOWY FRAMEWORK] Microchip Harmony dla PIC32, część 2

Pierwsza część artykułu jest dostępna w naszym serwisie.

Nie ma lepszego sposobu poznania możliwości frameworka Harmony niż zrealizowanie za jego pomocą projektu. Przykładową realizację przedstawiamy w artykule.

Zgodnie z zapowiedzią z pierwszej części artykułu pokażemy jak zrealizować prosty projekt na mikrokontrolerze PIC32 z wykorzystaniem Harmony. Aplikacja została zrealizowana na module PIC32 USB Starter KIT II z mikrokontrolerem PIC32MX795F512L. Jest to jeden z najbardziej zaawansowanych mikrokontrolerów rodziny PIC32MX.

Pierwszą czynnością konfiguracyjną będzie ustalenie źródła i częstotliwości taktowania mikrokontrolera. System zegarowy powinien dostarczać trzy niezależnie programowane częstotliwości:

  • SYSCLK do taktowania rdzenia,
  • PBCLK do taktowania układów peryferyjnych,
  • częstotliwość 48MHz do taktowania interfejsu USB.

Do taktowania układu zegarowego wykorzystuje się zasadniczo 2 źródła sygnału zegarowego:

  • oscylator kwarcowy Primary Oscillator i
  • wbudowany precyzyjny oscylator RC o częstotliwości 8MHz.

Primary Oscillator może pracować w trybach EC, XT, lub HS. Typowo wybiera się tryb HS i kwarc o częstotliwości 8 MHz lub 12 MHz. Częstotliwość źródła (oscylator kwarcowy lub RC) może być następnie powielana w układach PLL do częstotliwości 80 MHz, czyli maksymalnej częstotliwości z jaką pracuje rdzeń PIC32MX795F512L.

Konfigurowanie zegara w MHC jest tak proste jak to można sobie tylko wyobrazić. Służy do tego zakładka MPLAB Harmony Clock Configurator (rysunek 9).

 

Rys. 9. Okno konfiguratora systemu taktowania

 

Najpierw w oknie FNOST wybieramy źródło sygnału zegarowego. Oprócz Primary Oscillator i FRC 8MHz można wybrać też Secondary oscillator lub generator LPRC. Są to oscylatory o niskiej częstotliwości i w normalnych warunkach nie będą używane.

Mikrokontroler może być taktowany wprost z POSC lub FRC, sygnały taktujące mogą być powielane przez układ PLL. Ja wybrałem oscylator FRC z układem PLL, czyli FNOST=FRCPLL. Żeby uzyskać żądaną częstotliwość trzeba zaprogramować współczynniki FPLLIDIV, FPLLMULT i FPLLODIV. Można to zrobić ręcznie, lub automatycznie klikając na przycisk Auto-Calculate. W oknie Desired System Frequency wpisujemy interesująca nas częstotliwość taktowania rdzenia i zostanie wyliczona częstotliwość możliwa do uzyskania z układu PLL i błąd częstotliwości w %. Dla FRC =8MHz i SYSCLK=80MHz Auto-Calculate wylicza współczynniki FPLLIDIV=DIV_2, FPLLMULT=MUL_20 i FPLLODIV=DIV_1.

Częstotliwość zegara taktującego układy peryferyjne PBCLK jest uzyskiwana z SYSCLK po podzieleniu przez 1, 2, 4 lub 8 (FPBDIV). Jeżeli w projekcie jest używany interfejs USB, to jego taktowanie również trzeba zaprogramować, tak by USB Clock był równy 48MHz. W Harmony Clock Configurator nieprawidłowa częstotliwość USB Clock jest sygnalizowana na czerwono.

Po ustawieniu systemu taktowania trzeba zapisać konfigurację i wygenerować pliki projektu z poziomu MPLAB Harmony Configurator (Generate). Definicje bitów konfiguracyjnych zostaną automatycznie zaktualizowane i można je obejrzeć w oknie Device&Project Configuration -> PIC32MX795F512L Configuration. Zmiany są zaznaczane przez podświetlenie na fioletowo, jak widać na rysunku 10.

 

Rys. 10. Zmiany w konfiguracji układu taktowania

 

O autorze