- zawiera procesor LPC845 (30 MHz, 64 kB Flash, 16 kB RAM, 29 GPIO),
- dzięki wbudowanemu bootloaderowi procesor można programować w systemie korzystając z portu szeregowego UART,
- mechanicznie i po części elektrycznie moduł jest zgodny z Arduino Every.
Struktura wewnętrzna układów rodziny LPC84x została pokazana na rysunku 1. Są to najbardziej rozbudowane układy z serii LPC8xx z rdzeniem Cortex M0+. Wybrany typ – LPC845, pracuje z taktowaniem do 30 MHz, został wyposażony w 64 kB pamięci Flash, 16 kB pamięci RAM i elastycznie konfigurowane 29 wyprowadzeń GPIO (obudowa HVQFN33). Ponadto zawiera układy peryferyjne, takie jak USART, I2C, SPI, ADC i DAC. Dzięki wbudowanemu bootloaderowi procesor można programować w systemie korzystając z portu szeregowego UART. Bootloader jest umieszczony w wydzielonej części pamięci i nie ma ryzyka jego przypadkowego skasowania. Moduł mechanicznie i po części elektrycznie jest zgodny z Arduino Every.
Budowa i działanie
Schemat minimodułu został pokazany na rysunku 2. Na niewielkiej płytce drukowanej umieszczono wszystkie elementy niezbędne do rozpoczęcia pracy z LPC845. Oprócz procesora U2 istotnym elementem jest konwerter USB-USART typu FT234XD. Pełni on funkcję programatora współpracującego z wbudowanym bootloaderem i aplikacją FlashMagic lub konwertera USB-UART łączącego LPC845 z komputerem nadrzędnym. Układ FT234XD pracuje w typowej aplikacji, dioda LD1 sygnalizuje aktywność portu szeregowego niezależnie od kierunku transmisji.
Płytka może być zasilana na dwa sposoby, pierwszy to zasilanie poprzez gniazdo USB, drugi, przez złącze szpilkowe na PCB napięciem 5 V. Dioda D1 separuje dostępne źródła, stabilizator U3 dostarcza napięcia 3,3 V do zasilania mikrokontrolera. Obecność zasilania sygnalizuje dioda LD2 oznaczona PWR. Napięcie odniesienia VREF dla przetwornika AD podlega dodatkowej filtracji przez elementy FB2, C14, C15 i może zostać pobrane z wyprowadzenia AREF-3 złącza na PCB lub z wewnętrznego napięcia 3,3 V po instalacji zwory AREF.
Wszystkie wyprowadzenia GPIO są w standardzie 3,3 V, wyprowadzono je na listwy szpilkowe o rozstawie zgodnym z płytkami stykowymi i prototypowymi. Wbudowane złącze SWD umożliwia programowanie i debugowanie także poprzez zewnętrzny programator np.: ZL33PRG. Płytkę uzupełniają dwa przyciski: RES dla restartu procesora i ISP dla wprowadzenia U2 w tryb programowania. Do wyprowadzenia P16 podłączona jest dodatkowa dioda LED LD3. Rezystor RP1 polaryzuje wyprowadzenia interfejsu SWD i ISP.
Montaż i uruchomienie
Moduł zmontowany jest na dwustronnej płytce drukowanej, dokładny opis montażu jest zbędny. Rozstaw złącz umożliwia montaż modułu na płytkach prototypowych lub stykowych o rozstawie 100 milsów. Aby zachować mały rozmiar, elementy montowane są dwustronnie. Schemat płytki PCB wraz z rozmieszczeniem elementów pokazano na rysunku 3.
Moduł zmontowany ze sprawnych elementów nie wymaga uruchamiania. Przy pomocy oprogramowania FT_Prog należy skonfigurować tylko wyprowadzenia GPIO układu FT234XD zgodnie z rysunkiem 4. Należy ustawić pin C0 na sygnalizację sumy sygnałów RXLED+TXLED. Przykładowa konfiguracja dołączona jest do materiałów dodatkowych. Po restarcie FT234XD, można już używać modułu we własnej aplikacji.
Wprowadzenie modułu w tryb programowania (uruchomiony bootloader) odbywa się poprzez przytrzymanie przycisku ISP w trakcie restartu procesora przyciskiem RES. Po uruchomieniu programu FlashMagic, wybraniu typu procesora LPC845M301JHI33 i aktywnego portu szeregowego konwertera USB-UART, warto sprawdzić sygnaturę układu wybierając ISP → Read Signature (rysunek 5). Jeżeli odczytuje się prawidłowo, można przejść do programowania układu.
Do szybkiego rozpoczęcia pracy z modułem można użyć darmowego środowiska MCUXpresso i przykładów przygotowanych dla procesora LPC845. Po niewielkiej modyfikacji przykładów można dostosować je do płytki Every. W materiałach dodatkowych udostępniony jest plik LPC845_PWM_LED.bin przygotowany na podstawie przykładu: LPC845_PWM_LED dostosowany do procesora LPC845M301JHI33. Po zaprogramowaniu modułu i uruchomieniu terminala portu szeregowego z ustawieniami 9600, 8, N, 1 możliwa jest zmiana wypełnienia PWM sterującego LED poprzez naciśnięcie dowolnego klawisza, każdorazowo zwrócona zostanie aktualna wartość PWM, a dioda LD3 zmieni jasność świecenia. Aktywna transmisja potwierdzana jest świeceniem diody UART, a obecność zasilania sygnalizuje dioda PWR.
Adam Tatuś, EP
- R1, R2: 27 Ω
- R3: 10 kΩ
- R4: 1 kΩ
- R5, R6: 330 Ω
- R7, R8: 4,7 kΩ
- RP1: 22 kΩ drabinka SMD CRA06S08
- C1, C2: 47pF
- C3, C5, C6, C9, C13, C15, C16: 0,1 µF
- C4: 4,7 µF
- C7, C8: 10 µF
- C12, C14: 10 nF
- D1: dioda Schottkiego PMEG2005EJ (SOD323F)
- LD1: LED SMD0603 żółta
- LD2: LED SMD0603 zielona
- LD3: LED SMD0603 czerwona
- U1: FT234XD (DFN12_045)
- U2: LPC845M301JHI33 (QFN32)
- U3: MCP1700T-3302MB (SOT-89)
- FB1, FB2, FB3: ferryt 600 R/200 mA
- AREF: zwora 0R 402
- ArdEVERY: złącze SIP15, 2 szt.
- SWD: złącze 2×5 1,25 mm męskie SMD
- ISP, RES: mikroprzełącznik
- USB: złącze micro-USB