- 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.
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).
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.
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.
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.
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
- 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 Ω
- 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)
- 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)
- 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)