Dodaj produkty podając kody

Dodaj plik CSV
Wpisz kody produktów, które chcesz zbiorczo dodać do koszyka (po przecinku, ze spacją lub od nowej linijki). Powtórzenie wielokrotnie kodu, doda ten towar tyle razy ile razy występuje.

STM32F103 w środowisku Arduino IDE

2019-03-30
STM32F103 w środowisku Arduino IDE

Spis treści

Witam wszystkich zainteresowanych programowaniem procesorów STM w środowisku Arduino IDE. Zapytacie pewnie, dlaczego STM skoro jest Arduino Uno / Mega? Otóż mikrokontrolery te są 8 bit-owe, co wpływa na całość wykonywanego programu, a więc przy większych projektach ich prędkość i moc obliczeniowa może być niewystarczająca. Moduły Arduino STM32 jak już sama nazwa podpowiada, są 32 bit-owe. Dodatkowo posiadają więcej pamięci FLASH i RAM, przez co można na nich odpalać większe projekty, dodatkowo częstotliwość taktowania procesora to 72 Mhz (16 Mhz Arduino) i już wspomniane 32bity. Robi wrażenie prawda? STM jak pokazują liczne testy porównawcze, są często nawet 12x szybsze od ATMega328p! STM również kusi bardzo niską ceną jak za to co oferuje, w naszym sklepie ceny zaczynają się już od 13 zł za STM32F103, a więc w tak niskiej cenie dostajemy dużo lepszy sprzęt.

Programowanie STM32 w Arduino

Pozostaje problem programowania i środowiska. Jednak powiem Wam, że nawet nowicjusze w programowaniu będą mogli skorzystać z tej platformy, programując mikrokontroler w środowisku Arduino IDE. Jak wiemy, środowisko to jest bardzo proste i przyjazne laikom dzięki uproszczeniu komend języka C++. Dodatkowo wybierając to środowisko, mamy wgląd w miliony forów, projektów, i pomoc ludzi, dzięki czemu jak nie będziemy czegoś wiedzieć, to zawsze ktoś pomoże. Arduino IDE to nie tylko proste środowisko, gotowe biblioteki, ale i tysiące gotowych projektów, za którymi stoją miliony twórców. 

Przejdźmy do naszego dzisiejszego bohatera, czyli STM32 PINOUT: 
stm32 arduinoJak widzimy, STM32F103 posiada, niektóre piny przystosowane pod konwerter poziomów 5 V a niektóre tolerują tylko napięcie 3,3 V (na którym pracuje mikrokontroler) - w większości są to piny analogowe. Dobrze przejdźmy dalej, czyli jak przystosować płytkę do środowiska Arduino IDE? I jak programować za pomocą wbudowanego złącza microUSB? Otóż wszystko się da, więc teraz przechodzimy dalej, czyli do dodawania nowej rodziny płytek, do środowiska Arduino IDE.

Dodawanie płytek do menedżera płytek - sposób nr 1

a) W katalogu Arduino, który domyślnie znajduje się w dokumentach, tworzymy nowy folder o nazwie \"hardware\" 
b) Otwieramy Arduino IDE i wchodzimy w Plik -> Preferencje
stm32 arduino ide

c) Wyskoczy nowe okno gdzie na dole w \"Dodatkowe adresy URL do menedżera płytek\" wklejamy ten adres: http://dan.drown.org/stm32duino/package_STM32duino_index.json 

stm32f103 arduino

d) Zatwierdzamy nasze zmiany przyciskiem \"OK\" i przechodzimy do \"Narzędzia\" -> \"Płytka\" -> \"Menedżer płytek\"
Wpisujemy w wyszukiwarkę \"stm32f1\" wyświetli się wynik jak poniżej, klikamy na niego i wybieramy \"Instaluj\".

stm32f103 arduino

stm32f103c8t6 arduino ide
Aby wszystko chodziło poprawnie, należy jeszcze doinstalować biblioteki \"Arduino SAM Boards\" i \"Arduino SAMD Boards\" które są domyślnie do pobrania w \"Menedżerze płytek\" (pierwsze dwie pozycje od góry). 

stm32f103 pinoutTeraz możemy już wgrać nasz pierwszy program, jednak nie możemy tego zrobić przez złącze Micro USB tylko zewnętrzny konwerter Arduino UART, jak np:

 Tak podłączamy płytkę z konwerterem: 

STM32 Konwerter
TX (A9) RX
RX (A10) TX
5 V (3V3) 5 V
GND GND

 

Musimy jeszcze przełożyć zworki na pozycję:

B0 B1
+(1) -(0)



Teraz możemy przystąpić do wgrywania programu. W tym celu w zakładce \"Narzędzia\" wybieramy płytkę \"Generic STM32F103C series\", \"Variant\" zależnie od ilości pamięci na naszej płytce (przeważnie 20k RAM, 64k FLASH), \"CPU Speed\" domyślnie na \"72 MHz Normal\" i \"Upload method\" ustawiamy na \"Serial\". Wybieramy również port, na którym znajduje się konwerter a do niego podłączona płytka.

stm32f103c6t6 arduinoTeraz można spokojnie programować naszego STM-a, i może zaczniemy tradycyjnie od przykładu \"Blink\", należy jednak pamiętać, że oznaczenia portów są inne niż w Arduino, jednak zmiana ta jest subtelna i zamiast pinu 13 piszemy PC13 - tak jak podpowiada nam PINOUT na górze strony. 
Po zaprogramowaniu powinniśmy przełożyć zwory na pozycję 0: 

B0 B1
-(0) -(0)


Jednak przyznacie, że takie programowanie jest uciążliwe, trzeba pamiętać o zworkach nie pomylić ich konfiguracji podczas wgrywania i pracy programu - ponieważ to one są odpowiedzialne za tryb programowania przez serial port, a dodatkowo przed wgraniem wcisnąć przycisk RESET, ponieważ w STM-ach przycisk ten kasuje program z pamięci wewnętrznej scalaka. 

Jak już wcześniej wspomniałem (żebyście się nie zrazili) jest łatwiejsza metoda programowania, właśnie przez port Micro USB! Jednak w przypadku jego wykorzystania musimy wgrać w mikrokontroler BOOTLOADER. Jak to się robi - już mówię... 

Dodawanie płytek do menedżera płytek - sposób nr 2


Najpierw musimy pobrać sam plik BOOTLOADER-a z Github - https://github.com/rogerclarkmelbourne/STM32d...ter/binaries/generic_boot20_pb12.bin?raw=true 
Następnie program przystosowany do pracy z STM-ami, czyli STM Flash Loader - https://www.st.com/content/st_com/en/products...nt-tools/stm32-programmers/flasher-stm32.html 
Wystarczy podać maila i pobieramy zupełnie za darmo, jednak dajmy systemowi trochę czasu, ponieważ ja musiałem 2 razy próbować, bo system jeszcze mnie nie dodał...
Następnie przekładamy zworki - i tutaj pocieszenie już przed ostatni raz! :D 

B0 B1
+(1) -(0)

Odpalamy ściągnięty program, wybieramy port i lecimy dalej:


Klikamy NEXT - NEXT




Następnie wybieramy \"Download from file\" oraz podajemy ścieżkę do pobranego pliku.bin 




Znowu klikamy NEXT i powinien ruszyć pasek postępu i informacja o poprawnie wgranym bootloaderze.

Teraz możemy już pożegnać się z programatorem i podłączyć przewód Micro USB i zmienić oczywiście metodę wgrywania z Serial na \"STM32duino bootloader\", jednak nie uda nam się wgrać programu, ponieważ komputer nie ma potrzebnych sterowników do tego urządzenia. I co teraz powiecie, tyle pracy na marne... Otóż nie, wystarczy przejść do folderu \"hardware\" o którym była mowa na początku instalacji i tam utworzyły się nowe tajemnicze pliki. Wchodzimy w katalog \"Arduino_STM32-master\" -> \"drivers\" -> \"win\" i pojawiają się dwa pliki \"install_drivers\" i \"install_STM_COM_drivers\" klikamy najpierw jeden, przechodzimy przez proces instalacji..., a potem drugi. 
Teraz w zakładce \"Port\" STM powinien nam się pojawić jako \"Maple Mini\" i od tego momentu można programować STM-a przez USB, jednak została jeszcze jedna rzecz... pamiętacie jaka? TAK ostatni już raz bawimy się zworkami i dajemy je w konfigurację 0:

B0 B1
-(0) -(0)

Mam nadzieję, że pomogłem i odkryjecie potęgę drzemiącą w 32-bit-owych mikrokontrolerach o taktowaniu do 72 Mhz. :) 

Pokaż więcej wpisów z Marzec 2019

Polecane

pixelpixel