STM32 logó

STM32F103C8T6 Minimális rendszerfejlesztő kártya

STM32F103C8T6-Minimum-Rendszer-fejlesztési-Board-termék

Termékinformáció

Az STM32F103C8T6 ARM STM32 Minimum System Development Board Module egy olyan fejlesztőkártya, amely az STM32F103C8T6 mikrokontrolleren alapul. Úgy tervezték, hogy az Arduino IDE használatával programozható legyen, és kompatibilis a különféle Arduino klónokkal, változatokkal és harmadik féltől származó kártyákkal, mint például az ESP32 és az ESP8266.

A Blue Pill Board néven is ismert tábla körülbelül 4.5-szer nagyobb frekvencián működik, mint egy Arduino UNO. Különféle projektekhez használható, és csatlakoztatható perifériákhoz, például TFT-kijelzőkhöz.

A projektek ezzel a kártyával történő felépítéséhez szükséges összetevők közé tartozik az STM32 kártya, az FTDI programozó, a színes TFT-kijelző, a nyomógomb, a kis kenyértábla, a vezetékek, a tápegység (opcionális különálló módhoz) és az USB-soros átalakító.

Vázlatos

Az STM32F1 kártya 1.8 ST7735 alapú színes TFT-kijelzőhöz és nyomógombhoz történő csatlakoztatásához kövesse a mellékelt kapcsolási rajzokon leírt tű-tű csatlakozásokat.

Az Arduino IDE beállítása az STM32-hez

  1. Nyissa meg az Arduino IDE-t.
  2. Lépjen az Eszközök -> Tábla -> Board Manager menüpontra.
  3. A keresősávot tartalmazó párbeszédablakban keresse meg az „STM32F1” kifejezést, és telepítse a megfelelő csomagot.
  4. Várja meg, amíg a telepítési folyamat befejeződik.
  5. A telepítés után az STM32 kártya most már elérhető lesz az Arduino IDE kártyalistáján.

STM32 kártyák programozása az Arduino IDE-vel

Megalakulása óta az Arduino IDE megmutatta a vágyat, hogy mindenféle platformot támogasson, az Arduino klónoktól és a különböző gyártók variációitól a harmadik féltől származó kártyákig, mint például az ESP32 és az ESp8266. Ahogy egyre többen ismerkednek az IDE-vel, egyre több olyan kártyát kezdenek támogatni, amelyek nem ATMEL chipeken alapulnak, és a mai oktatóanyaghoz az egyik ilyen kártyát fogjuk megnézni. Megvizsgáljuk, hogyan programozható az STM32 alapú, STM32F103C8T6 fejlesztőkártya Arduino IDE-vel.

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

Az oktatóanyaghoz használandó STM32 kártya nem más, mint az STM32F103C8T6 chip alapú STM32F1 fejlesztőkártya, amelyet általában „Blue Pill”-nek neveznek, a PCB kék színével összhangban. A Blue Pill teljesítményét a nagy teljesítményű, 32 bites STM32F103C8T6 ARM processzor hajtja, 72 MHz órajellel. Az alaplap 3.3 V-os logikai szinteken működik, de GPIO érintkezőit 5 V-osnak tesztelték. Bár nem érkezik WiFi vagy Bluetooth, mint az ESP32 és az Arduino változatok, 20 KB RAM-ot és 64 KB flash memóriát kínál, ami megfelelő nagy projektekhez. 37 GPIO érintkezővel is rendelkezik, amelyek közül 10 használható analóg érzékelőkhöz, mivel az ADC engedélyezve van, másokkal együtt, amelyek engedélyezve vannak az SPI, I2C, CAN, UART és DMA számára. Egy körülbelül 3 dollárba kerülő tábla esetében egyetértesz velem, hogy ezek lenyűgöző specifikációk. Az alábbi képen ezeknek a specifikációknak az összefoglaló változata látható az Arduino Uno-val összehasonlítva.

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

A fenti specifikációk alapján a Blue Pill működési gyakorisága körülbelül 4.5-szer magasabb, mint egy Arduino UNO esetében, a mai oktatóanyag szerintampAz STM32F1 kártya használatához csatlakoztatjuk egy 1.44 hüvelykes TFT-kijelzőhöz, és programozzuk a „Pi” állandó kiszámítására. Megjegyezzük, mennyi időbe telt, amíg a tábla megszerezte az értéket, és összehasonlítjuk azzal az idővel, amely alatt egy Arduino Uno ugyanazt a feladatot végrehajtja.

Szükséges komponensek

A projekt elkészítéséhez a következő összetevőkre van szükség;

  • STM32 tábla
  • FTDI programozó
  • Színes TFT
  • Nyomógomb
  • Kis kenyértábla
  • Vezetékek
  • Power Bank
  • USB-soros átalakító

Szokás szerint az oktatóanyaghoz használt összes komponens megvásárolható a mellékelt hivatkozásokról. A power bank azonban csak akkor szükséges, ha a projektet önálló módban kívánja telepíteni.

Vázlatos

  • Ahogy korábban említettük, az STM32F1 kártyát az 1.8 hüvelykes ST7735 alapú színes TFT kijelzőhöz fogjuk csatlakoztatni egy nyomógombbal.
  • A nyomógomb segítségével a tábla utasítja a számítást.
  • Csatlakoztassa az alkatrészeket az alábbi kapcsolási rajz szerint.

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

A csatlakozások egyszerű reprodukálhatósága érdekében az alábbiakban ismertetjük az STM32 és a kijelző közötti érintkezőket.

STM32 – ST7735

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

Nézze át még egyszer a kapcsolatokat, hogy megbizonyosodjon arról, hogy minden úgy van, ahogy lennie kell, mivel ez egy kicsit bonyolulttá válik. Miután ez megtörtént, megkezdtük az STM32 kártya beállítását, amely az Arduino IDE-vel programozható.

Az Arduino IDE beállítása az STM32-hez

  • Mint a legtöbb, nem az Arduino által készített tábla esetében, egy kis beállítást el kell végezni, mielőtt az alaplapot az Arduino IDE-vel használhatná.
  • Ez magában foglalja a tábla felszerelését file vagy az Arduino Board Manageren keresztül, vagy letöltheti az internetről és másolhatja a files a hardver mappába.
  • A Board Manager útvonal a kevésbé unalmas, és mivel az STM32F1 a listán szereplő táblák között van, ezen az úton fogunk menni. Kezdje azzal, hogy hozzáadja az STM32 kártya hivatkozását az Arduino preferencialistájához.
  • Menj ide File -> Beállítások, majd írja be ezt URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) az alábbi mezőben, majd kattintson az OK gombra.

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

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

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

  • A telepítési folyamat néhány másodpercet vesz igénybe. Ezt követően az alaplapnak elérhetőnek kell lennie az Arduino IDE táblalistáján.

Kód

  • A kód ugyanúgy lesz írva, mint bármely más vázlatot egy Arduino projekthez, azzal az egyetlen különbséggel, ahogyan a tűkre hivatkoznak.
  • A projekt kódjának egyszerű fejlesztése érdekében két olyan könyvtárat fogunk használni, amelyek a szabványos Arduino könyvtárak módosításai, hogy kompatibilisek legyenek az STM32-vel.
  • Az Adafruit GFX és az Adafruit ST7735 könyvtárak módosított változatát fogjuk használni.
  • Mindkét könyvtár letölthető a hozzájuk csatolt linkekről. Szokás szerint elkészítem a kód rövid lebontását.
  • A kódot a használni kívánt két könyvtár importálásával kezdjük.

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

  • Ezután meghatározzuk az STM32 érintkezőit, amelyekhez az LCD CS, RST és DC érintkezői csatlakoznak.

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

  • Ezután létrehozunk néhány színdefiníciót, hogy megkönnyítsük a színek későbbi nevük alapján történő használatát a kódban a hexadecimális értékek helyett.

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

  • Ezután beállítjuk, hogy hány iteráción menjen keresztül a tábla, valamint a folyamatjelző sáv frissítési időtartamát.

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

  • Ezzel létrehozzuk az ST7735 könyvtár egy objektumát, amelyet a teljes projekt során a kijelző hivatkozására használunk.
  • Jelöljük az STM32 tűjét is, amelyhez a nyomógomb csatlakozik, és létrehozunk egy változót az állapot megtartásához.

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

  • Ezzel áttérünk a void setup() függvényre.
  • Kezdjük a pinMode() beállításával annak a tűnek, amelyhez a nyomógomb csatlakozik, és aktiválunk egy belső felhúzó ellenállást a tűn, mivel a nyomógomb megnyomásakor csatlakozik a földhöz.

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

  • Ezután inicializáljuk a soros kommunikációt és a képernyőt, a kijelző hátterét feketére állítjuk, és meghívjuk a print () funkciót az interfész megjelenítéséhez.

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

  • Következő a void loop() függvény. A void ciklus funkció meglehetősen egyszerű és rövid, köszönhetően a könyvtárak/függvények használatának.
  • Kezdjük a nyomógomb állapotának leolvasásával. Ha megnyomtuk a gombot, akkor a removePressKeyText() segítségével eltávolítjuk az aktuális üzenetet a képernyőről, és a drawBar() függvény segítségével megrajzoljuk a változó folyamatjelző sávot.
  • Ezután meghívjuk a kezdeti számítási függvényt, hogy megkapjuk és megjelenítsük a Pi értékét a kiszámításához szükséges idővel együtt.

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

  • Ha a nyomógombot nem nyomják meg, a készülék készenléti üzemmódban marad, és a képernyő megköveteli egy gomb megnyomását a vele való interakcióhoz.

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

  • Végül egy késleltetés kerül beillesztésre a hurok végére, hogy adjon egy kis időt a „hurkok” felvázolásához.

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

  • A kód fennmaradó részét azok a függvények alkotják, amelyek a sáv megrajzolásától a Pi kiszámításáig a feladatok megvalósítására szolgálnak.
  • Ezeknek a funkcióknak a többségét számos más oktatóanyag tárgyalja, amelyek az ST7735 kijelző használatát foglalják magukban.

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

  • A projekt teljes kódja alább található, és a letöltési rész alatt található.

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

Kód feltöltése az STM32-re

  • A vázlatok feltöltése az STM32f1-re egy kicsit bonyolultabb a szabványos Arduino-kompatibilis kártyákhoz képest. A kód kártyára való feltöltéséhez szükségünk van egy FTDI alapú, USB-soros konverterre.
  • Csatlakoztassa az USB-soros átalakítót az STM32-höz az alábbi kapcsolási rajzok szerint.

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

Íme a kapcsolat pin-to-pin térképe

FTDI – STM32

  • Ha ez megtörtént, akkor a tábla állapotáthidalójának helyzetét XNUMX-es pozícióba állítjuk (ahogy az alábbi gif-en látható), hogy a tábla programozási módba kerüljön.
  • Ezután nyomja meg egyszer a reset gombot a táblán, és készen állunk a kód feltöltésére.

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

  • A számítógépen győződjön meg arról, hogy az „Általános STM32F103C kártya” lehetőséget választja, és válassza ki a sorozatot a feltöltési módnak, amely után megnyomhatja a feltöltés gombot.

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

  • Ha a feltöltés befejeződött, állítsa az állapotáthidalót pozícióba "O" Ezzel a tábla „futás” módba kerül, és a feltöltött kód alapján el kell indulnia.
  • Ezen a ponton leválaszthatja az FTDI-t, és az USB-n keresztül táplálhatja a kártyát. Abban az esetben, ha a kód nem fut le a tápfeszültség után, győződjön meg arról, hogy megfelelően helyreállította a jumpert, és kapcsolja újra a kártyát.

Demó

  • Amikor a kód elkészült, kövesse a fent leírt feltöltési folyamatot a kód feltöltéséhez a rendszerbe.
  • Látnia kell, hogy a kijelző az alábbi képen látható módon feljön.

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

  • Nyomja meg a nyomógombot a számítás elindításához. Látnia kell, hogy a folyamatjelző sáv fokozatosan csúszik a végéig.
  • A folyamat végén megjelenik a Pi értéke a számításhoz szükséges idővel együtt.

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

  • Ugyanezt a kódot egy Arduino Uno is implementálja. Az eredmény az alábbi képen látható.

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

  • A két értéket összehasonlítva azt látjuk, hogy a „Blue Pill” több mint hétszer gyorsabb, mint az Arduino Uno.
  • Ez ideálissá teszi olyan projektekhez, amelyek nehéz feldolgozással és időkorlátokkal járnak.
  • A Blue Pill kis mérete egyben előnyt is jelenttage itt, mivel csak egy kicsit nagyobb, mint az Arduino Nano, és olyan helyeken is használható, ahol a Nano nem lesz elég gyors.

Dokumentumok / Források

STM32 STM32F103C8T6 Minimális rendszerfejlesztő kártya [pdf] Felhasználói kézikönyv
STM32F103C8T6 minimális rendszerfejlesztő tábla, STM32F103C8T6, minimális rendszerfejlesztő tábla, rendszerfejlesztő tábla, fejlesztő tábla, tábla

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *