STM32F103C8T6 Minimalna ploča za razvoj sistema
Informacije o proizvodu
STM32F103C8T6 ARM STM32 Minimal System Development Board Module je razvojna ploča koja je bazirana na mikrokontroleru STM32F103C8T6. Dizajniran je da se programira pomoću Arduino IDE i kompatibilan je sa raznim Arduino klonovima, varijacijama i pločama trećih strana kao što su ESP32 i ESP8266.
Ploča, također poznata kao Blue Pill Board, radi na frekvenciji približno 4.5 puta većoj od Arduino UNO. Može se koristiti za različite projekte i može se povezati na periferne uređaje kao što su TFT ekrani.
Potrebne komponente za izgradnju projekata sa ovom pločom uključuju STM32 ploču, FTDI programator, TFT ekran u boji, dugme, malu matičnu ploču, žice, Power Bank (opciono za samostalni režim) i USB na serijski pretvarač.
Šematski
Da povežete STM32F1 ploču na 1.8 ST7735 baziran TFT ekran u boji i dugme, pratite pin-to-pin veze opisane u priloženim šemama.
Postavljanje Arduino IDE za STM32
- Otvorite Arduino IDE.
- Idite na Tools -> Board -> Board Manager.
- U okviru za dijalog sa trakom za pretragu potražite „STM32F1“ i instalirajte odgovarajući paket.
- Pričekajte da se postupak instalacije završi.
- Nakon instalacije, STM32 ploča bi sada trebala biti dostupna za odabir na listi Arduino IDE ploča.
Programiranje STM32 ploča sa Arduino IDE
Od svog početka, Arduino IDE je pokazao želju da podrži sve vrste platformi, od Arduino klonova i varijacija različitih proizvođača do ploča trećih strana kao što su ESP32 i ESp8266. Kako se sve više ljudi upoznaje sa IDE-om, počinju da podržavaju sve više ploča koje nisu bazirane na ATMEL čipovima i za današnji tutorijal ćemo pogledati jednu od takvih ploča. Ispitat ćemo kako programirati razvojnu ploču baziranu na STM32, STM32F103C8T6 sa Arduino IDE.
STM32 ploča koja će se koristiti za ovaj tutorijal nije ništa drugo do razvojna ploča STM32F103 zasnovana na čipu STM8F6C32T1 koja se obično naziva “Plava pilula” u skladu sa plavom bojom njene štampane ploče. Blue Pill pokreće moćni 32-bitni STM32F103C8T6 ARM procesor koji radi na 72MHz. Ploča radi na logičkim nivoima od 3.3v, ali su njeni GPIO pinovi testirani da budu tolerantni na 5v. Iako ne dolazi s WiFi ili Bluetoothom kao što su ESP32 i Arduino varijante, nudi 20KB RAM-a i 64KB flash memorije što ga čini adekvatnim za velike projekte. Takođe poseduje 37 GPIO pinova, od kojih se 10 može koristiti za analogne senzore jer imaju omogućen ADC, zajedno sa ostalima koji su omogućeni za SPI, I2C, CAN, UART i DMA. Za ploču koja košta oko 3$, složićete se sa mnom da su ovo impresivne specifikacije. Sažeta verzija ovih specifikacija u poređenju sa onom Arduino Uno prikazana je na slici ispod.
Na osnovu gore navedenih specifikacija, frekvencija na kojoj Blue Pill radi je oko 4.5 puta veća od Arduino UNO, za današnji tutorijal, kao npr.ampKako koristiti STM32F1 ploču, spojit ćemo je na 1.44″ TFT ekran i programirati da izračuna "Pi" konstantu. Zabilježit ćemo koliko je vremena bilo potrebno ploči da dobije vrijednost i usporediti je s vremenom koje je potrebno Arduino Uno-u da izvrši isti zadatak.
Potrebne komponente
Za izgradnju ovog projekta potrebne su sljedeće komponente;
- STM32 ploča
- FTDI programer
- TFT u boji
- Pritisnite dugme
- Small Breadboard
- Žice
- Power Bank
- USB u serijski pretvarač
Kao i obično, sve komponente korištene za ovaj tutorijal možete kupiti na priloženim vezama. Power Bank je, međutim, potreban samo ako želite da implementirate projekat u samostalnom režimu.
Šematski
- Kao što je ranije spomenuto, spojit ćemo STM32F1 ploču na 1.8″ ST7735 baziran TFT ekran u boji zajedno s pritiskom na dugme.
- Dugme će se koristiti za navođenje ploče da započne proračun.
- Povežite komponente kao što je prikazano na donjoj šemi.
Da bi se veze lako replicirale, pin-to-pin veze između STM32 i ekrana su opisane u nastavku.
STM32 – ST7735
Pregledajte veze još jednom da biste bili sigurni da je sve kako treba da bude jer često postaje malo nezgodno. Sa ovim učinjenim, nastavili smo sa postavljanjem STM32 ploče za programiranje sa Arduino IDE.
Postavljanje Arduino IDE za STM32
- Kao i kod većine ploča koje nije napravio Arduino, potrebno je napraviti malo podešavanja prije nego što se ploča može koristiti sa Arduino IDE.
- Ovo uključuje ugradnju ploče file bilo putem Arduino Board Manager-a ili preuzimanjem s interneta i kopiranjem files u folder hardvera.
- Put menadžera odbora je manje dosadan i pošto je STM32F1 među navedenim pločama, mi ćemo ići tim putem. Započnite dodavanjem veze za STM32 ploču na Arduino liste preferencija.
- Idi na File -> Preferences, a zatim unesite ovo URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) u okviru kao što je navedeno ispod i kliknite na OK.
- Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. Traži STM32F1 and install the corresponding package.
- Procedura instalacije će trajati nekoliko sekundi. Nakon toga, ploča bi sada trebala biti dostupna za odabir na listi Arduino IDE ploča.
Kod
- Kôd će biti napisan na isti način na koji bismo napisali bilo koju drugu skicu za Arduino projekat, s jedinom razlikom u načinu na koji su igle referencirane.
- Da bismo mogli lako da razvijemo kod za ovaj projekat, koristićemo dve biblioteke koje su obe modifikacije standardnih Arduino biblioteka kako bi bile kompatibilne sa STM32.
- Koristićemo modifikovanu verziju biblioteka Adafruit GFX i Adafruit ST7735.
- Obje biblioteke mogu se preuzeti putem veza koje su im priložene. Kao i obično, napraviću kratak pregled koda.
- Kod počinjemo uvozom dvije biblioteke koje ćemo koristiti.
- Zatim definiramo pinove STM32 na koje su spojeni CS, RST i DC pinovi LCD-a.
- Zatim kreiramo neke definicije boja kako bismo olakšali upotrebu boja prema njihovim imenima u kodu kasnije umjesto po njihovim heksadecimalnim vrijednostima.
- Zatim postavljamo broj iteracija kroz koje želimo da ploča prođe zajedno s trajanjem osvježavanja za korištenje trake napretka.
- Sa ovim učinjenim, kreiramo objekat ST7735 biblioteke koji će se koristiti za referenciranje ekrana kroz cijeli projekat.
- Takođe ukazujemo na pin STM32 na koji je dugme povezano i kreiramo promenljivu koja će zadržati njegovo stanje.
- Kada je ovo urađeno, prelazimo na funkciju void setup().
- Počinjemo postavljanjem pinMode() pina na koji je dugme spojeno, aktivirajući unutrašnji pull-up otpornik na pinu jer se dugme spaja na masu kada se pritisne.
- Zatim inicijaliziramo serijsku komunikaciju i ekran, postavljajući pozadinu ekrana na crnu i pozivamo print () funkciju za prikaz sučelja.
- Sljedeća je funkcija void loop(). Funkcija void petlje je prilično jednostavna i kratka, zahvaljujući korištenju biblioteka/funkcija.
- Počinjemo čitanjem stanja dugmeta. Ako je dugme pritisnuto, uklanjamo trenutnu poruku na ekranu koristeći removePressKeyText() i crtamo traku napretka promene koristeći funkciju drawBar().
- Zatim pozivamo funkciju za početak izračunavanja da bismo dobili i prikazali vrijednost Pi zajedno s vremenom koje je bilo potrebno da se izračuna.
- Ako se dugme ne pritisne, uređaj ostaje u pasivnom režimu rada sa ekranom koji zahteva da se pritisne taster za interakciju sa njim.
- Konačno, odgoda se ubacuje na kraj petlje kako bi se dalo malo vremena prije skiciranja „petlji“.
- Preostali dio koda su funkcije pozvane za postizanje zadataka od crtanja trake do izračunavanja Pi.
- Većina ovih funkcija je pokrivena u nekoliko drugih tutorijala koji uključuju upotrebu ST7735 ekrana.
- Kompletan kod za projekat dostupan je ispod i priložen je u odjeljku za preuzimanje.
Učitavanje koda na STM32
- Učitavanje skica na STM32f1 je malo složeno u poređenju sa standardnim Arduino kompatibilnim pločama. Za upload koda na ploču, potreban nam je FTDI baziran, USB-to serijski konvertor.
- Povežite USB na serijski konvertor na STM32 kao što je prikazano na šemama ispod.
Ovdje je pin-to-pin mapa veze
FTDI – STM32
- Kada je ovo urađeno, onda mijenjamo poziciju kratkospojnika stanja ploče u poziciju jedan (kao što je prikazano na gif-u ispod), kako bismo ploču stavili u programski mod.
- Pritisnite dugme za resetovanje na ploči jednom nakon ovoga i spremni smo za učitavanje koda.
- Na računaru, provjerite jeste li odabrali “Generic STM32F103C board” i odabrali serijski za metodu učitavanja nakon čega možete pritisnuti dugme za otpremanje.
- Kada se učitavanje završi, promijenite kratkospojnik stanja u položaj "O" Ovo će staviti ploču u "run" mod i sada bi trebala početi raditi na osnovu učitanog koda.
- U ovom trenutku možete isključiti FTDI i napajati ploču preko njenog USB-a. U slučaju da kod ne radi nakon napajanja, provjerite jeste li ispravno vratili kratkospojnik i reciklirajte napajanje ploče.
Demo
- Kada je kod dovršen, slijedite gore opisani proces prijenosa da biste učitali kod u svoje postavke.
- Trebali biste vidjeti kako se ekran pojavljuje kao što je prikazano na slici ispod.
- Pritisnite dugme da započnete proračun. Trebali biste vidjeti kako traka napretka postepeno klizi do kraja.
- Na kraju procesa, vrijednost Pi je prikazana zajedno sa vremenom koje je trebalo izračunati.
- Isti kod je implementiran na Arduino Uno. Rezultat je prikazan na slici ispod.
- Upoređujući ove dvije vrijednosti, vidimo da je “Blue Pill” preko 7 puta brža od Arduino Uno.
- To ga čini idealnim za projekte koji uključuju tešku obradu i vremenska ograničenja.
- Mala veličina Plave pilule takođe služi kao prednosttage ovdje jer je samo malo veći od Arduino Nano i može se koristiti na mjestima gdje Nano neće biti dovoljno brz.
Dokumenti / Resursi
![]() |
STM32 STM32F103C8T6 Minimalna sistemska razvojna ploča [pdf] Korisnički priručnik STM32F103C8T6 Minimalna sistemska razvojna ploča, STM32F103C8T6, Minimalna sistemska razvojna ploča, sistemska razvojna ploča, razvojna ploča, ploča |