Mikrokontrolery_ARM_cz4.pdf

(1264 KB) Pobierz
ep_03_101-104_arm_cz4.indd
K U R S
Mikrokontrolery z rdzeniem ARM,
część 4
Poprzednio zajmowaliśmy
się opisem budowy jednostki
centralnej ARM7TDMI–S.
W dalszej części kursu będziemy
bazować na dwóch typach
mikrokontrolerów opartych na
tym rdzeniu: LPC213x oraz
jego młodszym bracie LPC214x.
Wybrano te dwa rodzaje
układów ze względu na ich
niską cenę, bogate wyposażenie
w układy peryferyjne oraz
zasilanie pojedynczym
napięciem. W bieżącym odcinku
zapoznamy się ze wstępną
charakterystyką mikrokontrolera,
sposobem podłączenia zasilania
i rezonatora kwarcowego,
układem zerowania oraz jego
architekturą wewnętrzną.
– zegar RTC z niezależnym genera-
torem 32,768 kHz oraz osobnym
wejściem zasilającym;
– 2 porty szeregowe UART (zgod-
ne programowo z układem
16550) służące do asynchronicz-
nej transmisji szeregowej;
– kontroler I2C – interfejs I2C
jest popularnym synchronicznym
interfejsem szeregowym opra-
cowanym przez firmę Philips,
służącym do ko-
munikacji z innymi
układami wewnątrz
systemu;
– kontroler SPI – in-
terfejs SPI jest
szybkim szerego-
wym interfejsem
synchronicznym
służącym do komu-
nikacji pomiędzy
procesorem a ukła-
dami peryferyjnymi;
– kontroler SSP – jest
rozbudowanym kon-
trolerem synchro-
nicznej transmisji
szeregowej, potra-
fiącym pracować
w trybach magistra-
li SPI, 4–wire SSI
oraz Microwire;
– wektoryzowany
kontroler przerwań
(VIC);
– wewnętrzną pętlę
PLL służącą do
powielania często-
tliwości kwarcu;
– d o d a t k o w o
LPC214x wyposa-
żono w kontroler
USB z kanałem DMA oraz do-
datkowy układ PLL.
Drobnym mankamentem mi-
krokontrolerów LPC213x/214x
jest brak wewnętrznej pamię-
ci EEPROM, jednak problem ten
można prosto rozwiązać dołączając
do magistrali I2C pamięć np. z ro-
dziny AT24Cxx.
W tab. 5 przedstawiono po-
szczególne typy układów LPC213x/
Podczas projektowania systemu
mikroprocesorowego często zasta-
nawiamy się jaki mikrokontroler
wybrać dla danego zastosowania.
Oprócz odpowiedniej mocy oblicze-
niowej kluczowe znaczenie ma także
bogate wyposażenie w układy peryfe-
ryjne. Im więcej zasobów będzie się
znajdować we wnętrzu mikrokontro-
lera, tym mniej dodatkowych ukła-
dów będziemy musieli dołączyć na
zewnątrz, a co za tym idzie projekt
płytki drukowanej będzie prostszy.
Mikrokontrolery LPC213x/214x
są dość bogato wyposażone w ukła-
dy peryferyjne. Oprócz wbudowanej
wewnętrznej pamięci Flash i ROM
w ich wnętrzu znajdują się ( rys. 6
i rys. 7 ):
– porty wejścia–wyjścia GPIO;
– jeden lub dwa 10–bitowe prze-
tworniki A/C z 8– (LPC213x) lub
6–wejściowym (LPC214x) multi-
plekserem;
– pojedynczy 10–bitowy przetwor-
nik C/A;
– dwa 32–bitowe timery z 32–bito-
wym preskalerem. Każdy z time-
rów posiada 4 kanały przechwy-
tujące, 4 kanały porównujące
oraz 6 kanałów PWM;
– układ watchdog;
Rys. 6.
Elektronika Praktyczna 3/2006
101
278152195.051.png 278152195.054.png 278152195.055.png 278152195.056.png 278152195.001.png 278152195.002.png 278152195.003.png 278152195.004.png 278152195.005.png 278152195.006.png 278152195.007.png 278152195.008.png 278152195.009.png 278152195.010.png 278152195.011.png 278152195.012.png 278152195.013.png 278152195.014.png 278152195.015.png
K U R S
214x wraz krótką
charakterystyką ich
zasobów.
Mikrokontro-
lery są dostęp-
ne w obudowach
TQFP64 i są ze
sobą kompatybilne
pod względem roz-
mieszczenia wypro-
wadzeń, różnią się
tylko rozmiarem
pamięci oraz licz-
bą wbudowanych
układów peryferyj-
nych. Do dyspozy-
cji mamy układy
o pojemności pa-
mięci od 32 kB do
512 kB Flash i od
8 do 40 kB RAM,
więc możemy wy-
brać odpowiedni
układ na miarę na-
szych potrzeb.
obudowach TQFP64. Pomimo małego
rastra wyprowadzeń (0,5 mm), przy
odrobinie wprawy, także w warun-
kach amatorskich nie powinno być
problemu z ich montażem.
Jak większość współczesnych
układów cyfrowych, mikrokontrolery
LPC213x/4x są dostosowane do zasi-
lania pojedynczym napięciem 3,3 V
±10%. Linie I/O są przystosowane
do współpracy z układami zasilany-
mi napięciem o wartości 5 V.
Mikrokontrolery wyposażono
w 32–bitowe porty wejścia–wyjścia
P0 i P1, przy czym port P1 ma wy-
prowadzone tylko 16 najstarszych bi-
tów (P1.16…P1.31). Wszystkie porty
są dwukierunkowe i mają maksymal-
ną wydajność prądową do 45 mA,
zarówno od plusa, jak i minusa na-
pięcia zasilającego. Każde z wypro-
wadzeń ma przypisaną od jednej do
trzech funkcji alternatywnych. (np.
wejście przetwornika A/C).
Ze względu na zakłócenia po-
wstające w cyfrowej części mikro-
kontrolerów, rozdzielono napięcia
zasilające część cyfrową i analo-
gową. Do zasilania części cyfro-
wej służą wyprowadzenia Vdd (+)
oraz Vss (–), natomiast zasilanie
części analogowej stanowią wypro-
wadzenia Vdda (+) oraz Vssa (–).
Rys. 7.
Porty IO oraz
zasilanie
mikrokontrolera
Mikrokontrolery
LPC213x/214x do-
stępne są w niewiel-
kich 64–pinowych
Rys. 8.
102
Elektronika Praktyczna 3/2006
278152195.016.png 278152195.017.png 278152195.018.png 278152195.019.png 278152195.020.png 278152195.021.png 278152195.022.png 278152195.023.png 278152195.024.png 278152195.025.png 278152195.026.png 278152195.027.png 278152195.028.png 278152195.029.png 278152195.030.png 278152195.031.png 278152195.032.png 278152195.033.png 278152195.034.png 278152195.035.png 278152195.036.png 278152195.037.png 278152195.038.png 278152195.039.png 278152195.040.png 278152195.041.png 278152195.042.png 278152195.043.png 278152195.044.png 278152195.045.png 278152195.046.png
K U R S
Tab. 5. Charakterystyka mikrokontrolerów LPC213x/214x
powinien być, więc zaprojektowany
tak, aby podczas normalnej pracy
zasilanie zegara RTC odbywało się
z napięcia głównego, a nie z baterii
podtrzymującej. Do prawidłowej pra-
cy zegara RTC wymagane jest pod-
łączenie do pinów RTXC1 i RTXC2
rezonatora kwarcowego o częstotli-
wości 32,768 kHz. Mikrokontrolery
LPC213x/214x nie posiadają wbu-
dowanego źródła napięcia referen-
cyjnego, dlatego do prawidłowej
pracy przetwornika A/C i C/A ko-
nieczne jest podanie do pinu Vref
napięcia referencyjnego. Napięcie to
powinno zawierać się w przedziale
(3,0…3,3 V). W przypadku, gdy za-
leży nam na dokładnych pomiarach
należy zastosować zewnętrzny układ
napięcia referencyjnego np. TL431.
Natomiast, gdy pomiary nie mu-
szą być precyzyjne pin Vref można
połączyć bezpośrednio z zasilaniem
analogowym mikrokontrolera (Vdda).
Mikrokontroler w stanie aktywnym
pobiera prąd rzędu 15 mA przy
częstotliwości taktowania 10 MHz,
natomiast przy 60 MHz pobór prą-
du wzrasta do ok. 55 mA. W trybie
uśpienia ( Power Down ) jest pobiera-
ny prąd o wartości około 60 mA.
Typ Flash RAM A/C C/A Timery RTC
SPI/
SSP
I2C UART USB
LPC2131 32 kB 8 kB 1 – 2 1 2 1 2 –
LPC2132 64 kB 16 kB 1 1 2 1 2 1 2 –
LPC2134 128 kB 16 kB 2 1 2 1 2 1 2 –
LPC2136 256 kB 32 kB 2 1 2 1 2 1 2 –
LPC2138 512 kB 32 kB 2 1 2 1 2 1 2 –
LPC2141 32 kB 8 kB 1 – 2 1 2 1 2 1
LPC2142 64 kB 16 kB 1 1 2 1 2 1 2 1
LPC2144 128 kB 16 kB 2 1 2 1 2 1 2 1
LPC2146 256 kB 40 kB 2 1 2 1 2 1 2 1
LPC2148 512 kB 40 kB 2 1 2 1 2 1 2 1
Podczas projektowania płytki dru-
kowanej musimy pamiętać o pra-
widłowym zasilaniu części analo-
gowej i cyfrowej. Masy analogowe
i cyfrowe powinny być prowadzone
oddzielnie i spotykać się w jednym
punkcie. Napięcie zasilające Vdda
powinno być odfiltrowane chociaż-
by za pomocą prostego filtru RC
lub jeszcze lepiej LC (jak choć-
by na rys. 8 ). W celu eliminacji
zakłóceń musimy także pamiętać
o kondensatorach blokujących, które
powinny znajdować się jak najbli-
żej wyprowadzeń mikrokontrolera.
Wbudowany układ RTC ma wypro-
wadzone oddzielne napięcie zasila-
jące Vbat, które można wykorzystać
do podtrzymania pracy zegara. Do
poprawnego działania zegara wyma-
gane jest napięcie zasilające o war-
tości od 2 do 3,6 V, przy poborze
prądu o wartości 20 mA, co pozwa-
la zasilać układ zegara np. z małej
baterii litowej. Przy projektowaniu
zasilania awaryjnego zegara RTC,
musimy pamiętać o tym, że pod-
czas pracy aktywnej mikrokontrole-
ra prąd pobierany przez zegar RTC
wzrasta do poziomu 80 mA. Układ
Rys. 9.
Magistrale wewnętrzne
Każda jednostka centralna do
prawidłowej pracy wymaga otocze-
nia, takiego jak pamięć operacyjna
czy układy peryferyjne. Układy te
są dołączane do CPU za pomo-
cą magistral. Proste 8/16–bitowe
systemy mikroprocesorowe posia-
dały najczęściej jedną magistralę,
do której podłączone były wszyst-
kie układy współpracujące. Szyb-
ko okazało się jednak, że takie
rozwiązanie jest niewystarczające
z uwagi na ograniczoną przepusto-
Elektronika Praktyczna 3/2006
103
278152195.047.png 278152195.048.png 278152195.049.png
K U R S
wość. Problemem było także to, że
do jednej magistrali były podłączo-
ne układy o bardzo różnej prędko-
ści działania. Przykładowo, dostęp
do bardzo wolnego urządzenia pe-
ryferyjnego powodował zablokowa-
nie całej magistrali na czas oczeki-
wania na dane z tego urządzenia.
W systemach 32–bitowych wprowa-
dzono kilka oddzielnych magistral,
co umożliwia znaczne zwiększenie
wydajności. W dużych systemach
mikroprocesorowych istotny jest
także problem kompatybilności,
gdyż wprowadzenie nowej szybszej
magistrali powoduje, że układy
współpracujące ze starą magistra-
lą stają się zupełnie bezużyteczne.
Poza tym nie wszystkie układy pe-
ryferyjne wymagają dużej szybkości
pracy. Rozwiązaniem tych proble-
mów jest opracowanie układu po-
mostu pośredniczącego pomiędzy
nową (szybką), a starą (wolną) ma-
gistralą. Rdzeń ARM7TDMI–S po-
siada dwie magistrale mianowicie:
magistralę lokalną ( local bus ) oraz
magistralę AHB ( Advanced High
Performance Bus ).
Magistrala lokalna wykorzystywa-
na jest najczęściej do podłączenia
pamięci operacyjnej, natomiast ma-
gistrala AHB służy do podłączenia
urządzeń peryferyjnych. Podłączenie
urządzeń peryferyjnych i pamięci do
oddzielnej magistrali zapewnia więk-
szą wydajność systemu. W mikro-
kontrolerach LPC213x do magistra-
li lokalnej podłączona jest pamięć
Flash i SRAM, natomiast do magi-
strali AHB podłączony jest kontroler
przerwań VIC ( Vectorized Interrupt
Controller ) oraz most do magistra-
li VBP ( VLSI perhipheral bus ). Ma-
gistrala VBP służy do podłączenia
wszystkich pozostałych układów pe-
ryferyjnych mikrokontrolera. Zastoso-
wanie dodatkowej magistrali (VPB)
umożliwia pracę wolniejszych urzą-
dzeń bez spowalniania pozostałych
układów mikrokontrolera. Po starcie
magistrala VPB pracuje z 1/4 prędko-
ści jednostki CPU, jednak wszystkie
wbudowane peryferia umożliwiają
pracę z pełną częstotliwością CPU
(60 MHz). Na rys. 9 przedstawiono
architekturę wewnętrzną mikrokon-
trolerów LPC213x/214x.
Warto w tym miejscu wspomnieć,
że w mikrokontrolerach LPC213x
porty wejścia–wyjścia (I/O) są pod-
łączone do CPU za pomocą magi-
strali VBP, tak więc dostęp do nich
jest stosunkowo wolny, co było już
sygnalizowane na łamach EP. Kon-
struktorzy Philipsa szybko zauwa-
żyli ten problem i w mikrokontrole-
rach LPC214x porty IO podłączone
są do magistrali lokalnej ( Local
Bus ), co zapewnia bardzo krótki
czas dostępu. W mikrokontrolerach
LPC2146/2148 do magistrali AHB
dołączono także dodatkowe 8 kB
pamięci RAM, która jest wykorzy-
stywana przez kanał DMA kon-
trolera USB. Wykorzystanie DMA
umożliwia transfer danych pomię-
dzy USB, a pamięcią, bez ingeren-
cji jednostki centralnej. Pomimo,
iż układy peryferyjne podłączone
są do różnych magistral, z punktu
widzenia programisty wszystkie za-
soby są widoczne w liniowej 32–bi-
towej przestrzeni adresowej.
Lucjan Bryndza, EP
lucjan.bryndza@ep.com.pl
ARM7TDMI ®
ADuC7000
…uk³ady i narzêdzia uruchomieniowe
- ju¿ dostêpne !
ANALOG
DEVICES
uznany dostawca
rozwi¹zañ dla
ANALOG
DEVICES
teraz, jako partner
www.analog.com/dsp/3rdparty
ALFINE P.E.P.
ul. Poznañska 30-32 • 62-080 Tarnowo Podgórne
tel.: (61) 89 66 934, 89 66 936 • fax: (61) 81 64 414, 81 64 076
e-mail: analog@alfine.pl • http: //www.alfine.pl
AlfineTeam likeneverbefore
Designed by Electro-Vision
104
Elektronika Praktyczna 3/2006
278152195.050.png 278152195.052.png 278152195.053.png
Zgłoś jeśli naruszono regulamin