59
Elektronika Praktyczna 10/2004
P O D Z E S P O Ł Y
Zestaw zawiera w środku wszyst-
ko, co jest niezbędne do rozpoczęcia
pracy z nowym procesorem. Naj-
ważniejszym elementem zestawu jest
płytka ewaluacyjna MCB2100 z pro-
cesorem ARM Philips LPC2129 oraz
CD-ROM z dokumentacją zestawu,
przewodnikiem użytkownika, kartami
katalogowymi wszystkich istotnych
układów scalonych oraz firmowym
narzędziem do programowania proce-
sora bezpośrednio przez port szere-
gowy komputera o nazwie LPC210x
ISP
Utility. Dla wielu Czytelników
prawdziwym „daniem głównym” bę-
dzie udostępnione zintegrowane śro-
dowisko Keil Software o nazwie uVi-
sion w wersji 3 oraz wcześniejszej
– 2. Podstawowe funkcje interfejsu
uVision (
fot. 1) obejmują nie tylko
zaawansowany interaktywny edytor
kodu źródłowego zintegrowany z do-
skonałym debugerem i narzędziem do
programowania, ale także komplekso-
we zarządzanie całym projektem wraz
z indywidualną konfiguracją całego
środowiska dla każdego z projektów.
Jakby tego było mało, uVision ofe-
ruje bardzo rozbudowany symulator
peryferii w którym nieocenioną rolę
pełni funkcja umożliwiająca zdefinio-
wanie bardziej zaawansowanych „pu-
łapek” (breakpoints) w języku skryp-
towym opartym o składnię C. Dzięki
temu możemy dokładnie prześledzić
zachowanie się programu pod ką-
tem zmian, jakie zachodzą w ukła-
dach peryferyjnych obsługiwanych
przez docelowy procesor i tworzony
na bieżąco program. Generowanie
przerwań zewnętrznych, symulacja
odbioru i nadawania danych przez
port szeregowy, symulacja napięcia
mierzonego na wejściu przetwornika
A/C, a nawet tak zawansowane sy-
mulacje jak odbiór i nadawanie da-
nych przez I
2
C, to niespotykane do
tej pory funkcje oferowane przez
uVision. Do pełni szczęścia dostaje-
my jeszcze (na licencji GNU) pakiet
narzędzi tj. kompilator i linker firmy
Cygnus uzupełniony przez rozbudo-
wane biblioteki wielu użytecznych
funkcji niezbędnych przy codziennej
pracy. Dysponując dowolnym zasi-
laczem małej mocy (6 V/150 mA),
tzw. „prostym” kablem do transmisji
szeregowej (DB9F/DB9M) oraz kom-
puterem PC, można od razu przystą-
pić do zabawy. A tej jest naprawdę
sporo, zważywszy na to, co oferuje
procesor Philipsa i jakie narzędzia
udostępnia producent zestawu.
Płytka startowa
Przejdźmy do krótkiego opisu
płytki ewaluacyjnej (
fot. 2). Jej głów-
nym elementem jest wyposażony
w rdzeń ARM7TDMI procesor z 256
kB wewnętrznej pamięci Flash, 16
kB wbudowanej SRAM, interfejs ISP
oraz dodatkowo bardzo przydatny
ASP (In-Application Programming),
który pracuje dzięki zapisanemu
w pamięci Flash-ROM boot-loadero-
wi
. Dodatkowo układ ma wbudowa-
ne 2 porty CAN, 4-kanałowy szybki
Otrzymany do testów
zestaw firmy Keil
jest przeznaczony dla
wszystkich entuzjastów
mikrokontrolerów
z rdzeniem ARM. Układy te
są coraz bardziej popularne
nie tylko w zastosowaniach
profesjonalnych, ale także
i na rynku amatorskim.
Doskonałe połączenie
prostoty podstawowej
aplikacji procesora
wraz z wyczerpującą
dokumentacją zestawu,
uzupełnioną multimedialną
prezentacją podstawowych
jego możliwości, pozwala
przełamać „pierwsze lody”
i wprowadzić użytkownika
w arkana projektowania
systemów z wykorzystaniem
najnowszych produktów
Philipsa.
Zestaw startowy z procesorem ARM Philips LPC2129
dla praktyków
Rys. 1
Elektronika Praktyczna 10/2004
60
P O D Z E S P O Ł Y
10-bitowy przetwornik A/C z cza-
sem konwersji ok. 2,44 ms, 2 por-
ty szeregowe (w tym jeden z pełną
obsługą sprzętowego handshakingu),
dwa porty SPI oraz – jak przysta-
ło na Philipsa – szybki sprzętowy
interfejs I
2
C (400 kB/s). Dwa 32-bi-
towe timery (z 4 niezależnymi kom-
paratorami oraz 4 pułapkami) oraz 6
wyjść typu PWM pozwolą rozwinąć
skrzydła wszystkim, którzy projektują
układy sterowania silnikami wielo-
fazowymi lub falownikami. Wbudo-
wany w mikrokontroler układ zegara
czasu rzeczywistego RTC oraz dodat-
kowy timer typu watchdog z pewno-
ścią okażą się niezbędne zwłaszcza
w krytycznych aplikacjach pracują-
cych w czasie rzeczywistym. Cieka-
wostką jest fakt, iż procesor może
współpracować z zewnętrznym oscy-
latorem z zakresu 1...30 MHz, a dla
tych, którzy chcieliby jeszcze szyb-
ciej, producent procesora wbudował
pętlę fazową PLL, dzięki której przy
dołączeniu zewnętrznego sygnału ze-
garowego z zakresu 10...25 MHz efek-
tywna częstotliwość procesora może
wynosić nawet do 60 MHz! Układ
LPC2129 posiada wbudowany port
JTAG, dzięki któremu jest możliwe
śledzenie i debugowanie pracy pro-
cesora, a multipleksowany charakter
interfejsu (za pomocą pinów portu
P1) pozwala na pełne wykorzystanie
wszystkich zalet pracy procesora, tak
jakby pracował on już w układzie
docelowym. Jeśli komuś nie wystar-
cza praca z JTAG-iem i śledzenie
pracy procesora na podstawie stanów
zewnętrznych pinów, może skorzystać
z dodatkowego interfejsu współpracu-
jącego z modułem Embedded Trace
Macrocell
. To właśnie wbudowany
w strukturę ETM pozwala na „praw-
dziwe” śledzenie pracy procesora,
a to dzięki temu, że jest on bezpo-
średnio podłączony do rdzenia pro-
cesora, a nie – jak to zwykle bywa
– do jego wewnętrznej magistrali.
Niestety płytka ewaluacyjna wcho-
dząca w skład kitu posiada jedynie
nieobsadzone punkty lutownicze pod
gniazdo interfejsu ETM. Nic nie stoi
na przeszkodzie, aby w bardziej za-
awansowanych zastosowaniach uzu-
pełnić brakujący element.
Rdzeń procesora jest zasilany na-
pięciem 1,8 V, a jego układy pery-
feryjne 3,3 V, jednak w aplikacjach
wymagających komunikacji w środo-
wisku peryferii pracujących na po-
ziomach TTL procesor sobie poradzi,
a to ze względu na akceptujące ten
zakres uniwersalne porty I/O, których
w przypadku LPC2129 mamy aż 46!
O ile 32-bitowa magistrala adresowa
procesora pozwala na teoretyczne ste-
rowanie obszarem aż 4 GB pamięci
czy I/O, o tyle LPC2129 umieszczo-
ny 64-wyprowadzeniowej obudowie
typu LQFP nie posiada odpowiednie-
go interfejsu. Ci, których interesują
aplikacje wykorzystujące tę cechę,
powinni skierować swoją uwagę na
bliźniacze procesory LPC2xxx, ale
z drugą cyferką „2” (np. LPC2292),
co oznacza, że mamy do czynienia
z wersją procesora w 144-pinowej
obudowie z wyprowadzoną magistra-
lami adresową i danych na zewnątrz
układu.
Na płytce oprócz układu ze-
wnętrznego pracującego oscylatora
znajduje się także kilka innych cie-
kawych układów, m.in. dwa szybkie
(do 1MBd) transceivery wbudowa-
nych w mikrokontroler portów CAN
(TJA1040). Na nie mniejszą uwa-
gę zasługują zastosowane na płytce
miniaturowe stabilizatory produkcji
STMicroelectronics z serii LD1117.
Dzięki bardzo niskiemu efektywnemu
spadkowi napięć przy konwersji (ty-
powo 1 V) możliwe jest zasilanie ca-
łej płytki ewaluacyjnej już napięciem
6 V. Dwa takie stabilizatory zapew-
niają zasilanie procesora oraz nielicz-
nych układów peryferyjnych, a do-
datkowy jeden dostarcza wymaganego
do pracy transceiverów CAN napięcia
5 V. Obsługa komunikacji poprzez
standardowe porty szeregowe przy
zastosowaniu procesora pracującego
przy obniżonym napięciu wymagała
zastosowania odpowiedniego niskona-
pięciowego podwójnego nadajnika/od-
biornika linii. Jego rolę pełni układ
MAX563, jak nietrudno się domyślić
– firmy Maxim. Jest 3-woltowa, nie-
co rozbudowana wersja popularnego
transceivera MAX232. Gwarantowana
Fot. 2
P O D Z E S P O Ł Y
Elektronika Praktyczna 10/2004
62
szybkość sygnałów na każdym kana-
le na poziomie 115200 bd, aktywny
obwód odbiornika nawet w trybie
shutdown
(kiedy układ pobiera je-
dynie 10mA) oraz 3-stanowe wyjścia
TTL/CMOS odbiornika pozwalają na
bezpieczną komunikację procesora
z magistralą RS232. Płytka MCB2100
posiada dodatkowo wizualizację sta-
nów ośmiu wybranych pinów portu
P1 procesora w postaci miniaturo-
wych diod LED, sterowanych za po-
średnictwem niskonapięciowej „bra-
my” 74LV244. Sprawdzenie działania
wbudowanego w mikrokontroler prze-
twornika A/C przy pomiarze napięć
z zakresu 0...3,3 V jest możliwe
dzięki dodatkowemu potencjometrowi
z wygodnym pokrętłem, podłączone-
mu bezpośrednio do wejścia AIN0
przetwornika. Ponadto płytka posia-
da nieobsadzone gniazda z wypro-
wadzeniem pierwszych 24 uniwersal-
nych (typu GPIO) pinów osobno dla
portów P0, jak i P1 procesora oraz
niewielkie, ale przydatne przy pierw-
szych próbach prototypowe pole lu-
townicze o wymiarach 30x20 mm.
Do opisanego zestawu dystrybu-
tor dołączył dodatkowy produkt, tym
razem firmy Hitex. Jest to alterna-
tywne środowisko m.in. do obsługi
narzędzi do uruchamiania złożonych
aplikacji, także dla procesorów ARM
Philipsa w tym opisanego LPC2129.
Zasadniczą, czysto praktyczną cechą
odróżniającą wspomniany już star-
ter-kit Keilaa od produktu Hiteksa
jest obecność sprzętowego interfejsu
JTAG, który podłączony do kompu-
tera poprzez standardowe gniazdo
Centronics (LPT) a np. płytkę ewa-
luacyjną MCB2100 pozwala na pełny
sprzętowy debugging w docelowym
układzie. Do obsługi interfejsu Hi-
tex proponuje zintegrowane środowi-
sko o nazwie HiTOP-5. Podobnie jak
w przypadku produktu Keila, IDE Hi-
teksa oferuje programiście wygodną,
a co najważniejsze, efektywną pracę,
tym razem jednak w uruchamianym
układzie docelowym. HiTOP-5 oferuje
nowoczesny, dla użytkownika syste-
mu Windows, wręcz intuicyjny IDE.
Do najistotniejszych cech oprogramo-
wania HiTOOL należy m.in.:
– Zaawansowane okno programu źró-
dłowego source window, w którym
użytkownik ma nie tylko możli-
wość śledzenia wykonywania pro-
gramu w języku wysokiego po-
ziomu, ale także dzięki opcji edit
możliwe jest bieżące dokonywanie
poprawek z poziomu języka C
i rekompilacja bez potrzeby prze-
łączania się do innego narzędzia,
a następnie powtórzenie symulacji
w układzie docelowym.
– Breakpoints, czyli pułapki, zarówno
te dotyczące kodu (code breakpo-
ints
), jak i danych (data breakpo-
ints
) mogą być od teraz nie tylko
ustawianie albo kasowane, ale tak-
że – co często jest wygodne – dez-
aktywowane, co w praktyce ozna-
cza, że dana pułapka nadal istnie-
je i jest widoczna w oknie źródła,
lecz debugger nie zatrzyma na niej
programu do momentu symulacji,
w której programista postanowi ją
ręcznie uaktywnić (
rys. 3). Bardziej
zaawansowane funkcje edytora pu-
łapek umożliwiają także np. zatrzy-
manie programu, kiedy zaznaczona
jako breakpoint instrukcja wykona-
na zostanie określoną ilość razy,
a nawet kiedy określona zmienna
w pamięci procesora zostanie zapi-
sana albo wywołana bez względu
na znajdujący się w analizowanej
linii warunek (
rys. 4). Co więcej,
każda pułapka może mieć dowol-
ną długość. Oznacza to, że można
zdefiniować warunek zatrzymania
programu w momencie, kiedy np.
podana struktura danych zostanie
w całości zapisana lub odczyta-
na przez program. W najbardziej
skomplikowanych przypadkach od-
najdywania błędów nieoceniona
może okazać się funkcja, w której
programista może zdefiniować całe
sekwencje warunków, które po wy-
konaniu się zatrzymają program
(opcja Define sequence w oknie
Breakpoints
).
– Oparta o wygodną strukturę drze-
wa, rozwijalna lista zawierająca
wszystkie składniki całego projektu,
począwszy od plików źródłowych,
poprzez zadeklarowane przez użyt-
kownika zmienne i zdefiniowane
w projekcie funkcje (
rys. 5).
– Inteligentne okno podglądu watch
window
, nie tylko samoczynnie
wyświetlające po aktywacji zmien-
ne lokalne aktualnie wskazywanej
w oknie źródła funkcji, lecz także
w przypadku bardziej złożonych
struktur, pozwalające rozwinąć wie-
lopoziomowo nawet najbardziej za-
gnieżdżone zmienne dzięki użyciu
struktury drzewa, podobnie jak to
ma miejsce w przypadku opisywa-
nego wcześniej widoku workspa-
ce
(
rys. 6); w przypadku bardziej
złożonych podglądów użytkow-
nik może podzielić ją na grupy
i umieścić każdą z nich w osobnej
zakładce okna watch, a nawet na-
zwać ją według swojego uznania.
– Dla wszystkich, którzy chcieliby
prześledzić program na poziomie
asemblera, HiTOP oferuje m.in.
możliwość edycji komend programu
„na gorąco” w zakresie, który nie
wymaga ponownej kompilacji pro-
Rys. 3
Rys. 4
Rys. 5
Rys. 6
Rys. 7
Elektronika Praktyczna 10/2004
64
P O D Z E S P O Ł Y
gramu (np. kasowanie wybranych
instrukcji za pomocą wypełniania
ich poleceniem pustym NOP albo
ręczna zmiana atrybutów poszcze-
gólnych instrukcji), ręczną moż-
liwość zmiany wartości rejestrów
oraz flag, niezwykłe łatwą obser-
wację tych ostatnich dzięki auto-
matycznemu wyróżnianiu w przy-
padku zmiany ich wartości od
ostatniej pułapki.
– Inna przydatna opcja oferowana
przez HiTop-5 to okno podglą-
du/edycji rejestrów SFR procesora,
w którym w kontrolowany przez
środowisko sposób, można zmie-
niać wartości wybranych rejestrów
specjalnych w dozwolonych war-
tościach, a przy tym z kontek-
stowym podglądem ich znaczenia
i pełnionej w systemie funkcji
z wywołaniem podręcznej pomocy
o wybranym rejestrze SFR włącz-
nie (
rys. 7).
– Umożliwiająca bardziej wnikliwe
śledzenie programu opcja Trace po-
zwala np. na wyświetlenie w sto-
sownym oknie (
rys. 8) tzw. ramek
(frames) w postaci tabeli (line di-
splay
mode), gdzie dla ułatwienia
program automatycznie zaznacza
np. wszystkie skorelowane z daną
instrukcją wysokiego poziomu ram-
ki, podobnie postępując w przy-
padku dostępu do danych, instruk-
cji ich zapisu lub odczytu.
Drugim sposobem wyświetlania
jest tzw. instruction mode, w którym
wszystkie instrukcje pokazane są jako
zdekompilowane z przydzielonymi do
nich automatycznie operacjami R/W
na danych. Dodatkowy tryb podglą-
du tzw. Raw Trace Mode pokazuje
wszystkie ramki w sposób, w jaki
zostały one zarejestrowane, czyli każ-
da z linii tabeli pokazuje operacje
wykonane przez procesor w trakcie
dokładnie jednego cyklu maszyno-
wego. Oprócz podstawowych funkcji
podstawowych, takich jak określenie
zachowania się bufora trace (ciągły
lub cykliczny) czy momentu rozpo-
częcia śledzenia, dodatkowo użyt-
kownik ma możliwość powiązania
śledzenia ze zdefiniowanymi przez
siebie warunkami, np. kiedy śledzo-
ne i zapisywane w buforze mają być
tylko określone operacje dostępu do
zmiennych, albo peryferii, albo roz-
poczęcia śledzenia w momencie wy-
stąpienia określonego warunku, np.
wykonania żądnej funkcji.
– HiTOOL-5 umożliwia także tak
zaawansowane funkcje definiowa-
nie własnych widoków (okien)
zawierających tylko interesujące
programistę dane, np. tylko wy-
brane rejestry SFR procesora albo
obszary peryferii nazwane w tym
przypadku tak jak sami sobie tego
zażyczymy. Operację tę wykonuje
się, definiując za pomocą proste-
go w składni skryptu, którego in-
tuicyjność i prostota pozwalają na
korzystanie nawet przez początku-
jących użytkowników.
Jeszcze nie zdążyliśmy przyzwy-
czaić się do opisanego środowiska
Hiteksa w wersji 5, a producent już
zapowiada kolejną wersję swojego
produktu, tj. 5.1, w której znajdą się
dodatkowo:
– możliwość przygotowania pełnej
emulacji programu prosto z pli-
ków utworzonych przez kompilator
i linker (bez konieczności genero-
wania plików dla symulatora),
– rozszerzone definiowanie skryp-
tów, gdzie użytkownik ma możli-
wość ich wykonania poprzez wy-
godne i szybkie ich wywołanie
z dodatkowego elementu typu li-
stbox
umieszczonego w wybranym
menu przycisków,
– tzw. HiSCRIPT log, który na bieżą-
co informuje użytkownika o wyko-
nywanych w programie poleceniach
w zrozumiałym dla niego języku,
– w opcji Trace można m.in. do-
datkowo wyświetlić okno source
pokazujące aktualnie wykonywaną
instrukcję w języku wysokiego po-
ziomu, nawet typowe przewijanie
okna trace skutkuje jednoczesnym
aktualizowaniem zawartości okna
kodu źródłowego.
Te i wiele innych funkcji znajdzie-
cie w opisywanym pakiecie, do któ-
rego zapoznania gorąco namawiam.
Sławomir Surowiński
Informacje dodatkowe
Zestaw ewaluacyjny z pakietem firmy Hitex
udostępniła redakcji firma Silica, tel.: (22)
640-23-51, fax: (22) 640-23-54, silica.
warszawa@avnet.com.
Rys. 8