STM32-logo

STM32F103C8T6 Järjestelmäkehityskortti

STM32F103C8T6-Minimi-Järjestelmä-kehitys-levytuote

Tuotetiedot

STM32F103C8T6 ARM STM32 Minimum System Development Board Module on kehityskortti, joka perustuu STM32F103C8T6 mikrokontrolleriin. Se on suunniteltu ohjelmoitavaksi Arduino IDE:n avulla ja se on yhteensopiva useiden Arduino-kloonien, -muunnelmien ja kolmannen osapuolen levyjen, kuten ESP32 ja ESP8266, kanssa.

Lauta, joka tunnetaan myös nimellä Blue Pill Board, toimii noin 4.5 kertaa korkeammalla taajuudella kuin Arduino UNO. Sitä voidaan käyttää erilaisiin projekteihin ja se voidaan liittää oheislaitteisiin, kuten TFT-näyttöihin.

Projektien rakentamiseen tällä levyllä tarvittavia komponentteja ovat STM32-levy, FTDI-ohjelmoija, värillinen TFT-näyttö, painopainike, pieni koelevy, johdot, virtapankki (valinnainen erillistilassa) ja USB-sarjamuunnin.

Kaavamainen

Liitä STM32F1-kortti 1.8 ST7735-pohjaiseen värilliseen TFT-näyttöön ja painikkeeseen noudattamalla mukana toimitetuissa kaavioissa kuvattuja pin-nasta-liitäntöjä.

Arduino IDE:n määrittäminen STM32:lle

  1. Avaa Arduino IDE.
  2. Mene Tools -> Board -> Board Manager.
  3. Etsi hakupalkin sisältävästä valintaikkunasta "STM32F1" ja asenna vastaava paketti.
  4. Odota, että asennus on valmis.
  5. Asennuksen jälkeen STM32-levyn pitäisi nyt olla valittavissa Arduino IDE -korttiluettelosta.

STM32-levyjen ohjelmointi Arduino IDE:llä

Arduino IDE on alusta lähtien osoittanut halua tukea kaikenlaisia ​​alustoja Arduino-klooneista ja eri valmistajien muunnelmista kolmansien osapuolien levyihin, kuten ESP32 ja ESp8266. Kun yhä useammat ihmiset tutustuvat IDE:hen, he alkavat tukea enemmän levyjä, jotka eivät perustu ATMEL-siruihin, ja tämän päivän opetusohjelmassa tarkastelemme yhtä sellaisista levyistä. Tutkimme kuinka ohjelmoida STM32-pohjainen STM32F103C8T6-kehityskortti Arduino IDE:llä.

STM32F103C8T6-Minimum-System-Development-Board-fig-1

Tässä opetusohjelmassa käytettävä STM32-kortti ei ole mikään muu kuin STM32F103C8T6-sirupohjainen STM32F1-kehityskortti, jota kutsutaan yleisesti nimellä "Blue Pill" sen piirilevyn sinisen värin mukaisesti. Blue Pillissä on tehokas 32-bittinen STM32F103C8T6 ARM -prosessori, jonka kellotaajuus on 72 MHz. Levy toimii 3.3 V:n logiikkatasoilla, mutta sen GPIO-nastat on testattu 5 V:n kestäviksi. Vaikka sen mukana ei tule WiFiä tai Bluetoothia, kuten ESP32- ja Arduino-versiot, se tarjoaa 20 kt RAM-muistia ja 64 kt flash-muistia, mikä tekee siitä riittävän suuriin projekteihin. Siinä on myös 37 GPIO-nastaa, joista 10:tä voidaan käyttää analogisille antureille, koska niissä on ADC, sekä muut, jotka ovat käytössä SPI-, I2C-, CAN-, UART- ja DMA-antureille. Noin 3 dollaria maksavasta levystä olet samaa mieltä kanssani, että nämä ovat vaikuttavia tietoja. Alla olevassa kuvassa näkyy tiivistetty versio näistä teknisistä tiedoista verrattuna Arduino Unoon.

STM32F103C8T6-Minimum-System-Development-Board-fig-2

Yllä olevien teknisten tietojen perusteella Blue Pillin toimintataajuus on noin 4.5 kertaa suurempi kuin Arduino UNO:n tämän päivän opetusohjelmassa entisenäampSTM32F1-kortin käyttöä varten yhdistämme sen 1.44 tuuman TFT-näyttöön ja ohjelmoimme sen laskemaan "Pi"-vakion. Huomioimme, kuinka kauan levyllä kesti saada arvo ja vertaa sitä aikaan, joka kuluu Arduino Unolla saman tehtävän suorittamiseen.

Vaaditut komponentit

Tämän projektin rakentamiseen tarvitaan seuraavat komponentit;

  • STM32-levy
  • FTDI ohjelmoija
  • Värillinen TFT
  • Painike
  • Pieni leipälauta
  • Johdot
  • Power Bank
  • USB-sarjamuunnin

Kuten tavallista, kaikki tässä opetusohjelmassa käytetyt komponentit voi ostaa liitteenä olevista linkeistä. Virtapankkia tarvitaan kuitenkin vain, jos haluat ottaa projektin käyttöön erillisenä tilassa.

Kaavamainen

  • Kuten aiemmin mainittiin, yhdistämme STM32F1-kortin 1.8 tuuman ST7735-pohjaiseen värilliseen TFT-näyttöön painopainikkeen avulla.
  • Painonappia käytetään ohjaamaan lautaa aloittamaan laskennan.
  • Liitä komponentit alla olevan kaavion mukaisesti.

STM32F103C8T6-Minimum-System-Development-Board-fig-3

Jotta liitännät olisi helppo toistaa, alla on kuvattu STM32:n ja näytön väliset pin-to-liitännät.

STM32 – ST7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

Käy kytkennät läpi vielä kerran varmistaaksesi, että kaikki on niin kuin pitääkin, sillä se on yleensä hieman hankalaa. Kun tämä oli tehty, jatkoimme STM32-kortin määrittämistä ohjelmoitavaksi Arduino IDE:llä.

Arduino IDE:n määrittäminen STM32:lle

  • Kuten useimpien muiden kuin Arduinon valmistamien levyjen kohdalla, on tehtävä hieman asetuksia ennen kuin levyä voidaan käyttää Arduino IDE:n kanssa.
  • Tämä sisältää levyn asentamisen file joko Arduino Board Managerin kautta tai lataamalla Internetistä ja kopioimalla files laitteistokansioon.
  • Board Manager -reitti on vähemmän tylsä, ja koska STM32F1 on listattujen lautojen joukossa, lähdemme sille tielle. Aloita lisäämällä linkki STM32-levyyn Arduino-asetusluetteloihin.
  • Siirry osoitteeseen File -> Asetukset ja kirjoita tämä URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) alla olevan kuvan mukaisesti ja napsauta ok.

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • Now go to Tools -> Board -> Board Manager, it will open a dialogue box with a search bar. Etsi STM32F1 and install the corresponding package.

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • Asennus kestää muutaman sekunnin. Sen jälkeen levyn pitäisi nyt olla valittavissa Arduino IDE -korttiluettelosta.

Koodi

  • Koodi kirjoitetaan samalla tavalla kuin mitä tahansa muuta luonnosta Arduino-projektille, ainoa ero on tapa, jolla nastat viitataan.
  • Jotta voimme helposti kehittää koodin tälle projektille, käytämme kahta kirjastoa, jotka ovat molemmat muunnelmia standardeista Arduino-kirjastoista, jotta ne ovat yhteensopivia STM32:n kanssa.
  • Käytämme Adafruit GFX- ja Adafruit ST7735 -kirjastojen muokattua versiota.
  • Molemmat kirjastot ovat ladattavissa niihin liittyvien linkkien kautta. Kuten tavallista, teen koodista lyhyen erittelyn.
  • Aloitamme koodin tuomalla kaksi käyttämäämme kirjastoa.

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • Seuraavaksi määritämme STM32:n nastat, joihin LCD-näytön CS-, RST- ja DC-nastat on kytketty.

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • Seuraavaksi luomme joitain värimääritelmiä, jotta värejä on helppo käyttää koodissa myöhemmin niiden nimien perusteella heksadesimaaliarvojen sijaan.

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • Seuraavaksi asetamme iteraatioiden määrän, jonka haluamme laudan käyvän läpi, sekä päivityskeston edistymispalkin käyttöön.

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • Kun tämä on tehty, luomme ST7735-kirjastoon objektin, jota käytetään viittaamaan näyttöön koko projektin ajan.
  • Ilmoitamme myös STM32:n nastan, johon painike on kytketty, ja luomme muuttujan tilan säilyttämiseksi.

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • Kun tämä on tehty, siirrymme void setup() -funktioon.
  • Aloitamme asettamalla pinMode():n pinMode(), johon painike on kytketty, aktivoimalla tapissa sisäisen vetovastuksen, koska painike kytkeytyy maahan, kun sitä painetaan.

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • Seuraavaksi alustamme sarjaliikenteen ja näytön, asetamme näytön taustan mustaksi ja kutsumme tulostus () -toiminnon näyttämään käyttöliittymän.

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • Seuraava on void loop() -funktio. Void loop -toiminto on melko yksinkertainen ja lyhyt, kiitos kirjastojen/funktioiden käytön.
  • Aloitamme lukemalla painopainikkeen tilan. Jos painiketta on painettu, poistamme nykyisen viestin näytöltä käyttämällä removePressKeyText()-komentoa ja piirrämme muuttuvan etenemispalkin drawBar()-funktiolla.
  • Kutsumme sitten laskennan aloitusfunktiota saadaksemme ja näyttääksemme Pi:n arvon sekä sen laskemiseen kuluneen ajan.

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • Jos painiketta ei paineta, laite pysyy valmiustilassa ja näyttö vaatii näppäimen painamista, jotta se voi olla vuorovaikutuksessa sen kanssa.

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • Lopuksi viive lisätään silmukan loppuun antamaan vähän aikaa ennen "silmukoiden" luonnostelemista.

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • Jäljelle jäävä osa koodista on funktioita, joita kutsutaan suorittamaan tehtävät viivan piirtämisestä Pi:n laskemiseen.
  • Useimmat näistä toiminnoista on käsitelty useissa muissa opetusohjelmissa, jotka sisältävät ST7735-näytön käytön.

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • Projektin täydellinen koodi on saatavilla alla ja liitteenä latausosion alle.

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

Koodi lähetetään STM32:een

  • Luonnosten lataaminen STM32f1:een on hieman monimutkaista verrattuna tavallisiin Arduino-yhteensopiviin levyihin. Jotta voimme ladata koodin levylle, tarvitsemme FTDI-pohjaisen USB-sarjamuuntimen.
  • Liitä USB-sarjamuunnin STM32:een alla olevien kaavioiden mukaisesti.

STM32F103C8T6-Minimum-System-Development-Board-fig-35

Tässä on pin-to-pin kartta yhteydestä

FTDI – STM32

  • Kun tämä on tehty, muutamme levyn tilahypyn asennon asentoon yksi (kuten alla olevasta gifistä näkyy), jotta kortti asetetaan ohjelmointitilaan.
  • Paina tämän jälkeen pöydän nollauspainiketta kerran ja olemme valmiita lataamaan koodin.

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • Varmista, että valitset tietokoneella "Generic STM32F103C board" ja valitset latausmenetelmäksi sarjamuodon, jonka jälkeen voit painaa latauspainiketta.

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • Kun lataus on valmis, vaihda tilan hyppyjohdin asentoon "O" Tämä asettaa taulun "ajo"-tilaan ja sen pitäisi nyt alkaa toimimaan ladatun koodin perusteella.
  • Tässä vaiheessa voit irrottaa FTDI:n ja kytkeä kortille virran sen USB:n kautta. Jos koodi ei toimi virran kytkemisen jälkeen, varmista, että olet palauttanut hyppyjohtimen kunnolla ja kierrätä piirilevylle virta.

Demo

  • Kun koodi on valmis, noudata yllä kuvattua latausprosessia ladataksesi koodi asetuksiin.
  • Näytön pitäisi ilmestyä alla olevan kuvan mukaisesti.

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • Aloita laskenta painamalla painiketta. Sinun pitäisi nähdä etenemispalkin liukuva asteittain loppuun asti.
  • Prosessin lopussa Pi:n arvo näytetään yhdessä laskentaan kuluneen ajan kanssa.

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • Sama koodi on toteutettu Arduino Unossa. Tulos näkyy alla olevassa kuvassa.

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • Vertaamalla näitä kahta arvoa näemme, että "Blue Pill" on yli 7 kertaa nopeampi kuin Arduino Uno.
  • Tämä tekee siitä ihanteellisen projekteihin, joihin liittyy raskasta käsittelyä ja aikarajoituksia.
  • Blue Pillin pieni koko toimii myös lisänätage täällä, koska se on vain vähän suurempi kuin Arduino Nano ja sitä voidaan käyttää paikoissa, joissa Nano ei ole tarpeeksi nopea.

Asiakirjat / Resurssit

STM32 STM32F103C8T6 Järjestelmäkehityskortti [pdfKäyttöopas
STM32F103C8T6 vähimmäisjärjestelmän kehityskortti, STM32F103C8T6, vähimmäisjärjestelmän kehityskortti, järjestelmäkehityskortti, kehityskortti, kortti

Viitteet

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *