Rodzina mikrokontrolerów PIC18FQ10 – 8 bitów i wiele peryferiów
Modulator sygnału danych Digital Signal Modulator (DSM) moduluje sygnał nośnej (Digital Carrier) sygnałem danych (Digital Data), tworząc na wyjściu niestandardowe przebiegi zsynchronizowane z nośną (rys. 6).
Rys. 6. Przykład działania DSM
Możliwe jest zaprogramowania biegunowości sygnału wyjściowego. DSM można w połączeniu z 16-bitowym modułem PWM wykorzystać do precyzyjnego sterowania jasnością diod LED.
Licznik Hardware Limit Timer (HLT) jest przeznaczony do pracy w układach sterowania silnikami elektrycznymi zasilanymi napięciem przemiennym. Jego zadaniem jest wykrywanie nieodebranych zdarzeń okresowych. Silnik elektryczny w trakcie pracy może ulec przeciążeniu lub niekontrolowanemu zatrzymaniu spowodowanemu mechanicznym zablokowaniem napędzanego urządzenia. Układ sterowania silnika powinien wykrywać takie zdarzenia i odpowiednio reagować, by uniknąć uszkodzeniu silnika, układu napędzanego lub układu zasilania. HLT potrafi wykrywać na podstawie impulsów z czujnika położenie wału, zwolnienie prędkości obrotowej poniżej zadanej wartości lub wykrywać zatrzymanie wału silnika. Moduł można skonfigurować w kilku trybach pracy, ma też możliwość wybierania początku wyzwalania zdarzenia i dysponuje wbudowanym timerem okresu z zewnętrznym wejściem zerowania.
Rys. 7. Idea zastosowania HLT w układzie sterowania silnikiem
Układy logiki konfigurowalnej Configurable Logic Cell (CLC) pełnią funkcję spoiwa łączącego moduły peryferyjne pracujące niezależnie od rdzenia. Mogą wykonywać funkcje logiczne AND/OR/XOR/NOT/NAND/NOR/XNOR dla maksymalnie 32 zewnętrznych lub wewnętrznych wejściowych sygnałów cyfrowych. Sygnały zewnętrzne są podawane na wyprowadzenia mikrokontrolera, a sygnały wewnętrzne pochodzą z wyjść modułów peryferyjnych. Sygnały z wyjść CLC można przekierować na wejścia modułów peryferyjnych lub na wyprowadzenia mikrokontrolera.
CLC umożliwiają wykonywanie szeregu połączeń pomiędzy układami peryferyjnymi wewnątrz układu, dzięki czemu znacznemu uproszczeniu ulega układ elektryczny sterownika, a co za tym idzie – projekt płytki drukowanej. Programowa konfiguracja CLC pozwala na zmiany w połączeniach modułów bez zmiany projektu płytki, a więc układ sterowania jest otwarty na modyfikacje wykonywane tylko drogą programową. Na rys. 8. pokazano przykład konfigurowania modułu CLC.
Rys. 8. Przykład konfiguracji modułu CLC
Mikrokontrolery PIC18Q10 maja również wbudowany moduł Peripherial Pin Select (PPS). PPS wykonuje programowalną konfigurację przypisania sygnałów wejściowych i wyjściowych dowolnego cyfrowego układu peryferyjnego do wybranych wyprowadzeń mikrokontrolera. Podobnie jak opisywany wyżej CLC, PPS może znacznie uprościć proces projektowania sprzętu i umożliwić późniejszą konfigurację gotowego urządzenia zależnie od potrzeb. Możliwa jest też zmiana przypisania wyprowadzeń w trakcie działania programu.
Oba moduły, CLC i PPS, są dość kłopotliwe w ręcznej konfiguracji. Dużą pomocą jest firmowy darmowy konfigurator Microchip Code Configurator (MCC) wbudowany (jako wtyczka) w oprogramowanie MPLAB X. Na rys. 9. pokazano okno konfigurowania PPS we wtyczce MCC.
Rys. 9. Konfiguracja przypisania linii modułów peryferyjnych do wyprowadzeń mikrokontrolera
Jak każde nowoczesne mikrokontrolery, PIC18FQ10 zostały wyposażone w tryby oszczędzania energii IDLE i DOZE. Oszczędzanie energii można zintensyfikować przez zastosowanie właściwości PMD (Peripherial Module Disable). PMD programowo włącza zasilanie tylko tych układów peryferyjnych, które są potrzebne. Tryby oszczędzania energii wykorzystują wiodącą technologię eXtreme Lower Power (XLP).
Podsumowanie
Rodzina mikrokontrolerów PIC18FQ10 jest przykładem konsekwentnego rozwijania pomysłu na połączenie stosunkowo prostego 8-bitowego rdzenia z zaawansowanymi peryferiami pracującymi niezależnie od tego rdzenia. Rola CPU sprowadza się do włączenia układu peryferyjnego, skonfigurowania parametrów pracy, skonfigurowania ewentualnych połączeń pomiędzy peryferiami za pomocą CLC i reakcji na zadziałanie, najczęściej w postaci przyjęcia przerwania. Pozwala to na budowanie niebywale szybkich układów sterowania pracujących w czasie rzeczywistym. Nie do przecenienia w przemysłowych układach sterowania są: wbudowane mechanizmy ochrony danych zapisanych w pamięci programu i ochrony transmisji oraz wbudowany moduł WWDT. Odporność na zakłócenia podnosi możliwość zasilania układu napięciem +5V, co jest dzisiaj coraz rzadziej spotykane. Konfigurowanie przypisania linii układów peryferyjnych do wyprowadzeń mikrokontrolera oraz programowalne łączenie układów peryferyjnych wewnątrz mikrokontrolera pozwala na elastyczne projektowanie układu elektrycznego sterownika wykorzystującego PIC18FQ10. Wbudowane wydajne tryby oszczędzania energii mogą być wykorzystywane w aplikacjach wymagających małych poborów prądu, na przykład zasilanych bateryjnie. Na koniec warto wspomnieć o szerokim wsparciu projektantów przez dostęp do darmowych firmowych narzędzi projektowych: środowisku MPALB X z wtyczką konfiguratora MCC i darmowych kompilatorach języka C (bez optymalizacji kodu). Dostępny jest też pracujący w chmurze pakiet projektowy MPLAB Xpress IDE. Tradycyjnie już Microchip przygotował szereg projektów przykładowych, not aplikacyjnych i materiałów szkoleniowych, pomocnych w nauce i wdrożeniu się do programowania układów PIC18Q10.
Tomasz Jabłoński