STM32F103C8T6 Bordi Minimal i Zhvillimit të Sistemit
Informacioni i produktit
Moduli i Bordit Minimum të Zhvillimit të Sistemit STM32F103C8T6 ARM STM32 është një tabelë zhvillimi që bazohet në mikrokontrolluesin STM32F103C8T6. Është projektuar për t'u programuar duke përdorur Arduino IDE dhe është i pajtueshëm me klone të ndryshme Arduino, variacione dhe borde të palëve të treta si ESP32 dhe ESP8266.
Bordi, i njohur gjithashtu si Blue Pill Board, funksionon në një frekuencë afërsisht 4.5 herë më të lartë se një Arduino UNO. Mund të përdoret për projekte të ndryshme dhe mund të lidhet me pajisje periferike si ekranet TFT.
Komponentët e nevojshëm për të ndërtuar projekte me këtë pllakë përfshijnë tabelën STM32, programuesin FTDI, ekranin TFT me ngjyra, butonin e shtypjes, dërrasën e vogël, telat, bankën e energjisë (opsionale për modalitetin e pavarur) dhe konvertuesin USB në serial.
Skematik
Për të lidhur tabelën STM32F1 me Ekranin TFT me ngjyra të bazuar në 1.8 ST7735 dhe një buton shtypës, ndiqni lidhjet pin-to-pin të përshkruara në skemat e dhëna.
Konfigurimi i Arduino IDE për STM32
- Hapni Arduino IDE.
- Shkoni te Mjetet -> Bordi -> Menaxheri i Bordit.
- Në kutinë e dialogut me shiritin e kërkimit, kërkoni "STM32F1" dhe instaloni paketën përkatëse.
- Prisni që procedura e instalimit të përfundojë.
- Pas instalimit, bordi STM32 tani duhet të jetë i disponueshëm për përzgjedhje nën listën e tabelës Arduino IDE.
Programimi i pllakave STM32 me Arduino IDE
Që nga fillimi i tij, Arduino IDE ka demonstruar dëshirën për të mbështetur të gjitha llojet e platformave, nga klonet Arduino dhe variacionet e prodhuesve të ndryshëm deri te bordet e palëve të treta si ESP32 dhe ESp8266. Ndërsa më shumë njerëz njihen me IDE, ata kanë filluar të mbështesin më shumë borde që nuk bazohen në çipat ATMEL dhe për tutorialin e sotëm do të shikojmë një nga tabelat e tilla. Ne do të shqyrtojmë se si të programojmë bordin e zhvillimit të bazuar në STM32, STM32F103C8T6 me Arduino IDE.
Pllaka STM32 që do të përdoret për këtë tutorial nuk është tjetër veçse tabela e zhvillimit STM32F103 e bazuar në çip STM8F6C32T1, e njohur zakonisht si "Pilula blu" në përputhje me ngjyrën blu të PCB-së së saj. Blue Pill mundësohet nga procesori i fuqishëm 32-bit STM32F103C8T6 ARM, me frekuencë 72 MHz. Pllaka funksionon në nivele logjike 3.3v por kunjat e saj GPIO janë testuar të jenë tolerante ndaj 5v. Ndërsa nuk vjen me WiFi ose Bluetooth si variantet ESP32 dhe Arduino, ai ofron 20 KB RAM dhe 64 KB memorie flash që e bën atë të përshtatshëm për projekte të mëdha. Ai gjithashtu posedon 37 kunja GPIO, 10 prej të cilave mund të përdoren për sensorë analogë pasi kanë ADC të aktivizuar, së bashku me të tjera që janë të aktivizuara për SPI, I2C, CAN, UART dhe DMA. Për një bord që kushton rreth 3 dollarë, do të pajtoheni me mua se këto janë specifika mbresëlënëse. Një version i përmbledhur i këtyre specifikimeve krahasuar me atë të një Arduino Uno është paraqitur në imazhin më poshtë.
Bazuar në specifikimet e mësipërme, frekuenca në të cilën funksionon Blue Pill është rreth 4.5 herë më e lartë se një Arduino UNO, për tutorialin e sotëm, si një ish.ampPër mënyrën e përdorimit të tabelës STM32F1, ne do ta lidhim atë me një ekran TFT 1.44″ dhe do ta programojmë për të llogaritur konstantën "Pi". Ne do të vërejmë se sa kohë iu desh bordit për të marrë vlerën dhe do ta krahasojmë atë me kohën që i duhet një Arduino Uno për të kryer të njëjtën detyrë.
Komponentët e kërkuar
Për të ndërtuar këtë projekt kërkohen komponentët e mëposhtëm;
- Bordi STM32
- Programues FTDI
- TFT me ngjyra
- Shtypni butonin
- Bredboard i vogël
- Telat
- Power Bank
- Konvertuesi USB në Serial
Si zakonisht, të gjithë komponentët e përdorur për këtë tutorial mund të blihen nga lidhjet e bashkangjitura. Banka e energjisë është megjithatë e nevojshme vetëm nëse dëshironi ta vendosni projektin në një modalitet të pavarur.
Skematik
- Siç u përmend më herët, ne do të lidhim tabelën STM32F1 me ekranin TFT me ngjyra 1.8 inç me bazë ST7735 së bashku me një buton shtytës.
- Butoni i shtypjes do të përdoret për të udhëzuar bordin që të fillojë llogaritjen.
- Lidhni komponentët siç tregohet në skemën më poshtë.
Për t'i bërë lidhjet të lehta për t'u përsëritur, lidhjet pin-to-pin midis STM32 dhe ekranit përshkruhen më poshtë.
STM32 - ST7735
Shqyrtoni lidhjet edhe një herë për t'u siguruar që gjithçka është ashtu siç duhet të jetë pasi ka tendencë të bëhet paksa e ndërlikuar. Me këtë bërë, ne vazhduam me vendosjen e tabelës STM32 për t'u programuar me Arduino IDE.
Konfigurimi i Arduino IDE për STM32
- Ashtu si me shumicën e bordeve që nuk janë bërë nga Arduino, duhet bërë pak konfigurim përpara se bordi të përdoret me Arduino IDE.
- Kjo përfshin instalimin e bordit file ose nëpërmjet Menaxherit të Bordit të Arduino ose shkarkimit nga interneti dhe kopjimit të files në dosjen e harduerit.
- Rruga e menaxherit të bordit është më pak e lodhshme dhe meqenëse STM32F1 është ndër tabelat e listuara, ne do të shkojmë në atë rrugë. Filloni duke shtuar lidhjen për bordin STM32 në listat e preferencave të Arduino.
- Shko tek File -> Preferencat, më pas futeni këtë URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) në kutinë siç tregohet më poshtë dhe klikoni ok.
- Tani shkoni te Tools -> Board -> Board Manager, do të hapet një kuti dialogu me një shirit kërkimi. Kërko për STM32F1 dhe instaloni paketën përkatëse.
- Procedura e instalimit do të zgjasë disa sekonda. Pas kësaj, bordi tani duhet të jetë i disponueshëm për përzgjedhje nën listën e tabelës Arduino IDE.
Kodi
- Kodi do të shkruhet në të njëjtën mënyrë si ne do të shkruanim çdo skicë tjetër për një projekt Arduino, me ndryshimin e vetëm që është mënyra sesi referohen kunjat.
- Për të qenë në gjendje të zhvillojmë lehtësisht kodin për këtë projekt, ne do të përdorim dy biblioteka të cilat janë të dyja modifikime të Bibliotekave standarde Arduino për t'i bërë ato të pajtueshme me STM32.
- Ne do të përdorim versionin e modifikuar të bibliotekave Adafruit GFX dhe Adafruit ST7735.
- Të dyja bibliotekat mund të shkarkohen nëpërmjet lidhjeve të bashkangjitura në to. Si zakonisht, do të bëj një përmbledhje të shkurtër të kodit.
- Ne e nisim kodin duke importuar dy bibliotekat që do të përdorim.
- Më pas, ne përcaktojmë kunjat e STM32 me të cilat janë lidhur kunjat CS, RST dhe DC të LCD-së.
- Më pas, ne krijojmë disa përkufizime ngjyrash për ta bërë më të lehtë përdorimin e ngjyrave me emrat e tyre në kod më vonë në vend të vlerave të tyre hex.
- Më pas, ne vendosim numrin e përsëritjeve që duam të kalojë bordi së bashku me kohëzgjatjen e rifreskimit për të përdorur shiritin e progresit.
- Duke bërë këtë, ne krijojmë një objekt të bibliotekës ST7735 i cili do të përdoret për të referuar ekranin gjatë gjithë projektit.
- Ne gjithashtu tregojmë pinin e STM32 me të cilin është lidhur butoni dhe krijojmë një ndryshore për të mbajtur gjendjen e saj.
- Pasi të bëhet kjo, kalojmë te funksioni void setup().
- Fillojmë duke vendosur pinMode() të kunjit me të cilin është lidhur butoni, duke aktivizuar një rezistencë të brendshme tërheqëse në kunj, pasi butoni lidhet me tokën kur shtypet.
- Më pas, ne inicializojmë komunikimin serik dhe ekranin, duke e vendosur sfondin e ekranit në të zezë dhe duke thirrur funksionin e printimit () për të shfaqur ndërfaqen.
- Më pas është funksioni void loop(). Funksioni void loop është mjaft i thjeshtë dhe i shkurtër, falë përdorimit të bibliotekave/funksioneve.
- Fillojmë duke lexuar gjendjen e butonit të shtypjes. Nëse butoni është shtypur, ne heqim mesazhin aktual në ekran duke përdorur removePressKeyText() dhe vizatojmë shiritin e ndryshimit të progresit duke përdorur funksionin drawBar().
- Më pas thërrasim funksionin e llogaritjes së fillimit për të marrë dhe shfaqur vlerën e Pi së bashku me kohën që u desh për ta llogaritur atë.
- Nëse butoni i shtypjes nuk shtypet, pajisja qëndron në modalitetin e punës, me ekranin që kërkon që të shtypet një tast për të bashkëvepruar me të.
- Së fundi, një vonesë futet në fund të ciklit për të dhënë pak kohë përpara se të skicohen "unazat".
- Pjesa e mbetur e kodit janë funksionet e thirrura për të arritur detyrat nga vizatimi i shiritit deri te llogaritja e Pi.
- Shumica e këtyre funksioneve janë mbuluar në disa mësime të tjera që përfshijnë përdorimin e ekranit ST7735.
- Kodi i plotë për projektin është i disponueshëm më poshtë dhe është bashkangjitur nën seksionin e shkarkimit.
Ngarkimi i kodit në STM32
- Ngarkimi i skicave në STM32f1 është paksa i ndërlikuar në krahasim me bordet standarde të përputhshme me Arduino. Për të ngarkuar kodin në tabelë, na duhet një konvertues i bazuar në FTDI, USB-në Serial.
- Lidheni konvertuesin USB në serial me STM32 siç tregohet në skemat më poshtë.
Këtu është një hartë pin-to-pin e lidhjes
FTDI – STM32
- Duke bërë këtë, ne e ndryshojmë pozicionin e kërcyesit të gjendjes së tabelës në pozicionin e parë (siç tregohet në gif më poshtë), për ta vendosur tabelën në modalitetin e programimit.
- Shtypni butonin e rivendosjes në tabelë një herë pas kësaj dhe ne jemi gati të ngarkojmë kodin.
- Në kompjuter, sigurohuni që të zgjidhni "Generic STM32F103C board" dhe të zgjidhni serialin për metodën e ngarkimit, pas së cilës mund të shtypni butonin e ngarkimit.
- Pasi të përfundojë ngarkimi, ndryshoni kërcyesin e gjendjes në pozicion "O" Kjo do ta vendosë bordin në modalitetin "run" dhe tani duhet të fillojë të funksionojë bazuar në kodin e ngarkuar.
- Në këtë pikë, mund të shkëputni FTDI-në dhe ta fuqizoni bordin mbi USB-në e tij. Në rast se kodi nuk funksionon pas ndezjes, sigurohuni që të keni rivendosur siç duhet kërcyesin dhe të ricikloni fuqinë në tabelë.
Demo
- Me kodin të përfunduar, ndiqni procesin e ngarkimit të përshkruar më sipër për të ngarkuar kodin në konfigurimin tuaj.
- Ju duhet të shihni shfaqjen e ekranit siç tregohet në imazhin më poshtë.
- Shtypni butonin e shtypjes për të filluar llogaritjen. Ju duhet të shihni shiritin e përparimit duke rrëshqitur gradualisht deri në fund.
- Në fund të procesit, vlera e Pi shfaqet së bashku me kohën që mori llogaritja.
- I njëjti kod zbatohet në një Arduino Uno. Rezultati është treguar në imazhin më poshtë.
- Duke krahasuar këto dy vlera, ne shohim se "Pilula blu" është mbi 7 herë më e shpejtë se Arduino Uno.
- Kjo e bën atë ideal për projekte që përfshijnë përpunim të rëndë dhe kufizime kohore.
- Madhësia e vogël e pilulës blu shërben gjithashtu si një avantazhtagE këtu pasi është vetëm pak më i madh se Arduino Nano dhe mund të përdoret në vende ku Nano nuk do të jetë mjaft i shpejtë.
Dokumentet / Burimet
![]() |
STM32 STM32F103C8T6 Bordi Minimal i Zhvillimit të Sistemit [pdf] Manuali i Përdoruesit STM32F103C8T6 Bordi Minimum i Zhvillimit të Sistemit, STM32F103C8T6, Bordi Minimal i Zhvillimit të Sistemit, Bordi i Zhvillimit të Sistemit, Bordi i Zhvillimit, Bordi |