Programowanie ISP mikrokontrolerów STR9 oraz LPC2000

Sposób na ARM9…

…jest także już potrzebny, bo mikrokontrolery z serii STR9, wyposażone w rdzenie ARM966E, niedawno do produkcji wprowadziła firma STMicroelectronics. W odróżnieniu od strategii zastosowanej przez tę firmę w odniesieniu do mikrokontrolerów z rodzin STR71x/73x, tym razem zadbano o udostępnienie kompletu narzędzi umożliwiających wygodne (i tanie!) zaprogramowanie pamięci po zainstalowaniu mikrokontrolerów w systemie. Niezbędny do tego celu jest prosty interfejs sprzętowy FlashLink (oferowany przez dystrybutorów firmy STMicroelectronics, jego budowę przedstawiamy w artykule na str. Xxx) oraz oprogramowanie CAPS (Configuration and Programming Software), które firma STMicroelectronics udostępnia bezpłatnie (publikujemy je na CD-EP9/2006B). FlashLink jest interfejsem pośredniczącym pomiędzy złączem Centronics komputera i JTAG-iem mikrokontrolera.
Program CAPS wymaga instalacji, działa ze wszystkimi wersjami systemu Windows (poza Windows 95). Należy pamiętać, że CAPS nie będzie działał prawidłowo na komputerach z procesorami wyposażonymi w mechanizmy HyperThreading, bowiem nieprawidłowo działają sterowniki obsługujące port Centronics emulujący JTAG. Szczegółowy opis postępowania w przypadku instalacji CAPS-a na komputerze z takim procesorem znajduje się w dokumentacji ulokowanej w katalogu głównym, dostępnej po zainstalowaniu programu.
Obsługa programu, jakkolwiek odbiega od typowych dla aplikacji Windows, jest bardzo przejrzysta i szybko ją opanują także mniej wprawni użytkownicy. Warto zwrócić uwagę, że CAPS umożliwia obsługę także innej rodziny mikrokontrolerów produkowanych przez STMicroelectronics – PSD3000, które występują w menu wyboru układu docelowego obok mikrokontrolerów STR9 (rys. 5).

 

Rys. 5. CAPS jest programem służącym do konfigurowania i programowania mikrokontrolerów z dwóch rodzin: STR9 oraz uPSD3000

Rys. 5. CAPS jest programem służącym do konfigurowania i programowania mikrokontrolerów z dwóch rodzin: STR9 oraz uPSD3000

 

 

 

Rys. 6. Zakładka służąca do konfiguracji generatora zegarowego mikrokontrolera STR911FM44

Rys. 6. Zakładka służąca do konfiguracji generatora zegarowego mikrokontrolera STR911FM44

Po wybraniu docelowego typu mikrokontrolera jest uruchamiany menadżer projektu, za pomocą którego ustala się konfigurację mikrokontrolera, m.in.: częstotliwości i źródło sygnału taktującego (rys. 6), napięcie progowe detektora LVD, pamięć Flash używaną podczas startu mikrokontrolera, sektory zabezpieczane przed modyfikacjami, adres MAC (przechowywany w wydzielonej pamięci OTP) – rys. 7 i wiele innych parametrów z kategorii „ogólnych”. Po ustaleniu parametrów konfiguracyjnych można przejść do programowania mikrokontrolera, do czego służy kolejna zakładka w oknie programu, jak pokazano na rys. 8. Obsługa tej zakładki jest równie przyjazna, jak miało to miejsce w przypadku programu FlashMagic: użytkownik jest prowadzony metodą krok-za-krokiem po kolejnych opcjach.

 

Rys. 7. Zakładka konfiguracji typu programowanej pamięci

Rys. 7. Zakładka konfiguracji typu programowanej pamięci

 

 

 

Rys. 8. Widok fragmentu zakładki służącej do konfiguracji JTAG-a

Rys. 8. Widok fragmentu zakładki służącej do konfiguracji JTAG-a

To wszystko nie wyczerpuje możliwości CAPS-a: za pomocą tego programu można przypisać linie I/O poszczególnych bloków peryferyjnych do fizycznych wyprowadzeń mikrokontrolera. Zadanie to, jakkolwiek należy do elementarnych, jest w przypadku ręcznego dobierania przypisań zadaniem czasochłonnym, bowiem mechanizmy krosowania sygnałów I/O w mikrokontrolerach zapewniają dużą elastyczność, pozwalają przypisać sygnały do wielu różnych wyprowadzeń. O randze problemu niech świadczy fot. 9: jest fragment dokumentacji mikrokontrolera STR911FM44 intensywnie wykorzystywany podczas realizacji prostego projektu…

 

Fot. 9. Próby ręcznego skonfigurowania przypisań linii I/O bloków funkcjonalnych do wyprowadzeń mikrokontrolera wymagają sporej cierpliwości…

Fot. 9. Próby ręcznego skonfigurowania przypisań linii I/O bloków funkcjonalnych do wyprowadzeń mikrokontrolera wymagają sporej cierpliwości…

Konfiguracja przypisań specyficznych linii I/O do fizycznych wyprowadzeń układu jest dzięki CAPS-owi bardzo prosta: z menu wybieramy interesujący nas blok peryferyjny i w wyświetlonym oknie wybieramy opcję przypisywania funkcji do konkretnych wyprowadzeń (rys. 10). Po wykonaniu przypisań, efekt końcowy możemy obejrzeć w efektownym oknie z widokiem obudowy mikrokontrolera (rys. 11).

 

Rys. 10. Sposób konfigurowania przypisań interfejsu UART0 a) oraz GPIO b)

Rys. 10. Sposób konfigurowania przypisań interfejsu UART0 a) oraz GPIO b)

 

 

 

Rys. 11. Wyniki konfiguracji można przeanalizować dzięki wygodnej prezentacji graficznej

Rys. 11. Wyniki konfiguracji można przeanalizować dzięki wygodnej prezentacji graficznej

 

Wynikiem działania tej części programu są pliki nagłówkowe, zawierające między innymi opis konfiguracji mikrokontrolera, zadanej przez użytkownika. Pliki te można wykorzystać zamiast ręcznej konfiguracji portów, która – jak wynika z doświadczeń – jest „błędogenna”.

Podsumowanie

Pojawienie się na rynku mikrokontrolerów z rodziny STR9 spowodowało dwa drobne przełomy, które będą miały istotne konsekwencje dla dalszego rozwoju ARM-owego rynku. Po pierwsze, są to relatywnie tanie mikrokontrolery o wyposażeniu i wydajności obliczeniowej nieosiągalnej przez żadne spośród mikrokontrolerów 8- i większości 16-bitowych. Jest to pierwszy poważny krok w stronę detronizowania mikrokontrolerów z rdzeniami ARM7.
Drugim istotnym aspektem jest opublikowanie dokładnej dokumentacji JTAG-a stosowanego do programowania pamięci Flash w mikrokontrolerach STR9. Dokumentacja dla mikrokontrolerów ARM7 była skrzętnie utajniana przez producentów i firmę ARM i nawet pozorny wyłom w tej szokującej strategii dokonany przez Atmela (w dokumentacji mikrokontrolerów ST91SAM7S) sytuacji zbytnio nie poprawił. Co więcej, mamy do dyspozycji nie tylko dobrą dokumentację, ale także doskonale działające oprogramowanie, za które nie musimy płacić. To był bardzo dobry pomysł!

O autorze