Współcześnie produkowane mikrokontrolery bazują głównie na architekturach ARM Cortex-M, tylko niewielka liczba producentów wprowadza na rynek pojedyncze nowe modele układów bazujących na rdzeniach będących natywnymi opracowaniami. Są to głównie mniej lub bardziej udoskonalane rdzenie znane na rynku od lat '90 ubiegłego wieku, jak PIC, AVR, a nawet - ciągle żywy! - rdzeń 8051. Trend konwersji architektur MCU w kierunku Cortex-M jest bardzo silny, do tego poparty niskimi (i malejącymi) cenami nowych układów, produkowanych zazwyczaj w "gęstych" technologiach półprzewodnikowych pozwalających na minimalizację powierzchni krzemu.
Podobnej unifikacji są poddawane także peryferia integrowane w mikrokontrolerach: producenci integrują w oferowanych układach dużą liczbę modułów peryferyjnych, standardem nawet w niewielkich mikrokontrolerach jest kilka interfejsów komunikacyjnych, timery, przetwornik A/C itp. elementy, niegdyś wymagające bardzo precyzyjnego dobierania typu mikrokontrolera do wymogów aplikacji.
W intensywnym trendzie homogenizacji rynku mikrokontrolerów i maksymalizacji ich uniwersalności łatwo przegapić inny, znacznie bardziej interesujący: uwzględnianie przez producentów wymogów specyficznych aplikacji, wymagających wyspecjalizowanych interfejsów sprzętowych. Kilka wybranych przykładów takich mikrokontrolerów "specjalnych" przedstawiamy w artykule. Kryterium "specjalności" prezentowanych układów wynika z subiektywnej oceny autora, z myślą o czytelnikach EP skupiamy się na rozwiązaniach najbardziej spektakularnych, przygotowanych przez największych rynkowych graczy.
STM8T - ProxSense do usług
Są to 8-bitowe mikrokontrolery firmy STMicroelectronics, bazujące na rozwiązaniach znanych z produkowanej od wielu lat rodziny STM8. Wyróżniają się one na rynku wbudowanym interfejsem ProxSense, który umożliwia budowę zaawansowanych nastawników, przełączników i sensorów pojemnościowych o maksymalnej liczbie pól czujników wynoszącej 300. Interfejs ProxSense jest jednym z najdoskonalszych obecnie opracowań bazujących na sensorach pojemnościowych, przeznaczonym do wykrywania obecności i ruchu różnych obiektów w niewielkiej odległości od pola sensorów. Ma wbudowany zaawansowany system autokalibracji oraz kompensacji zmian środowiskowych, dzięki czemu jego niezawodność w realnych aplikacjach jest bardzo wysoka.
Mikrokontrolery STM8T - poza standardowym rdzeniem - wyposażono także w interfejsy komunikacyjne SPI, I2C i UART, timery oraz pamięć Flash o pojemności 16 kB.
Schemat blokowy mikrokontrolerów STM8T pokazano na rysunku 1.
STM8S - specjalizacja w satelitach
Mikrokontroler STM8SPLNB1 z rodziny STM8S jest konstrukcyjnie zoptymalizowany do stosowania w odbiorczych systemach satelitarnych wyposażonych w konwertery zgodne ze standardem DiSEqC. Wewnętrzna budowa STM8SPLNB1 jest mało mikrokontrolerowa (rysunek 2) przede wszystkim ze względu na brak wewnętrznych uniwersalnych timerów czy interfejsów komunikacyjnych, poza widocznymi na schemacie blokowym 4 kanałami I2C oraz sprzętowym transcieverem DiSEqC. Interfejsy te służą do konwersji protokołów komunikacyjnych pomiędzy konwerterami satelitarnymi i routerami w systemach odbiorczych.
Prezentowany układ jest dostarczany z oprogramowaniem przygotowanym przez firmę STMicroelectronics, jego działanie można modyfikować poprzez zmianę tablicy konfiguracyjnej przechowywanej w wewnętrznej pamięci EEPROM.
Schemat aplikacyjny mikrokontrolera STM8SPLNB1 pokazano na rysunku 3.
STSPIN32 - kontrolery i sterowniki silników
Układy STSPIN32 firmy STMicroelectronics to zintegrowane sterowniki silników elektrycznych, produkowane w technologii SiP (System in Package), składające się z:
- mikrokontrolera z rdzeniem Cortex-M0,
- driverów bramek dołączanych z zewnątrz tranzystorów mocy,
- modułów pomocniczych, których konfiguracja zależy od typu układu.
Schemat blokowy układu STSPIN32F060x pokazano na rysunku 4.
Układy z tej rodziny charakteryzują się integracją jednego z najpopularniejszych mikrokontrolerów z Cortex-M0 z oferty STMicroelectronics - STM32F031 - którego wybrane peryferia są dostępne dla użytkowników. Indywidualne parametry driverów wyjściowych (wydajność prądowa, szybkość przepompowywania ładunku, napięcie blokady itd.), zakresy napięć zasilających itp. cechy i parametry są zależne od konkretnego typu układu, które są przez producenta optymalizowane Poszerzone zakresy temperaturpod kątem sterowania różnymi typami silników.
Poszerzone zakresy temperatur
Rodzina STM8AF to kolejne układy bazujące na 8-bitowym rdzeniu STM8, ale tym razem zachowawcza, jeśli chodzi o wyposażenie: "specjalność" przejawia się w rozszerzonym zakresie temperatur otoczenia aż do +150°C, co czyni je zgodnymi ze standardem AEC-Q100 grade 0.
Podobne cechy mają mikrokontrolery:
- S912Z, S9S08G, LPC11xx, LPC12xx firmy NXP,
- TLE984x oraz rodzina Aurix firmy Infineon,
- SPC58 z oferty STMicroelectronics,
- wybrane modele PIC18K/F oraz PIC24HJ/EP, ATtiny16x produkowane przez Michrochip,
- wybrane modele MSP430F z oferty Texas Instruments.
Firma NXP pobiła także rekord dolnej dopuszczalnej temperatury otoczenia, którą przesunęła aż do -65°C, radzą sobie z nią wybrane modele mikrokontrolerów z rodziny LPC111x.
Wewnętrzna logika konfigurowalna
Kilku producentów mikrokontrolerów dostrzegło konieczność wyposażenia produkowanych mikrokontrolerów w bloki logiki konfigurowalnej, która pozwala w prosty sposób optymalizować pracę mikrokontrolera lub jego interfejsów do specyfiki aplikacji. Przykładem tak wyposażonych mikrokontrolerów jest rodzina LPC55S6X firmy NXP, którą wyposażono w konfigurowalny moduł PLU (Programmable Logic Unit), którego schemat blokowy pokazano na rysunku 5. Budowa tego modułu odpowiada architekturze CPLD bazującej na tablicach LUT z 6 wejściami.
Podobne rozwiązanie oferuje konstruktorom firma Analog Devices w wybranych modelach mikrokontrolerów ADuC701x/702x/712x, które wyposażono w moduły PLA (Programmable Logic Array) o konstrukcji także podobnej do CPLD o 16 komórkach konfigurowalnych. Do konfiguracji bloku PLA producent zaleca używanie programu narzędziowego ADuC PLA Tool (rysunek 6), za pomocą którego można wygenerować plik w języku C, zawierający opis wartości odpowiednich rejestrów mikrokontrolera.
Także Microchip docenił zalety wyposażania mikrokontrolerów w małe bloki logiki konfigurowalnej i kilkanaście modeli mikrokontrolerów PIC10F33x/PIC16F17xx/18xxx/PIC18/dsPIC33 oraz PIC32MM wyposażył w moduł o nazwie CLC (Configurable Logic Cell). Schemat blokowy takiego modułu, zastosowanego w mikrokontrolerach PIC10(L)F320/322 pokazano na rysunku 7. Do konfiguracji CLC producent zaleca używanie graficznego narzędzia zintegrowanego w programie MPLAB Code Configurator.
Podobne rozwiązania, ale nazwane CCL (Configurable Custom Logic), firma Microchip zastosowała w rodzinach mikrokontrolerów: ATmega4809, AML10/11/21/22, SAMD5x oraz SAME5x. Uproszczony schemat blokowy podsystemu CCL firmy Microchip pokazano na rysunku 8.
NFC z MCU
LPC8N04 należy do produkowanej przez NXP rodziny małych układów z rdzeniem Cortex-M0 o nazwie LPC800. Układ LPC8N04 wyposażono w zintegrowany tag NFC (zgodny z ISO14443 type A), który jest dołączony do wewnętrznej magistrali systemowej (rysunek 9). Do mikrokontrolera wystarczy dołączyć antenę NFC i można korzystać (oczywiście po napisaniu odpowiedniego oprogramowania) z zalet tego interfejsu.
TrustZone w mikrokontrolerach dla aplikacji IoT
Rosnące wymagania związane z bezpieczeństwem aplikacji działających na współczesnych mikrokontrolerach (które coraz częściej są dołączone do sieci internetowej) spowodowały, że kilka firm wprowadziło układy wyposażone w bezpieczne rdzenie firmy ARM - Cortex-M23 lub Cortex-M33.
Obydwa rdzenie bazują na nowej architekturze ARMv8-M, przy czym Cortex-M23 jest odpowiednikiem Cortex-M0+ w wersji "bezpiecznej", natomiast Cortex-M33 jest "bezpiecznym" odpowiednikiem rdzenia Cortex-M4. Rdzenie wyposażono w rozszerzenie o nazwie TrustZone, udostępniające aplikacjom dodatkowe instrukcje przydatne w aplikacjach o wymaganym podwyższonym stopniu ochrony danych. Rdzeń Cortex-M23 został użyty w rodzinach mikrokontrolerów: SAML10 i SAML11 firmy Microchip, S1JA firmy Renesas (fragment schematu blokowego z elementami "bezpiecznymi" w CPU pokazano na rysunku 10), NuMicro M23 firmy Nuvoton oraz GD32 firmy GigaDevice. Rdzeń Cortex-M33 został użyty w rodzinach mikrokontrolerów: STM32L5 firmy STMicroelectronics, LPC5500 z oferty NXP oraz modułach SiP nRF91xx firmy Nordic.
DALI - steruj oświetleniem
Rodzina mikrokontrolerów Synergy S128 (Cortex-M0+) firmy Renesas została - jako jedna z niewielu na rynku - wyposażona w sprzętowy interfejs DALI (Digital Addressable Lighting Interface) zgodny ze standardem IEC 62386 version 2. Schemat blokowy tego interfejsu pokazano na rysunku 11, jak można zauważyć realizuje on znaczną część protokołu komunikacyjnego DALI.
W odróżnieniu od często proponowanych przez innych producentów mikrokontrolerów programowych implementacji stosu komunikacyjnego DALI, rozwiązanie zastosowane w rodzinie S128 pozwala na odciążenie CPU, dzięki czemu stosunkowo prosty (mało wydajny) rdzeń mikrokontrolera zachowuje moc obliczeniową na potrzeby aplikacji.
Sprzętowe sterowanie LED-ami
Z myślą o wygodnym sterowaniu LED-ami w aplikacjach sygnalizacyjnych i oświetleniowych firma Infineon wyposażyła wybrane mikrokontrolery z rodziny XMC1000 (XMC1200, XMC1202, XMC1302, XMC1402 oraz XMC1404) w moduły BCCU (Brightness and Color Control Unit), które pozwalają m.in. na inteligentne sterowanie kolorem emitowanym przez LED-y RGB i RGBW. Interfejs BCCM obsługuje do 8 kanałów LED jednocześnie (rysunek 12), każdy kanał może automatycznie sprzętowo obsługiwać rozmywanie stromych zboczy pomiędzy kolejnymi dyskretnymi stopniami jasności LED (rysunek 13), zwiększając liniowość regulacji jasności świecenia odbieranej przez ludzkie oko.
Wszystko dla energooszczędności: konfigurowalny interfejs multisensorowy
Na bardzo interesujący pomysł wpadli inżynierowie firmy Silicon Labs: mikrokontrolery z rodziny EFM32GG11 wyposażyli w konfigurowalny interfejs LESENSE (Low Energy Sensor Interface) - rysunek 14), który może automatycznie monitorować 16 kanałów z dołączonymi czujnikami (pojemnościowymi, rezystancyjnymi, LC, cyfrowymi). Moduł LESENSE, po wykryciu zadanego wcześniej wzorca budzi CPU z trybu oszczędzania energii, co umożliwia programowe obsłużenie wykrytego zdarzenia. Wzorzec wybudzający CPU może składać się z sekwencji zdefiniowanych wartości, jego poprawność jest wykrywana przez dekoder zintegrowany w LESENSE bez udziału CPU. Prezentowany moduł jest natywnym opracowaniem firmy Silicon Labs, która specjalizuje się w ograniczaniu poboru energii przez produkowane przez siebie mikrokontrolery.
Konfigurowalne peryferia analogowe i cyfrowe
Nieco wcześniej zostały wspomniane w artykule rodziny mikrokontrolerów wyposażonych w konfigurowalne bloki cyfrowe o stosunkowo niewielkiej złożoności. Prekursorem takich rozwiązań jest firma Cypress Semiconductor, która w mikrokontrolerach PSoC (Programmable System on Chip) od wielu lat stosuje dwa bloki konfigurowalne: analogowe i cyfrowe. Takie rozwiązanie pozwala na implementację zarówno własnych torów analogowych i cyfrowych, jak i poszerzanie liczby lub możliwości bloków peryferyjnych zaimplementowanych w sprzęcie mikrokontrolerów.
W najnowszej rodzinie mikrokontrolerów PSoC 6 zaimplementowano 12 bloków UDB (Universal Digital Blocks - budowę pokazano na rysunku 15), składających się z komórek PLD, której schemat pokazano na rysunku 16. Budowa jest bardzo bliska klasycznym rozwiązaniom stosowanym w układach CPLD.
Na rysunku 17 pokazano schemat blokowy części analogowej mikrokontrolerów PSoC 6 z modułem Programmable Analog, który można funkcjonalnie skonfigurować w zależności od bieżących potrzeb aplikacji.
Na rysunku 18 pokazano schemat ilustrujący budowę toru trasującego drogę sygnałów analogowych wewnątrz mikrokontrolera oraz możliwości doprowadzenia go do/z pinów układów. Podobne rozwiązania firma Cypress udostępnia w mikrokontrolerach z rodzin PSoC 4, PSoC 5LP, a także nadal produkowanych PSoC 1 (M8C) i PSoC 3 (rdzeń 8051). Konfiguracja bloków peryferyjnych jest możliwa przy użyciu dostępnego bezpłatnie środowiska programistycznego PSoC Creator oraz PSoC Designer (dla starszych typów mikrokontrolerów).
Do systemów pomiarowych
Ofertę, która nie ma na rynku konkurencji, przygotowała firma Analog Devices. W ofercie produkcyjnej tej firmy są dostępne m.in.:
- wyspecjalizowany mikrokontroler ADuCM355 (Cortex-M3) do budowy urządzeń z sensorami chemicznymi (rysunek 19),
- mikrokontrolery ADuCM320i oraz ADuCM322, który powstał z myślą o pracy w systemach światłowodowych jako support dla transceiverów laserowych, w czym pomaga mu wbudowany sprzętowy interfejs MDIO,
- ADuCM350, który ma wbudowany zaawansowany analogowy interfejs wejściowy z systemem kondycjonowania sygnału analogowego (rysunek 20), a powstał z myślą o budowie liczników mediów, w czym pomaga mu zintegrowany interfejs LCD,
- mikrokontrolery ADuCM330WFS/331WFS (Cortex-M3), przeznaczone do systemów pomiarowych z czujnikami z wyjściami mostkowymi, przy czym zintegrowany przetwornik pomiarowy A/C ma rozdzielczość użytkową 20 bitów.
To oczywiście nie są wszystkie typy mikrokontrolerów do systemów pomiarowych produkowane przez Analog Devices, ale omówienie ich specyficznych możliwości i wyposażenia - ze względu na dużą liczbę ważkich szczegółów - wymaga osobnego artykułu. Pewne jest, że w ofercie Analog Devices można znaleźć najbardziej zaawansowane i dopracowane mikrokontrolery pomiarowe, zarówno z rdzeniami 8051, jak nowszymi: ARM7 oraz Cortex-M3/M4.
Słowo na koniec
W artykule przedstawiliśmy przegląd współczesnych mikrokontrolerów wyróżniających się na rynku wewnętrznym wyposażeniem, które pozwala nazwać je mikrokontrolerami do zadań specjalnych. W znacznym stopniu pominięte zostały układy zintegrowane z torami radiowymi (prawdopodobnie poświęcimy im osobny artykuł przeglądowy), a także rozwiązania mało perspektywiczne z punktu widzenia elektronika-praktyka, jak choćby układy DSC produkowane przez Texas Instruments czy rodziny mikrokontrolerów przeznaczone na rynek automotive SPC56/58.
Piotr Zbysiński, EP