- Wymagane materiały
- Schemat obwodu
- Wgrywanie programu ładującego Maple Boot loader do płyty rozwojowej STM32
- Przygotowanie Arduino IDE i instalacja sterowników
- Programowanie STM32 (Blue Pill) bezpośrednio przez port USB
STM32 Development Board mieszczący STM32F103C8 Mikrokontroler jest coraz bardziej popularne dzięki swojej architekturze ARM Cortex M3, ma dużą prędkością operacyjną i opcje bardziej peryferyjne. Ponieważ ta płyta może być łatwo programowana za pomocą Arduino IDE, stała się preferowanym wyborem dla wielu hobbystów i inżynierów do szybkiego prototypowania.
W naszym poprzednim samouczku nauczyliśmy się podstaw płytki rozwojowej STM32, a także zaprogramowaliśmy ją tak, aby migała dioda LED. Ale miał jedną wielką wadę. W celu zaprogramowania płytki wykorzystaliśmy moduł programatora FTDI, a także musieliśmy przełączyć zworkę boot 0 między pozycją a 1 podczas ładowania i testowania kodu, co z pewnością jest zniechęcającym zadaniem. Również port mini-USB na płytce rozwojowej pozostał całkowicie nieużywany. Powodem tego jest to, że kiedy kupowana jest płyta rozwojowa STM32 , nie jest dostarczana z programem ładującym gotowym dla Arduino, a zatem płyta nie zostanie wykryta przez komputer po podłączeniu przez USB.
Miejmy jednak nadzieję, że istnieje eksperymentalny program ładujący opracowany przez LeafLabs dla mini płyt Maple. Ten program ładujący można załadować raz do STM32, a następnie możemy bezpośrednio użyć portu USB płyty STM32 do przesyłania programów, tak jak wszystkie inne płyty Arduino. Jednak ten program ładujący jest nadal w fazie rozwoju w momencie dokumentowania tego samouczka i nie jest zalecany dla krytycznych aplikacji. Przed rozpoczęciem pracy z tym samouczkiem upewnij się, że przeczytałeś poprzedni samouczek, aby zrozumieć podstawy tej płytki, w tym szczegóły dotyczące specyfikacji i pinów.
Wymagane materiały
- STM32 - (BluePill) płytka rozwojowa (STM32F103C8)
- Programator FTDI
- Płytka prototypowa
- Przewody łączące
- Laptop z Internetem
Schemat obwodu
Aby zaprogramować płytkę STM32 Blue Pill bezpośrednio przez port USB, musimy najpierw sflashować program ładujący Maple do MCU. Aby to zrobić, musimy użyć karty Serial FTDI. Ta płyta jest podłączona do pinów Rx i Tx w STM32, jak pokazano poniżej.
Styk Vcc płyty FTDI jest podłączony do styku 5 V STM32 płyty zasilającej. Uziemienie jest podłączone do uziemienia STM32. Styki Rx i Tx płytki FTDI są połączone odpowiednio z pinami A9 i A10 STM32. Gdzie A9 to pin Tx w STM32 MCU, a A10 to pin Rx.
Upewnij się, że zworka rozruchu 0 na płycie jest ustawiona na 1 (tryb programowania) podczas ładowania programu ładującego. Po sflashowaniu programu ładującego ten pin można zmienić z powrotem w położenie początkowe (tryb pracy).
Wgrywanie programu ładującego Maple Boot loader do płyty rozwojowej STM32
Po wykonaniu powyższego połączenia podłącz płytę FTDI do komputera i postępuj zgodnie z instrukcjami, aby sflashować program ładujący do STM32.
Krok 1: Musimy pobrać pliki binarne pliku programu ładującego (plik bin) ze strony github. Istnieje wiele wersji pliku bin, dla forum Blue Pill użyj tego linku github i kliknij przycisk pobierania, aby pobrać plik bin.
Krok 2: Następnie musimy pobrać i zainstalować oprogramowanie ładujące STM Flash, aby sflashować pobrany plik bin do STM32. Kliknij to łącze, aby przejść do witryny ST, przewiń w dół i kliknij Pobierz oprogramowanie
Krok 3: Aby pobrać oprogramowanie, musisz podać swój adres e-mail, a link do pobrania zostanie wysłany na Twój adres e-mail. Następnie kliknij łącze z powrotem do witryny i ponownie kliknij opcję Pobierz oprogramowanie, a pobieranie rozpocznie się. Tak, to trochę frustrujące, ale tak powinno być. Nie zapomnij sprawdzić folderu ze spamem w poszukiwaniu wiadomości e-mail, czasami jej dotarcie zajmuje kilka minut.
Krok 4: Po pobraniu zainstaluj oprogramowanie, upewnij się, że płyta STM32 jest podłączona do komputera przez kartę FTDI, a następnie uruchom oprogramowanie. Oprogramowanie automatycznie wykryje port COM, jeśli nie korzystasz z Menedżera urządzeń i upewni się, że wybrałeś prawidłowy numer portu COM. W moim przypadku jest to COM4. Resztę ustawień pozostaw tak, jak pokazano poniżej.
Krok 5: Kliknij dwukrotnie przycisk Dalej, a oprogramowanie ponownie automatycznie wykryje szczegóły płyty i wyświetli, jak pokazano poniżej. Płytka, której używamy to STM32F1 z pamięcią flash 128K.
Krok 6: W następnym kroku wybierz Pobierz na urządzenie i przejdź do lokalizacji, do której pobraliśmy nasz plik bin w kroku 1, i wybierz go. Kliknij dalej.
Krok 7: Oprogramowanie pobierze niektóre wymagane pliki, jak pokazano poniżej, a następnie rozpocznie proces flashowania.
Krok 8: Po pomyślnym zakończeniu flashowania otrzymamy poniższy ekran. Kliknij zamknij i zamknij aplikację. Pomyślnie sflashowaliśmy płytę STM32 za pomocą programu ładującego Arduino. Teraz musimy przygotować Arduino IDE i zainstalować sterowniki, zanim będziemy mogli zaprogramować płytkę STM32.
Przygotowanie Arduino IDE i instalacja sterowników
Wykonaj poniższe kroki, aby pobrać i przygotować Arduino IDE do użytku z płytą rozwojową STM 32.
Krok 1: - Jeśli jeszcze nie zainstalowałeś Arduino IDE, pobierz i zainstaluj je z tego linku. Upewnij się, że wybrałeś właściwy system operacyjny.
Krok 2: - Po zainstalowaniu Arduino IDE otwórz i pobierz wymagane pakiety dla płyty STM32. Można to zrobić, wybierając Plik -> Preferencje .
Krok 3: - Kliknięcie Preferencje otworzy pokazane poniżej okno dialogowe. W dodatkowym polu tekstowym URL menedżera tablic wklej poniższe łącze
dan.drown.org/stm32duino/package_STM32duino_index.json
i wciśnij OK.
Krok 4: - Teraz przejdź do Narzędzia -> Tablice -> Menedżer tablicy . Spowoduje to otwarcie okna dialogowego Menedżera tablic, wyszukanie hasła „STM32F1” i zainstalowanie wyświetlonego pakietu.
Krok 5: Po zainstalowaniu pakietu przejdź do C: \ Program Files (x86) Arduino \ hardware \ Arduino_STM32-master \ drivers \ win, gdzie znajdziesz install_drivers.bat i install_STM_COM_drivers.bat .
Krok 6: Kliknij oba pliki bat i zainstaluj sterowniki. Pojawi się ekran DOS, jak pokazano poniżej.
Teraz Arduino IDE jest przygotowane do programowania płytki rozwojowej STM32 (Blue Pill) i instalowane są również sterowniki.
Programowanie STM32 (Blue Pill) bezpośrednio przez port USB
Usuń płytę FTDI i wszystkie istniejące połączenia od ciebie STM32. Po prostu użyj portu micro-USB na płycie STM32, aby podłączyć ją do komputera, jak pokazano poniżej. Upewnij się, że styk zworki 0 jest ustawiony z powrotem na 0 (tryb pracy). Odtąd nie musimy już przełączać zworki, aby załadować i uruchomić programy.
Komputer powinien być teraz w stanie wykryć tablicę. Poczekaj chwilę, jeśli zobaczysz instalowane dodatkowe sterowniki. Następnie przejdź do Menedżera urządzeń i sprawdź, czy Twoja płyta STM32 została wykryta w sekcji COM i port, jak pokazano poniżej. Mój jest podłączony do COM8 o nazwie Maple Mini.
Przejdź do opcji Narzędzia i przewiń w dół, aby znaleźć serię Generic STM32F103C, jak pokazano poniżej. Następnie upewnij się, że wariant to 64k Flash , szybkość procesora to 72MHz i zmień metodę wysyłania na STM32duino Bootloader . Wybierz również prawidłowy port COM zgodnie z tym w menedżerze urządzeń.
Po wprowadzeniu wszystkich zmian sprawdź prawy dolny róg Arduino IDE i powinieneś zauważyć następujące ustawienie. Moja płyta STM32 jest podłączona do COM8, ale twoja może się różnić
Teraz Arduino IDE jest gotowe do programowania płytek rozwojowych STM 32 Blue Pill. Prześlijmy przykładowy program Blink z Arduino IDE do płyty STM32 Blue Pill, aby upewnić się, że wszystko działa poprawnie. Przykładowy program można znaleźć pod adresem
W przykładowym programie, który się otwiera, musimy wprowadzić małą zmianę. Domyślnie program zostanie napisany dla PB1, ale na naszej płycie wbudowana dioda LED jest podłączona do PC13, więc zamień wszystkie PB1 na PC13 i możemy kontynuować. Kompletny przykładowy program, który jest modyfikowany można również znaleźć na dole tej strony.
Kod wewnątrz samej funkcji pętli jest pokazany poniżej, gdzie możemy zauważyć, że pin PC13 jest utrzymywany w stanie WYSOKI (włączony) przez 1000 milisekund, a następnie ustawiony na NISKI (wyłączony) przez kolejne 1000 milisekund i jest to robione nieskończenie długo, ponieważ jest w funkcja pętli . W ten sposób dioda LED wydaje się migać w odstępach 1000 milisekund.
digitalWrite (PC13, HIGH); // włącz diodę LED (WYSOKI poziom napięcia) opóźnienie (1000); // czekaj na drugi digitalWrite (PC13, LOW); // wyłącz diodę LED, ustawiając niskie opóźnienie napięcia (1000); // Poczekaj sekundę
Naciśnij przycisk przesyłania w Arduino IDE, a Twój program powinien zostać skompilowany i przesłany. Jeśli wszystko zadziałało zgodnie z oczekiwaniami, na konsoli Arduino IDE powinieneś zobaczyć następujące informacje.
Jeśli program został pomyślnie przesłany, zielona dioda LED powinna migać co 1 sekundę, jak pokazano na poniższym filmie. Możesz także bawić się programem, aby zwiększyć lub zmniejszyć opóźnienie. Teraz możesz zacząć korzystać z płytki rozwojowej STM32 (Blue Pill) jak z każdej innej płyty Arduino, to znaczy nie musisz już zmieniać pozycji zworek ani używać zewnętrznego sprzętu do przesyłania i testowania programów.
Mam nadzieję, że zrozumiałeś samouczek i uznałeś za przydatne rozpoczęcie pracy z płytą STM32. Jeśli masz jakiś problem zostaw je w sekcji komentarzy, powiedz mi również, jakie projekty powinniśmy wypróbować z tą płytą STM32 w przyszłości.