Mikrokontrolery do zadań specjalnych
W artykule przedstawiamy przegląd mikrokontrolerów, które wyróżniają się na rynku przez swoją specjalizację. Przyzwyczailiśmy się do tego, że wewnętrzne wyposażenie mikrokontrolerów jest imponująco bogate, że ich moce obliczeniowe i pojemności pamięci minimalizują ograniczenia w działaniach programistów, a praktycznie każdy dostępny model MCU doskonale nadaje się do każdej, nawet bardzo wymagającej aplikacji. Czy rzeczywiście rozwiązania uniwersalne są optymalne dla każdej aplikacji?
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 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.
Rysunek 1. Schemat blokowy mikrokontrolerów STM8T
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.
Rysunek 2. Wewnętrzna budowa mikrokontrolera STM8SPLNB1
Prezentowany układ jest dostarczany w 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.
Rysunek 3. Schemat aplikacyjny mikrokontrolera STM8SPLNB1
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.
Rysunek 4. Schemat blokowy układu STSPIN32F060x
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. Indywidulane 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 pod 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 zachowawcze jeśli chodzi o wyposażenie: jej „specjalność” przejawia się w rozszerzonym zakresie temperatur otoczenia aż do +150oC, 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 Microchip,
- wybrane modele MSP430F z oferty Texas Instruments.
Firma NXP pobiła także rekord dolnej dopuszczalnej temperatury otoczenia, którą przesunęła aż do -65oC – 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.
Rysunek 5. Schemat blokowy modułu PLU (Programmable Logic Unit) stosowanego w mikrokontrolerach LPC55S6X
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.
Rysunek 6. Okno programu narzędziowego ADuC PLA Tool
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 Configurable Logic Cell (CLC). 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.
Rysunek 7. Schemat blokowy modułu CLC (Configurable Logic Cell) stosowanego w mikrokontrolerach rodziny PIC
Podobne rozwiązania, ale nazwane Configurable Custom Logic (CCL), 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.
Rysunek 8. Schemat blokowy modułu CCL (Configurable Custom Logic) stosowanego w mikrokontrolerach serii Atmega oraz ATSAM
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.
Rysunek 9. Schemat blokowy układu LPC8N04 ze zintegrowanym blokiem NFC
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ą w sieci) 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.
Rysunek 10. Fragment schematu blokowego z elementami „bezpiecznymi” w CPU w mikrokontrolerach S1JA firmy Renesas
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.
Rysunek 11. Schemat blokowy sprzętowego interfejsu DALI stosowanego w mikrokontrolerach S128 firmy Renesas
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.
Rysunek 12. Działanie modułów BCCU stosowanych w mikrokontrolerach rodziny XMC firmy Infineon
Rysunek 13. Działanie systemu rozmywania stromych zboczy pomiędzy kolejnymi dyskretnymi stopniami jasności LED
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 Low Energy Sensor Interface (LESENSE – rysunek 14), który może automatycznie monitorować 16 kanałów z dołączonymi czujnikami (pojemnościowymi, rezystancyjnymi, LC, cyfrowymi). Moduł ten (schemat blokowy LESENSE pokazano na rysunku 14) 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.
Rysunek 14. Konfigurowalny interfejs LESENSE stosowany w mikrokontrolerach rodziny EFM32GG11 firmy Silicon Labs
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 firma Cypress zaimplementowała 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. Jak widać, jej budowa jest bardzo bliska klasycznym rozwiązaniom stosowanym w układach CPLD.
Rysunek 15. Budowa bloków UDB stosowanych w mikrokontrolerach PSoC 6 firmy Cypress
Rysunek 16. Komórki PLD, z których składają się bloki UDB
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).
Rysunek 17. Schemat blokowy części analogowej stosowanej w mikrokontrolerach PSoC 6
Rysunek 18. Schemat ilustrujący budowę toru trasującego drogę sygnałów analogowych wewnątrz mikrokontrolera
Do systemów pomiarowych
Bezkonkurencyjną ofertę mikrokontrolerów do systemów pomiarowych 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.
Rysunek 19. Schemat blokowy wyspecjalizowanego mikrokontrolera ADuCM355 przeznaczonego do budowy urządzeń z sensorami chemicznymi
Rysunek 20. Schemat blokowy analogowego interfejsu wejściowego z systemem kondycjonowania sygnału stosowanego w mikrokontrolerach ADuCM350
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ża 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 8052, 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.