Minimoduł z procesorem NXP LPC865

Minimoduł z procesorem NXP LPC865

Moduł z najnowszym procesorem NXP typu LPC865M201JBD64 może być ciekawą alternatywą dla popularnych płytek z procesorami AVR (ArduinoMKR), STM (Nucleo) i uzupełnieniem wcześniej zaprezentowanych z LPC802 i LPC845, szczególnie gdy nie mamy zbyt wiele miejsca, a nie chcemy rezygnować z wydajności i dobrego wyposażenia procesora.

Podstawowe parametry:
  • moduł z najnowszym procesorem NXP typu LPC865M201JBD64,
  • dwa przyciski RES i ISP umożliwiają restart i aktywację wbudowanego bootloadera,
  • moduł zawiera konwerter UART/USB na bazie układu FT230X,
  • złącze SWD umożliwia dołączenie programatora-debuggera np. MCU-LINK NXP.

Strukturę wewnętrzną układów rodziny LPC86x pokazano na rysunku 1. LPC865 to najbardziej rozbudowane układy z rodziny LPC86x M0+, będące kontynuacją układów LPC84x. Wybrany LPC865 z rdzeniem Cortex-M0+, pracuje z zegarem do 60 MHz, ma 64 kB Flash, 8 kB RAM i elastycznie konfigurowane do 54 wyprowadzeń GPIO (obudowa LQFP64), obsługujące m.in.: USART, I³C, I²C, SPI, ADC.

Rysunek 1. Struktura wewnętrzna LPC86x (za notą NXP)

Układy LPC86x i 84x pomimo podobnej budowy nie są w 100% zamienne funkcjonalnie, w LPC86x dodano nowoczesny interfejs I³C, ale zmniejszono rozmiar pamięci RAM i pozbawiono procesor przetwornika DAC. Sposoby migracji pomiędzy LPC86x a LPC84x opisano w nocie AN13803.

Dzięki wbudowanemu bootloaderowi wspierającemu tryby IAP ISP procesor można programować w systemie. Bootloader jest umieszczony w wydzielonej części pamięci, nie ma więc ryzyka jego omyłkowego skasowania. Moduł mechanicznie i po części elektrycznie zgodny jest z Arduino MKR.

Budowa i działanie

Schemat części procesora minimodułu pokazano na rysunku 2. Na niewielkiej płytce drukowanej umieszczono wszystkie niezbędne do rozpoczęcia pracy z LPC865 elementy. Oprócz procesora U1, na płytce umieszczono minimum peryferiów, tj. diodę użytkownika LD2 podłączoną do P10 oraz przycisk SW podłączony do P031 (proszę nie zapomnieć o aktywacji PULL UP dla tego pinu w konfiguratorze).

Rysunek 2. Schemat ideowy układu, część procesora

Dwa przyciski RES i ISP umożliwiają restart i aktywację wbudowanego bootloadera.

Komunikacja szeregowa z bootloaderem odbywa się poprzez UART na wyprowadzeniach P024PRX, P025PTX złącza J2 GPIO. Port UART może zostać podłączony w celu programowania ISP zarówno do typowego konwertera USB/UART, jak i do systemu host, np. komputera SBC. Protokół komunikacyjny opisany jest w nocie aplikacyjnej UM11607. Przy połączeniu ważne jest tylko zapewnienie standardu napięciowego 3,3 V. Jeżeli zależy nam na programowaniu poprzez wbudowany konwerter USB/UART, kosztem drugiego portu szeregowego, należy wylutować rezystory R16, R17 i połączyć odcinkami kynaru wyprowadzenia złącza UART z wyprowadzeniami P024, P025 GPIO J2.

Złącze SWD służy do podłączenia programatora-debuggera np. MCU-LINK NXP, ZL33-PRG lub innego zgodnego. Zasilanie części analogowej jest dodatkowo filtrowane przez FB2, C6, C7.

Moduł zasilany jest napięciem 3,3 V ze stabilizatora LDO U2. Źródłem napięcia może być gniazdo USBC lub złącze GPIO, do którego wyprowadzenia VIN należy podłączyć zasilacz 5...6 V. Napięcia są separowane diodami D1, D2, a LED PWR sygnalizuje obecność 3,3 V.

Przyporządkowanie sygnałów do złącza pokazano na rysunku 3. Jest ono umowne, ponieważ większość GPIO może być przypisana w miarę elastycznie do wyprowadzeń procesora podczas konfiguracji matrycy przełączników. Pin P04 przypisany jest do wybudzania procesora z trybu uśpienia i ma dodatkowe podwieszanie poprzez R6 do 3,3 V. Wyprowadzenia SWD mają wymagane rezystory polaryzujące R9, R10. Jeżeli aplikacja nie jest wyliczona do ostatniego GPIO, warto zachować przypisanie interfejsów UART dla bootloadera, SWD i wyprowadzeń ISP, RESET.

Rysunek 3. Schemat wyprowadzenia sygnałów GPIO

Płytka ma miejsce na kwarc X1 z elementami towarzyszącymi C9, C10. Ze względu na łatwą dostępność procesora tylko w wersji LQFP64 (wersje HVQFN32/48 dostępne są na razie tylko w ilościach produkcyjnych) i ograniczony rozmiar płytki, kilka GPIO jest niestety niedostępnych, interfejs I³C i pomocnicze zasilanie 3,3 V wyprowadzone są na pady PCB I³C i PS na spodzie płytki.

Moduł uzupełnia konwerter UART/USB na bazie układu FT230X w typowej aplikacji, schemat konwertera pokazano na rysunku 4. Interfejs jest doprowadzony do złącza USBC, które oprócz komunikacji umożliwia zasilanie układu. Dioda RTX sygnalizuje aktywną komunikację (ustawiona w konfiguratorze FT_Prog na sygnalizację obu aktywnych sygnałów RX/TX). Jeżeli nie mamy zamiaru korzystać z mostka, można pominąć przy montażu elementy z rysunku 4, a interfejs UART pozostanie dostępny na padach PCB oznaczonych UART na spodzie płytki.

Rysunek 4. Schemat ideowy układu konwertera UART/USB

Montaż i uruchomienie

Moduł zmontowany jest na dwustronnej płytce drukowanej, której schemat pokazano na rysunku 5. Opis montażu jest zbędny. Rozstaw złączy umożliwia zastosowanie modułu na płytkach prototypowych lub stykowych o rozstawie 100 milsów. Aby zachować mały rozmiar, elementy montowane są dwustronnie.

Rysunek 5. Schemat płytki PCB

Moduł zmontowany ze sprawnych elementów nie wymaga uruchamiania. Za pomocą oprogramowania FT_Prog należy skonfigurować GPIO FT230XS, ustawiając pin CB1 na sygnalizację sumy sygnałów RXLED+TXLED i zwiększając wydajność GPIO do 8 mA. Przykładowa konfiguracja ft230_865.xml dołączona jest do materiałów dodatkowych. Po restarcie FT230XS, mostek jest skonfigurowany i można już używać modułu we własnej aplikacji.

Do szybkiego startu z modułem można użyć darmowego środowiska MCUXpresso, które w momencie pisania artykułu dostępne było w wersji 11,7,1_9921 oraz przykładów przygotowanych dla procesora LPC865 (LPCXpresso860). Po niewielkiej modyfikacji przykładów można dostosować je do płytki.

Niestety szybkie programowanie w systemie za pomocą FlashMagic, tak jak to ma miejsce w przypadku pozostałych procesorów LPC8xx, jest niemożliwe, bo program nie jest uzupełniony jeszcze o obsługę LPC86x.

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0402, 1%)
  • R1, R2: 2,2 kΩ
  • R3, R4, R5, R13, R14, R15, R16, R17: 270 Ω
  • R6: 100 kΩ
  • R7, R8: 4,7 kΩ
  • R9, R10, R11, R12: 22 kΩ
  • R18, R19: 5,1 kΩ
  • R20, R21: 27 Ω
  • R22: 470 Ω
Kondensatory:
  • C1, C2, C3, C5, C7, C10, C13, C15, : 0,1 μF 10 V, (SMD0402)
  • CET1: 10 μFT, 10 V tantalowy (3216)
  • C4, C14: 10 μF, 10 V (SMD0603)
  • C6: 0,01 μF, 10 V (SMD0402)
  • C8, C9: 33 pF, 25 V NP0 (SMD0402)
  • C11, C12: 2,2 μF, 10 V (SMD0603)
  • C16, C17: 47 pF, 25 V NP0 (SMD0402)
Półprzewodniki:
  • D1, D2: PMEG2005EJ,115 dioda Schottky’ego (SOD323F)
  • LD1: PWR Led czerwona (SMD0603)
  • LD2: LED Led zielona (SMD0603)
  • LD3: RTX Led żółta (SMD0603)
  • U1: LPC865M201JBD64 (LQFP64)
  • U2: AP7361C-33ER-13 (SOT-223)
  • U3: FT230XS (SSOP16)
Pozostałe:
  • FB1, FB2, FB4, FB5: ferryt BLM18AG331SN1D (SMD0603)
  • FB3: ferryt BLM18EG101 (SMD0603)
  • ISP, RES, SW: mikroprzełącznik (B3U-1000P)
  • J1, J2: złącze SIP14
  • SWD: złącze DS1031 2×5 pinów
  • USBC: złącze USBC (USB4110GTC)
  • X1: kwarc CFPX-180-12M (CFPX-180)
Artykuł ukazał się w
Elektronika Praktyczna
grudzień 2023
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik luty 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje luty 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna luty 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich marzec 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów