ISP przy użyciu USB w mikrokontrolerach LPC1300

Narzędzie Windows NXPISP

Program ten jest oparty na platformie Microsoft .NET, dlatego też przy uruchamianiu pliku setup.exe, załączony w pakiecie instalator Visual Studio sprawdzi komputer i ewentualnie pobierze najnowszą wersję .NET. Z tego powodu, należy zapewnić połączenie z Internetem w chwili pierwszego uruchomienia pliku setup.exe. Po aktualizacji .NET nastąpi instalacja programu NXPISP oraz jego uruchomienie. W czasie działania programu, należy kliknąć przycisk Select Firmware, co spowoduje pojawienie się okienka dialogowego pozwalającego wybrać plik .bin. Plik ten zostanie sprawdzony pod kątem spełniania kryteriów prawidłowego kodu użytkownika (Criterion for Valid User Code), które polega po prostu na tym, że pierwsze 8 32-bitowych słów tablicy wektorów sumuje się do zera. Jeśli plik jest prawidłowy, po prawej stronie przycisku Select Firmware pojawi się zielony „ptaszek” (tick/checkmark). W przeciwnym wypadku, pojawi się tam czerwony krzyżyk (X).

Aby zaprogramować układ, należy kliknąć przycisk Update Firmware. Działa on jak przełącznik – pozostaje wciśnięty po kliknięciu i wraca do pozycji wyjściowej kliknięty ponownie. Gdy jest wciśnięty, komputer zostanie przeskanowany pod kątem podłączonych do niego układów NXP pracujących w trybie ISP. Jeśli program znajdzie takie urządzenie, jego firmware zostanie zaktualizowany, a przy przycisku pojawi się zielony „ptaszek”, a przycisk Update Firmware wróci do stanu początkowego (wyciśnięty). Jeśli program nie znajdzie układów NXP, przycisk pozostanie wciśnięty, a narzędzie będzie czekać na podłączenie układu do zaprogramowania. Po znalezieniu i zaprogramowaniu układu, przy przycisku Update Firmware pojawi się zielony „ptaszek”, a przycisk zostanie automatycznie wyciśnięty. Gdy program czeka na podłączenie układu do komputera (przycisk Update Firmware jest wciśnięty), można anulować operację klikając przycisk Update… ponownie i wyciskając go.

Gdy aktualizacja firmware’u dobiegnie końca, ważne jest, aby bezpiecznie usunąć (wymontować) programowany układ z systemu, co daje pewność, że nowy program został skopiowany. Narzędzie NXPISP nie wymontowuje programowanego układu automatycznie. Bezpieczne usuwanie układu z systemu można przeprowadzić przy pomocy ikonki „Bezpieczne usuwanie sprzętu i wysuwanie nośników”, znajdującej się typowo obok zegarka w prawym dolnym rogu ekranu, na pasku zadań lub za pomocą opcji usuwania urządzeń w Eksploratorze Windows. Niepowodzenie tego kroku może skutkować uszkodzeniem skopiowanego firmware’u.

Rys. 4. Widok okna programu Windows NXPISP (C#, Microsoft Visual Studio 2010)

Rys. 4. Widok okna programu Windows NXPISP (C#, Microsoft Visual Studio 2010)

 

Linuksowe narzędzie LinuxNXPISP.sh

Narzędzie LinuxNXPISP.sh to skrypt powłoki bash, który został przetestowany pod Ubuntu 10.04. Aby go uruchomić, należy włączyć okno terminala (z podmenu Akcesoria menu Aplikacje). W oknie terminala trzeba przejść do katalogu, w którym umieszczony jest skrypt, używając komendy cd. Jeśli skrypt został wypakowany z pliku .zip, może nie mieć nadanych praw do wykonywania. Aby je nadać należy użyć komendy chmod +x nazwa_pliku. Następnie, mając układ podłączony do komputera, należy uruchomić skrypt z jednym argumentem – ścieżką do pliku .bin, który ma zostać skopiowany do pamięci Flash.

Rys. 5. Widok terminala po zakończeniu działania skryptu LinuxNXPISP.sh

Rys. 5. Widok terminala po zakończeniu działania skryptu LinuxNXPISP.sh

 

Narzędzie NXPISP dla systemów Mac

Mac NXPISP to plik wykonywalny, który powinien działać na każdej maszynie Macowej z procesorem Intel i systemem Mac OS-X 10.5 lub nowszym. Aby uruchomić program, należy włączyć okno Terminala, które można znaleźć za pomocą wyszukiwarki Spotlight, umiejscowionej typowo w prawym górnym rogu ekranu pod ikonką lupy. W oknie terminala należy przejść do katalogu, w którym znajduje się program, przy użyciu komendy cd. Podobnie, jak w systemach Linuksowych, jeśli plik został wypakowany z archiwum .zip, może on nie mieć nadanych praw wykonywania, co można zmienić za pomocą komendy chmod +x nazwa_pliku.  Program uruchamia się z jednym argumentem – ścieżką do pliku .bin zawierającego nowy firmware. Jeśli układ do zaprogramowania jest podłączony do komputera, aktualizacja nastąpi od razu, po czym program zakończy działanie. Jeśli układ nie jest podłączony, program poczeka, aż urządzenie w trybie ISP zostanie podłączone do USB, zaprogramuje Flash i zakończy działanie.

Rys. 6. Narzędzie Mac OS-X NXPISP

Rys. 6. Narzędzie Mac OS-X NXPISP

 

Podsumowanie

Możliwość programowania In-System urządzeń klasy MSC, czyli pamięci masowych, w którą wyposażone są układy rodziny LPC1300, pozwala uprościć ręczną aktualizację firmware’u w czasie projektowania i prototypowania systemów oraz umożliwia automatyczne aktualizacje w miejscu pracy urządzenia.

Literatura 
[1] Nota aplikacyjna NXP AN10986: USB In-System Programming with the LPC1300

Do pobrania

O autorze