Zewnętrzne pamięci statyczne i mikrokontrolery STM32.pdf

(1596 KB) Pobierz
106-109_stm32.indd
Zewnętrzne
pamięci statyczne
i mikrokontrolery STM32
Dodatkowe
materiały na CD
Miesiąc temu przedstawiliśmy
w EP nowe mikrokontrolery
z rodziny STM32, które
charakteryzują się m.in. lepszym
wyposażeniem w peryferia niż
miało to miejsce w przypadku
starszych układów z tej rodziny.
Szczególnie interesującym,
nowym interfejsem, w jaki
wyposażono mikrokontrolery
montowane w obudowach
o dużej liczbie wyprowadzeń
(100 lub 144), jest moduł
FSMC (Flexible Static Memory
Controller), umożliwiający
wygodną obsługę zewnętrznych
wielu typów pamięci Flash
i SRAM.
Nietrudny do zaobserwowania
trend szybkiego obniżania cen pa-
mięci znajduje tylko częściowe od-
bicie w mikrokontrolerach: są one
– co prawda – wyposażane w pa-
mięci SRAM i Flash o coraz więk-
szych pojemnościach (coraz łatwiej
o tani mikrokontroler z 256 lub
512 kB pamięci Flash), ale 1 czy
2 MB takiej pamięci wewnątrz mi-
krokontrolera to nadal rzadki luk-
sus. Z kolei różnego rodzaju karty
pamięciowe osiągają ceny „nie-
przyzwoicie” niskie, co zachęca
konstruktorów do podejmowania
prób stosowania ich we własnych
aplikacjach. Przy odpowiednio sil-
nym zaangażowaniu programisty,
praktycznie każdy rodzaj karty
Flash można obsłużyć korzystając
z odpowiednich procedur progra-
mowych i uniwersalnych linii I/O.
Nie jest to jednak rozwiązanie
wygodne, ani ekonomicznie uza-
sadnione, o czym przekonali się
konstruktorzy próbujący tą drogą
rozwiązać problem dostępu do ze-
wnętrznych pamięci Flash. Firma
STMicroelectronics najwyraźniej
dostrzegła problem, dzięki czemu
niektóre mikrokontrolery z rodziny
STM32 (posiadające nowoczesny
rdzeń Cortex M3) wyposażono
w wyspecjalizowany, konfigurowal-
ny interfejs ułatwiający dostęp do
pamięci SRAM i wielu rodzajów
pamięci Flash i kart z takimi pa-
mięciami „na pokładzie”.
FSMC znaczy wygodnie
Schemat blokowy interfej-
su FSMC ( Flexible Static Memory
Controller ) pokazano na rys. 1 .
Umożliwia on dostęp mikrokon-
trolera do pamięci z magistralami
106
ELEKTRONIKA PRAKTYCZNA 9/2008
652390821.042.png 652390821.043.png
Rys. 1.
daje przestrzeń adresową 64 MB
na pojedynczej stronie), do dyspo-
zycji użytkownika pozostaje także
5 niezależnych od siebie sygna-
łów selekcji aktywnego zespołu
pamięci, obsługę pamięci ułatwiają
sygnały synchronizujące operacje
odczyt i zapis, a także sygnał go-
towości pamięci do pracy – szcze-
gólnie przydatny w szybkich syste-
mach cyfrowych. Interfejs FSMC
jest przystosowany do odczytu
typu burst (dłuższe paczki danych
od określonego adresu, przydat-
ne w przypadku pamięci PSRAM
i Flash NOR) i zapewnia „prze-
źroczystą” konwersję 32–bitowych
operacji na magistrali AHB (która
służy jako wewnętrzna magistra-
la komunikacyjna dla FSMC) na
transfery magistralą 8– lub 16–
bitową. Należy pamiętać, że nie
wszystkie rodzaje pamięci mogą
być obsługiwane w trybie AHB
8–, 16– i 32–bitowym, co produ-
cent uwzględnił w dokumentacji
mikrokontrolerów (skrót przedsta-
wiamy w tab. 1 ).
Interfejs FSMC jest konfiguro-
walny, co pozwala nie tylko przy-
pisać określony typ pamięci do
danego obszaru adresowego, ale
także włączać i wyłączać monito-
rowanie sygnału gotowości pamię-
równoległymi następujących ty-
pów: SRAM, PSRAM, Cellular-
RAM, COSMORAM, a także z kla-
sycznymi pamięciami ROM, NOR
Flash (z magistralami multiplekso-
wanymi i rozdzielonymi), NAND
Flash i OneNAND. Za jego pomo-
cą można także obsługiwać karty
PC Card, cardFlash i CardFlash+
wszystkie wyposażone w pamięci
Flash. Magistrala danych obsługi-
wana przez FSMC może mieć sze-
rokość 8 lub 16 bitów, magistrala
adresowa składa się z 26 linii (co
Tab. 1. Dopuszczalne tryby pracy dla pamięci obsługiwanych przez FSMC
Typ pamięci Tryb pracy pamięci
Kierunek
wymiany
danych
Szerokość
magistrali
danych AHB
Szerokość ma-
gistrali danych
pamięci
Możliwy?
Asynchroniczny
R 8
16 +
Asynchroniczny
W 8
16 –
Asynchroniczny
R 16
16 +
Asynchroniczny
W 16
16 +
Flash NOR
Asynchroniczny
R 32
16 +
Asynchroniczny
W 32
16 +
Asynchroniczny (stronami) R –
16 –
Synchroniczny
R 8
16 –
Synchroniczny
R 16
16 +
Synchroniczny
R 32
16 +
Asynchroniczny
R 8
16 +
Asynchroniczny
W 8
16 +
Asynchroniczny
R 16
16 +
Asynchroniczny
W 16
16 +
PSRAM
Asynchroniczny
R 32
16 +
Asynchroniczny
W 32
16 +
Asynchroniczny (stronami) R –
16 –
Synchroniczny
R 8
16 –
Synchroniczny
R 16
16 +
Synchroniczny
R 32
16 +
SRAM, ROM Asynchroniczny
R 8, 16, 32 8, 16, 32 +
Asynchroniczny
W 8, 16, 32 8, 16, 32 +
Rys. 2.
ELEKTRONIKA PRAKTYCZNA 9/2008
107
652390821.044.png 652390821.045.png 652390821.001.png 652390821.002.png 652390821.003.png 652390821.004.png 652390821.005.png 652390821.006.png 652390821.007.png 652390821.008.png 652390821.009.png 652390821.010.png 652390821.011.png
Rys. 3.
ci BUSY (i reakcję mikrokontro-
lera na jego zgłoszenie), włączać
i wyłączać sprzętowy kontroler in-
tegralności danych (ECC) przecho-
wywanych w pamięci oraz defi-
niować wielkość bloku pamięci do
obliczania sumy kontrolnej przez
moduł ECC (od 256 do 8192 B).
Użytkownik może także samodziel-
nie definiować parametry czasowe
wymiany danych, poprzez zmianę
częstotliwości taktującej interfejs
oraz ustalanie liczby stanów ocze-
kiwania CPU w trzech krytycz-
nych czasowo miejscach przebie-
gów.
Zastosowane przez producenta
opcjonalne mechanizmy synchroni-
zujące wymianę danych (poprzez
monitorowanie stanu sygnału go-
towości pamięci) pozwalają wyko-
rzystać maksymalną częstotliwość
taktowania mikrokontrolera (syg-
nał HCLK, taktujący także DMA,
rdzeń mikrokontrolera i magistralę
AHB), która w przypadku mikro-
kontrolerów z serii Performance
(STM32F103) może wynosić aż
72 MHz.
Prędkość wymiany danych po-
między CPU i pamięcią zewnętrz-
ną zwiększa jednokierunkowa (dla
zapisu) pamięć FIFO o pojemności
16 słów 32–bitowych, której zada-
niem jest minimalizowanie obcią-
żenia jednostki centralnej podczas
zapisu do zewnętrznej
pamięci.
Dostęp do zewnętrz-
nych pamięci za pomocą
FSMC jest bankowany,
jak pokazano na rys. 2 .
Selekcję stron w każdym
banku umożliwiają dwa
bity jednego z rejestrów
konfiguracyjnych FSMC.
Na rys. 3 pokazano
schemat elektryczny (zaczerpnięty
z dokumentacji zestawu urucho-
mieniowego opracowanego przez
firmę STMicroelectronics) ilustru-
jący sposób dołączenia do mikro-
kontrolerów STM32 trzech rodza-
jów pamięci zewnętrznych: SRAM
(U1), Flash NOR (U2) i Flash
NAND (U3).
Obsługa zewnętrznych pamięci
za pomocą interfejsu FSMC wy-
maga na początku od programi-
sty nieco uwagi, ale jest znacznie
prostsza, niż w przypadku obsługi
„ręcznej”. Zadanie początkującym
znacznie uprościł producent mi-
krokontrolerów, bowiem procedura
108
ELEKTRONIKA PRAKTYCZNA 9/2008
652390821.012.png 652390821.013.png 652390821.014.png 652390821.015.png 652390821.016.png 652390821.017.png 652390821.018.png 652390821.019.png 652390821.020.png 652390821.021.png 652390821.022.png 652390821.023.png 652390821.024.png 652390821.025.png 652390821.026.png 652390821.027.png 652390821.028.png 652390821.029.png 652390821.030.png 652390821.031.png 652390821.032.png 652390821.033.png 652390821.034.png
Tab. 2. Mikrokontrolery STM32 wyposażone w interfejs FSMC
Typ
Flash
[kB]
SRAM
[kB]
GPIO Obudowa Seria
STM32F101V8 64
10
80 BGA/LQFP100
STM32F101VB 128 16 80 BGA/LQFP100
STM32F101VC 256 32 80 BGA/LQFP100
STM32F101VD 384 48 80 BGA/LQFP100
STM32F101VE 512 48 80 BGA/LQFP100
STM32F101ZC 256 32 112 BGA/LQFP144
STM32F101ZD 384 48 112 BGA/LQFP144
STM32F101ZE 512 48 112 BGA/LQFP144
STM32F103V8 64
Access Line
20
80 BGA/LQFP100
STM32F103VB 128 20 80 BGA/LQFP100
STM32F103VC 256 48 80 BGA/LQFP100
STM32F103VD 384 64 80 BGA/LQFP100
STM32F103VE 512 64 80 BGA/LQFP100
STM32F103ZC 256 48 112 BGA/LQFP144
STM32F103ZD 384 64 112 BGA/LQFP144
STM32F103ZE 512 64 112 BGA/LQFP144
Performance
Line
Rys. 4.
inicjująca pracę interfejsu i ob-
sługę kilku typów pamięci jest
dostępna na stronie internetowej
firmy ( um0488.zip ), publikujemy
ją także (wraz z kompletną doku-
mentacją) na CD–EP9/2008C.
growano z nim rozwiązania sprzę-
towe umożliwiające zautomatyzo-
waną obsługę kart, ich inicjaliza-
cję itd.
Podsumowanie
Wyposażenie peryferyjne mi-
krokontrolerów STM32 jest – jak
łatwo zauważyć – bardzo bogate.
Producent stara się maksymalnie
pomóc konstruktorom, także po-
czątkującym, którzy mogą ułatwić
sobie pisanie programu nie tyl-
ko dzięki zastosowanym zaawan-
sowanym rozwiązaniom sprzęto-
wym oraz przejrzystej dokumenta-
cji, lecz także dobrze napisanym
i udokumentowanym przykładom.
Dobrze to wróży nowym mi-
krokontrolerom, których kariera –
na co wskazuje wiele znaków na
rynku – pomimo wielu sukcesów,
dopiero się zaczyna.
Andrzej Gawryluk, EP
Można także inaczej
W przypadku, gdy w aplikacji
wystarczy zastosowanie pamięci
nieulotnej ulokowanej na karcie
MMC lub SD, można wykorzy-
stać interfejs SDIO, w który wy-
posażono mikrokontrolery Perfor-
mance Line o pojemności pamięci
programu 256, 384 lub 512 kB
(niezależnie od obudowy). Jest on
dołączony do wewnętrznej magi-
strali AHB i umożliwia szeregowy
transfer danych z częstotliwością
taktowania do 48 MHz (MultiMe-
diaCard V4.0/4.2,), przy czym nie
jest obsługiwany tryb SPI wymia-
ny danych z kartą.
Schemat blokowy interfejsu
SDIO pokazano na rys. 4 . Zinte-
ELEKTRONIKA PRAKTYCZNA 9/2008
109
652390821.035.png 652390821.036.png 652390821.037.png 652390821.038.png 652390821.039.png 652390821.040.png 652390821.041.png
Zgłoś jeśli naruszono regulamin