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.

Fot. 3. Moduł ewaluacyjny OM13089

 

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

Rys. 4. Schemat blokowy 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.

Fot. 5. Moduł ewaluacyjny LPCXpresso54608

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.

Rys. 6. Schemat blokowy MCUXpresso IDE

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.

Rys. 7. Model warstwowy SDK

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.

O autorze