Programowanie mikrokontrolera w STM32Butterfl y przez RS232
Wtorek, 01 Grudzień 2009
Pamięć Flash mikrokontrolerów STM32
można programować poprzez interfejs JTAG
lub - w przypadku gdy nie jest konieczne
bieżące debugowanie pracy mikrokontrolera
- z wykorzystaniem bootloadera ulokowanego
w pamięci systemowej mikrokontrolerów z tej
rodziny. Jak załadować pamięć Flash poprzez
interfejs UART pokażemy krok po kroku w artykule.
114 ELEKTRONIKA PRAKTYCZNA 12/2009
NOTATNIK KONSTRUKTORA
Dodatkowe materiały na CD i FTP:
host: ep.com.pl, user: 12235, pass: 60u61csy
Programowanie
mikrokontrolera
w STM32Butter?y
przez RS232
Pamięć Flash mikrokontrolerów STM32
można programować poprzez interfejs JTAG
lub ? w przypadku gdy nie jest konieczne
bieżące debugowanie pracy mikrokontrolera
? z wykorzystaniem bootloadera ulokowanego
w pamięci systemowej mikrokontrolerów z tej
rodziny. Jak załadować pamięć Flash poprzez
interfejs UART pokażemy krok po kroku w artykule.
Eksperymentalną platformą sprzętową, którą wykorzystamy do
przedstawienia funkcjonowania bootloadera zaimplementowanego
w pamięci systemowej mikrokontrolerów STM32F, jest STM32Butter-
?y ? ostatnio niezwykle popularna dzięki ogólnopolskiemu cyklowi
seminariów STM32 TechDays, które odbyły się w 14 miastach na te-
renie Polski.
STM32Butter?y wyposażono w mikrokontroler z podrodziny
ConnectivityLine oznaczony symbolem STM32F107. Mikrokontrolery
te, podobnie do STM32F105 (także należą do podrodziny Connectivi-
tyLine, ale nie wyposażono ich w interfejs Ethernet MAC) fabrycznie
wyposażono w oprogramowanie spełniające rolę bootloadera, obsłu-
gujące kilka kanałów komunikacyjnych: USB, CAN i RS232. Pozostałe
podrodziny mikrokontrolerów STM32F (101, 102, 103) także wypo-
sażono w botloader, ale obsługuje on wyłącznie kanał RS232 (tab. 1).
Sprzęt i oprogramowanie
Do zaprogramowania mikrokontrolera poprzez interfejs RS232
z wykorzystaniem bootloadera konieczny jest konwerter poziomów
logicznych TTL/RS232 dołączony do wybranej pary linii GPIO: PA9
(TxD) i PA10 (RxD) lub PD5 (TxD) i PD6 (RxD).
Schemat elektryczny przykładowego konwertera pokazano na
rys. 1, na fot. 2 pokazano miejsce dołączenia go do płytki zestawu
STM32Butter?y. Do komunikacji z PC wybrano interfejs USART2,
NOTATNIK KONSTRUKTORA
Dodatkowe materiały
na CD i FTP
115ELEKTRONIKA PRAKTYCZNA 12/2009
Programowanie mikrokontrolera w STM32Butter?y przez RS232
Errare humanum est
Erratowa plaga dotknęła także mikrokontrolery STM32F105/107,
które w wersji krzemu ?Z? (aktualnie produkowanej) mają problemy
z działaniem bootloadera. Kłopoty napotkają użytkownicy
mikrokontrolerów z kodem daty poniżej 937, w nowszych wersjach
mikrokontrolerów wada ta nie występuje.
W erracie (ID15866 rev2) opisano sposób uniknięcia problemów
z bootloaderem w starszych wersjach mikrokontrolerów, przy
czym skutkują one wyłącznie w przypadku układów w obudowach
LQFP100.
ponieważ jego linie TxD
i RxD są przez bootlo-
ader przemapowywane
do linii GPIO PD5 i PD6,
które wyprowadzono na
10-stykowe złącze gold-
pin przeznaczone do wy-
korzystania w aplikacji
użytkownika.
Obsługę transferu
danych pomiędzy PC
i mikrokontrolerem za-
pewnia oprogramowanie
Flash bootloader demon-
strator, przystosowane
do obsługi wszystkich
dostępnych kanałów
transmisji danych: CAN,
USB i RS232. Program
jest dostępny bezpłatnie
na stronie ?rmy STMi-
croelectronics (www.
st.com/stm32), wymaga
on standardowej instala-
cji w systemie Windows.
Jak wspomniano,
bootloader jest ulokowa-
ny w pamięci systemo-
wej mikrokontrolerów
STM32, jego automa-
Tab. 1. Zestawienie dostępnych kanałów komunikacji bootloadera z otoczeniem w podrodzinach STM32
Podrodzina USART1 USART2 CAN2 USB
Xtal
[MHz]
F101 TX-PA9 RX-PA10 ? ? ? ?
F102 TX-PA9 RX-PA10 ? ? ? ?
F103 TX-PA9 RX-PA10 ? ? ? ?
F105 TX-PA9 RX-PA10 TX-PD5 RX-PD6 TX-PB6 RX-PB5
DP-PA12
DM-PA11
ID-PA10**
VBUS-PA9
?/8, 14,7456, 25*
F107 TX-PA9 RX-PA10 TX-PD5 RX-PD6 TX-PB6 RX-PB5
DP-PA12
DM-PA11
ID-PA10**
VBUS-PA9
?/8, 14,7456, 25*
*
? zewnętrzny rezonator jest niezbędny wyłącznie podczas korzystania z bootloadera USB i CAN
**
? linia używana wyłącznie gdy interfejs USB mikrokontrolera pracuje w trybach host i device USB-OTG
Rys. 1. Schemat elektryczny interfejsu TTL/RS232
Fot. 2. Złącze portu D (GPIO) na płytce STM32Butter?y
Fot. 3. Ustawienie zwor na liniach BOOT umożliwiające
uruchomienie bootloadera
Rys. 4. Okno startowe programu Flash
bootloader demonstrator
Rys. 5. Okno z informacją o pojemności
pamięci Flash programowego mikrokon-
trolera
116 ELEKTRONIKA PRAKTYCZNA 12/2009
NOTATNIK KONSTRUKTORA
Rys. 6. Okno z wykazem sektorów pamięci
i ich statusów
W dniach 22.09 do 28.10.2009 odbyły się w 14 miastach Polski
warsztaty techniczne dla konstruktorów zainteresowanych mikro-
kontrolerami STM32. Impreza została zorganizowana przez ?rmę
STMicroelectronics, która wszystkim zakwali?kowanym uczestnikom
sprezentowała niezwykle praktyczny zestaw upominkowy składający
się z płytki STM32Butter?y (specy?kacja w ramce), modułu z gra?cz-
nym wyświetlaczem LCD oraz książki poświęconej mikrokontrolerom
STM32. Uczestnicy seminariów mieli także możliwość
doposażenia otrzymanych motyli w programator-de-
bugger ZL30PRG (zgodny z ST-Link) oraz interfejs PHY
Ethernet zamontowany na module ZL2ETH.
Chęć uczestnictwa w STM32TechDays
zgłosiło blisko 1200 osób, z czego 550
otrzymało zaproszenia do uczestnictwa
w pierwszej turze warsztatów. Ze względu
na dużą liczbę chętnych w przyszłym roku
odbędą się kolejne sesje szkoleniowe,
o których informacje będą publikowane
m.in. w Elektronice Praktycznej, Elektroniku
oraz stronach internetowych partnerów
?rmy STMicroelectronics w Polsce (m.in.
pod adresem www.stm32.eu).
Na spotkania przybyły
łącznie 472 osoby, zarów-
no z dużych ?rm elektro-
nicznych jak i studenci,
których wsparcie w pierw-
szych krokach z mikro-
kontrolerami STM32 było
jednym z celów organiza-
tora imprezy. Spotkania
w ramach STM32TechDays
składały się z dwóch sesji,
z których jedna miała
charakter prezentacyjny,
druga była klasycznym
pokazem posługiwania się
mikrokontrolerami STM32
na prostych przykładach.
Szkolenia i prezentacje
prowadzili przedstawicie-
le polskiego biura ?rmy
STMicroelectronics, wspierani przez przedstawicieli ?rm dystrybucyjnych.
Z myślą o uczestnikach warsztatów STM32TechDays oraz wszystkich kon-
struktorów zamierzających korzystać w swoich projektach z mikrokontrole-
rów STM32 została uruchomiona strona informacyjna www.stm32.eu, do
której współtworzenia zapraszamy wszystkich Czytelników EP.
Krakowska sesja warsztatowa podczas STM32TechDays
Warsztaty we Wrocławiu
Początek warsztatów w Warszawie
Sesja warsztatowa STM32TechDays
w Gliwicach
Wsparcie organizatorom STM32TechDays
świadczyli przedstawiciele ?rm dystrybucyjnych
Rys. 8. Okno z paskiem postępu, ilustrują-
cym przebieg programowania pamięci Flash
Rys. 7. Okno kon?guracji mikrokontrolera
i sektorów pamięci
tyczne uruchomienie nastąpi po ustawieniu na liniach: BOOT0 = 1
i BOOT1 = 0. Prawidłowe ustawienie zwor kon?guracyjnych na płytce
STM32Butter?y pokazano na fot. 3. Po dołączeniu zestawu STM32But-
ter?y z interfejsem RS232 do komputera PC i uruchomieniu wcześniej
zainstalowanego programu Flash bootloader demonstrator, należy wy-
brać kanał komunikacyjny (rys. 4), następnie zrestartować mikrokontro-
ler (naciskając przycisk RESET na płytce zestawu) i nacisnąć przycisk
Next. Jeżeli inicjalizacja nastąpi poprawnie, zostanie wyświetlone okno
z informacją o pojemności pamięci programowego mikrokontrolera
(rys. 5), następnie okno z wykazem sektorów Flash i ich statusów (rys.
6). W kolejnych oknach użytkownik może wybrać plik zawierający dane
do zapisania w pamięci Flash (bin lub hex), ustalić ręcznie lub pobrać
z zewnętrznego pliku kon?gurację programowanego mikrokontrolera,
włączyć lub wyłączyć zabezpieczenie odczytu zawartości pamięci Flash
117ELEKTRONIKA PRAKTYCZNA 12/2009
Programowanie mikrokontrolera w STM32Butter?y przez RS232
Dla dociekliwych
Sposób pracy działania bootloaderów zastosowanych w mi-
krokontrolerach STM32 został szczegółowo opisany w dokumen-
tacji udostępnionej bezpłatnie przez ?rmę STMicroelectronics na
stronie www.st.com/stm32. Opis bootloaderów mikrokontrolerów
STM32F101/102 i 103 jest dostępny w nocie aplikacyjnej AN2606,
a bootloader mikrokontrolerów STM32F105/107 opisano w nocie
aplikacyjnej AN2662.
W obydwu przypadkach szczegółowo opisano algorytm działa-
nia bootloaderów, sposób wymiany danych z PC, a także polecenia
obsługiwane przez bootloader.
Szczegółową instrukcję obsługi programu Flash bootloader de-
monstrator producent zawarł w dokumencie UM0462. Opisano
w nim m.in. sposób korzystania z programu wywoływanego z linii
poleceń, co pozwala na jego integrację z różnymi środowiskami pro-
gramistycznymi.
Andrzej Gawryluk
W przypadku braku komunikacji pomiędzy programem Flash
bootloader demonstrator i bootloaderem mikrokontrolera pojawi się
komunikat jak poniżej.
W takim przypadku należy sprawdzić:
? poprawność podłączenia linii transmisyjnych mikrokontrolera do
konwertera napięć RS232,
? poprawność wyboru portu komunikacyjnego i trybu pracy
bootloadera w początkowym oknie programu Flash bootloader
demonstrator,
? poprawność kon?guracji linii BOOT mikrokontrolera (po każdej
zmianie ich stanu niezbędne jest zerowanie mikrokontrolera!).
i poszczególnych sektorów pamięci (rys. 7) itp. Po ustaleniu kon?guracji
mikrokontrolera można rozpocząć programowanie jego pamięci (rys. 8).
R E K L A M A
Zobacz więcej w kategorii Notatnik konstruktora