Rodzina mikrokontrolerów NXP LPC54000 – przegląd cech i możliwości 2-rdzeniowców Cortex-M
Rodzina LPC5411x MCU Family
Zestawienie mikrokontrolerów rodziny LPC5411x pokazano w tabeli 2.
Tab. 2. Zestawienie mikrokontrolerów rodziny LPC5411x
Układy obydwu rodzin są wyposażone w rdzeń Cortex-M4 i koprocesor Cortex M0+ (zależnie od typu) oraz w takie same układy peryferyjne Różnice to głównie większa pamięć danych SRAM (do 192 kB), pamięć Flash do 256 kB oraz interfejs USB i interfejs mikrofonu cyfrowego.
Wbudowany interfejs USB może pracować z maksymalną prędkością Full Speed i nie wymaga stosowania dodatkowego sygnału zegarowego o częstotliwości stabilizowanej kwarcem. Interfejs mikrofonu cyfrowego składa się z mikrofonu i układu DMIC realizującego cyfrową obróbkę sygnału audio. To rozwiązanie wyraźnie ogranicza pobór mocy w układach wymagających toru audio i zasilanych bateryjnie.
Dla rodziny LPC5411x przygotowano moduł o nazwie OM13089 LPCXpresso54114 z dwurdzeniowym mikrokontrolerem LPC54114. Budowa modułu jest bardzo podobna do LPCXpresso54102. Oba moduły różnią się – co oczywiste – zastosowanym mikrokontrolerem oraz zabudowaniem pamięci Flash o pojemności 8 Mb z interfejsem SPI.
Rodzina LPC546xx
Mikrokontrolery tej rodziny maja wbudowany rdzeń Cortex-M4, który może być taktowany częstotliwością do 200 MHz. Szybki, wydajny, 32-bitowy rdzeń w połączeniu z dużą pamięcią programu Flash o pojemności do 512 kB oraz pamięci danych do 200 kB predestynują te układy do zastosowań w aplikacjach wymagających dużej mocy obliczeniowej. Mogą to być układy kontroli budynków, medyczny sprzęt diagnostyczny, wieloprotokołowe węzły komunikacyjne itp.
Zestawienie mikrokontrolerów tej rodziny pokazano w tabeli 3, a ich schemat blokowy na rysunku 4.
Tab. 3. Zestawienie mikrokontrolerów rodziny LPC546xx
Wiele interfejsów peryferyjnych: komunikacyjne, cyfrowe i analogowe jest zbudowana podobnie jak w opisywanych już rodzinach. Jednak z racji większych możliwości obliczeniowych i większej ogólnej wydajności dodano interfejsy realizujące bardziej zaawansowane zadania.
Interfejsy szeregowe zostały rozbudowane o zaawansowane moduły transmisyjne:
- interfejsy hosta HS USB 2.0 i hosta FS USB 2.0 z szybkim układami PHY wbudowanymi w strukturę układu,
- obsługa połączeń internetowych jest wspierana przez moduł MAC z interfejsem MII/RMII i obsługą Audio Video Briding (AVB) i dedykowanym kanałem DMA,
- interfejs SPIIF z funkcją XIP do szybkiej obsługi pamięci Flash z interfejsem SPI/DSP/QSPI,
- dwa moduły CAN FD z dedykowanym kanałem DMA,
- dwa interfejsy Smart Card ISO7816 ze wsparciem DMA.
Również interfejsy cyfrowe również rozbudowano i dodano nowe możliwości. Najważniejsze z nich to:
- rozbudowanie układu DMA do 30 kanałów i 24 sygnałów wyzwalających,
- dodanie interfejsu obsługi kart SD ze wsparciem mechanizmu DMA,
- dodanie sterownika pamięci zewnętrznej External Memory Controller ze wsparciem statycznych pamięci RAM i ROM i dynamicznych pamięci SDRAM z zegarem do 100 MHz,
- dodanie sterownika paneli LCD typu STN i TFT o maksymalnej rozdzielczości 1024×768 pikseli i 24-bitowej głębi koloru. Sterownik wykorzystuje do przesyłania danych kanał DMA.
Tak rozbudowane układy pozwalają na tworzenie aplikacji z graficznymi interfejsami użytkownika, aplikacji sieciowych (na przykład IoT) czy aplikacji stosowanych w przemyśle motoryzacyjnym.
Tu również producent zadbał o odpowiednie wsparcie w postaci modułów ewaluacyjnych. Jednym z takich modułów oferowanych przez NXP jest OM13092 LPCXpressso54608 z mikrokontrolerem LPC54608 pokazany na fotografii 5.
Podobnie jak w modułach wcześniej opisywanych rodzin umieszczono na płytce programator/debugger USB link2 z CMSIS-DAP i opcjonalnym protokołem Segger J-Link.
Jak widać na fotografii 5, jednym z elementów zestawu jest wyświetlacz graficzny LCD o rozdzielczości 272×480 pikseli z pojemnościowym ekranem dotykowym. Ponadto na płytce znajdziemy:
- 3 x LED oraz przyciski RESET, ISP i USER,
- złącza zgodne ze standardem Arduino UNO i PMOD,
- pamięć Flash o pojemności 128 Mb Micron MT25QL128 z interfejsem Quad SPI obsługiwanym przez interfejs SPDIF,
- pamięć SDARAM o pojemności 16MB Micron MT48LC8M16A2B4,
- cyfrowy mikrofon SPH0641LM4H,
- akcelerometr NXP MMA8652FCR1,
- stereofoniczny kodek audio z liniami wejściowymi i wyjściowymi,
- łącze Ethernet 10/100 Mb/s z konektorem RJ45,
- port USB z złączami USB A/B do pracy jako host lub urządzenie,
- złącze dla kart SD.
Jest to bardzo dobrze wyposażony moduł pozwalający na testowanie nawet zaawansowanych aplikacji.
Narzędzia programowe
Do programowania mikrokontrolerów będziemy potrzebowali środowiska programowego z kompilatorem i – co dzisiaj oczywiste – bibliotekami zawierającymi obsługę układów peryferyjnych w warstwie abstrakcji HAL i w warstwie sprzętowej oraz bardziej zaawansowane funkcje typu stos USB, TCP/IP, system plików FAT, czy możliwość integracji z systemem RTOS.
Firma NXP ma swojej ofercie środowisko IDE MCUXpresso oparte na Eclipse z wbudowanymi funkcjami edycji, kompilacji i debugowania kodu. MCUXpresso jest całkowicie zintegrowane z programatorami/debuggerami firmowych modułów ewaluacyjnych, w tym z modułami opisywanymi wyżej.
Schemat blokowy MCUXpresso – IDE został pokazany na rysunku 6.
Firmowe biblioteki przygotowane dla mikrokontrolerów NXP są dostępne w pakiecie SDK – MCUXpresso Software Development Kit. SDK ma budowę warstwową, jak to pokazano na rysunku 7.
W warstwie stack/middleware umieszczono miedzy innymi:
- stos host USB i stos OTG,
- system plików FAT FatFs,
- IwIP „lekka” wersja stosu TCP/IP,
- SDMMC wsparcie obsługi kart SD i eMMC,
- DMA Manager – procedury wspierające użycie kanałów DMA,
- jądro systemu RTOS wstępnie zintegrowane z FreeRTOS i uC/OS-II.
Warstwa Peripheral Drivers zawiera procedury (drivery) do konfiguracji i obsługi modułów peryferyjnych. Natomiast w warstwie CMSIS-CORE i CMSIS -DSP umieszczono procedury startowe oraz standardowe biblioteki CMSIS-DSP.
Oprócz narzędzi NXP można również korzystać z komercyjnych pakietów oferowanych przez firmy IAR czy Keil. Niestety obecnie nie jest dostępne wsparcie dla modułów opisywanych rodzin w środowisku ARM mbed.
Opisane w artykule trzy rodziny mikrokontrolerów są ciekawą propozycją dla projektantów poszukujących mikrokontrolerów do swoich aplikacji. Producent oferuje bogato wyposażone wydajne układy (w tym dwurdzeniowe) z modułami ewaluacyjnymi i wszystkimi niezbędnymi narzędziami programistycznymi.