Programowanie ISP mikrokontrolerów LPC1100

Firma NXP przewidziała kilka możlifwości programowania pamięci Flash dla kodu programu w mikrokontrolerach LPC1100. W zależności od potrzeb oraz posiadanego sprzętu mikrokontrolery można programować przez interfejsy:
– JTAG-SWD (programator ULINK2 lub odpowiednik),
– CAN (tylko układy z CAN, np. LPC11Cxx),
– USB metodą przeciągnij i upuść,
– UART (program Flash Magic firmy NXP – wykorzystywany w zestawie ZL32ARM).

 

 

Tu kliknij, żeby przejść do strony książki „Mikrokontrolery LPC1100. Pierwsze kroki”.

Pierwsze rozwiązanie (JTAG-SWD) jest najlepsze w przypadku uczenia się i prac prototypowych, gdyż umożliwia podgląd na żywo stanu pamięci procesora oraz jego zatrzymywanie i pracę krokową (debugging). Niestety potrzebny jest specjalny, dość drogi programator. Ponadto, ze względu na niewielką liczbę  wyprowadzeń GPIO mikrokontrolera zastosowanego w zestawie ZL32ARM, nie wyprowadzono w nim interfejsu JTAG-SWD. Niemiej jednak, jeśli tylko ktoś ma możliwość skorzystania z programatora ULINK firmy Keil, to można go za pomocą prostej przejściówki dołączyć do odpowiednich wyprowadzeń zestawu ZL32ARM.
Jeżeli w projekcie używamy interfejsu CAN i stosujemy kilka mikrokontrolerów, to jest możliwość zdalnego, indywidualnego ich programowania. Bootloader przyjmujący kod programu poprzez interfejs CAN jest zaszyty w pamięci ROM mikrokontrolerów. Szczegółowy opis narzędzi i oprogramowania do tego celu jest dostępny na stronie producenta mikrokontrolera.
Mikrokontrolery ze sprzętowym interfejsem USB, jak zapowiada firma NXP, będzie można programować metodą przeciągnij i upuść. Układ dołączony do komputera zgłosi się jako dysk twardy, na który należy skopiować plik .bin z kodem programu.
Programowanie poprzez port szeregowy (wykorzystane w zestawie ZL32ARM) jest rozwiązaniem najtańszym, najprostszym i dostępnym dla każdego układu serii LPC1100. Wymaga jedynie prostego konwertera poziomów logicznych (MAX3232 lub gotowego modułu KAmodRS) lub scalonego stosu USB (konwerter USB/COM) np. FT232RL firmy FTDI.

Zestaw ZL32ARM wyposażono w taki konwerter, dzięki czemu za pomocą portu USB zasilimy naszą płytkę testową, zaprogramujemy ją oraz będziemy mogli się z nią komunikować przez wirtualny port COM.
Do zaprogramowania pamięci Flash mikrokontrolera jest potrzebny program Flash Magic dostępny bezpłatnie na stronie.

Główne okno programu FlashMagic

Główne okno programu FlashMagic

 

 

Użycie aplikacji jest na tyle proste, że nie wymaga szczegółowego omówienia. FlashMagic akceptuje pliki wejściowe w formacie .hex. Na rysunku powyżej widać zalecane wartości poszczególnych parametrów, należy tylko pamiętać o wybraniu właściwego numeru portu COM, na którym zostanie ulokowany przez system Windows konwerter USB/COM (numer portu najłatwiej odnaleźć w systemowym Menedżerze Sprzętu – rysunek poniżej). Obsługę programu (kolejność kroków) ułatwiają numery umieszczone przy poszczególnych fragmentach okna głównego.

Okno systemowego Menedżera Sprzętu w Windows XP z widocznym USB Serial Portem

Okno systemowego Menedżera Sprzętu w Windows XP z widocznym USB Serial Portem

 

Prędkość transmisji danych do pamięci Flash dobieramy doświadczalnie, zaczynając np. od 9600 bodów. W przypadku zestawu ZL32ARM, w którym magistrala RS232 jest bardzo krótka (licząc od konwertera FT232RL do mikrokontrolera), możliwa jest komunikacja z prędkością 115 200 bodów.

FlashMagic podczas programowania mikrokontrolera - trwa weryfikacja poprawności zapisu

FlashMagic podczas programowania mikrokontrolera – trwa weryfikacja poprawności zapisu

 

 

O autorze