Logo STM32

Deska pro vývoj minimálního systému STM32F103C8T6

STM32F103C8T6-Minimum-System-Development-Board-product

Informace o produktu

Modul STM32F103C8T6 ARM STM32 Minimum System Development Board Module je vývojová deska, která je založena na mikrokontroléru STM32F103C8T6. Je navržen pro programování pomocí Arduino IDE a je kompatibilní s různými klony Arduino, variacemi a deskami třetích stran, jako jsou ESP32 a ESP8266.

Deska, známá také jako Blue Pill Board, pracuje na frekvenci přibližně 4.5krát vyšší než Arduino UNO. Lze jej použít pro různé projekty a lze jej připojit k periferiím, jako jsou TFT displeje.

Požadované komponenty pro vytváření projektů s touto deskou zahrnují desku STM32, programátor FTDI, barevný TFT displej, tlačítko, malý prkénko, dráty, napájecí banku (volitelně pro samostatný režim) a převodník USB na sériový port.

Schématický

Chcete-li připojit desku STM32F1 k barevnému TFT displeji 1.8 ST7735 a tlačítku, postupujte podle zapojení pin-to-pin popsaných v dodaných schématech.

Nastavení Arduino IDE pro STM32

  1. Otevřete Arduino IDE.
  2. Přejděte na Nástroje -> Board -> Board Manager.
  3. V dialogovém okně s vyhledávací lištou vyhledejte „STM32F1“ a nainstalujte příslušný balíček.
  4. Počkejte na dokončení instalačního postupu.
  5. Po instalaci by nyní měla být deska STM32 dostupná pro výběr v seznamu desek Arduino IDE.

Programování desek STM32 pomocí Arduino IDE

Od svého vzniku prokázalo Arduino IDE touhu podporovat všechny druhy platforem, od klonů Arduina a variací různých výrobců až po desky třetích stran, jako jsou ESP32 a ESp8266. Jak se více lidí seznamuje s IDE, začínají podporovat více desek, které nejsou založeny na čipech ATMEL a pro dnešní tutoriál se podíváme na jednu z takových desek. Prozkoumáme, jak naprogramovat vývojovou desku STM32F32C103T8 založenou na STM6 s Arduino IDE.

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

Deska STM32, která má být použita v tomto tutoriálu, není nic jiného než vývojová deska STM32F103 založená na čipu STM8F6C32T1, běžně označovaná jako „Blue Pill“ v souladu s modrou barvou její PCB. Blue Pill je poháněn výkonným 32bitovým procesorem STM32F103C8T6 ARM, taktovaným na 72 MHz. Deska pracuje na logických úrovních 3.3 V, ale její piny GPIO byly testovány jako tolerantní k 5V. I když nepřichází s WiFi nebo Bluetooth jako varianty ESP32 a Arduino, nabízí 20 KB RAM a 64 KB flash paměti, díky čemuž je dostačující pro velké projekty. Má také 37 GPIO pinů, z nichž 10 lze použít pro analogové senzory, protože mají povoleno ADC, spolu s dalšími, které jsou povoleny pro SPI, I2C, CAN, UART a DMA. Pro desku, která stojí kolem 3 $, budete se mnou souhlasit, že to jsou působivé specifikace. Souhrnná verze těchto specifikací ve srovnání s verzí Arduino Uno je zobrazena na obrázku níže.

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

Na základě výše uvedených specifikací je frekvence, při které Blue Pill pracuje, asi 4.5krát vyšší než u Arduino UNO, pro dnešní tutoriál, jako ex.ampJak používat desku STM32F1, připojíme ji k 1.44″ TFT displeji a naprogramujeme ji na výpočet konstanty „Pi“. Zaznamenáme, jak dlouho trvalo desce získat hodnotu a porovnáme ji s časem, který potřebuje Arduino Uno k provedení stejného úkolu.

Požadované komponenty

K sestavení tohoto projektu jsou nutné následující součásti;

  • Deska STM32
  • Programátor FTDI
  • Barevný TFT
  • Stiskněte tlačítko
  • Malý Breadboard
  • Dráty
  • Power Bank
  • Převodník USB na sériový port

Všechny komponenty použité pro tento tutoriál lze jako obvykle zakoupit z přiložených odkazů. Powerbanka je však potřeba pouze v případě, že chcete projekt nasadit v samostatném režimu.

Schématický

  • Jak již bylo zmíněno dříve, připojíme desku STM32F1 k 1.8″ barevnému TFT displeji na bázi ST7735 spolu s tlačítkem.
  • Tlačítko bude použito pro pokyn desce, aby zahájila výpočet.
  • Připojte součásti podle schématu níže.

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

Aby bylo možné spojení snadno replikovat, jsou níže popsána propojení pin-to-pin mezi STM32 a displejem.

STM32 – ST7735

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

Projděte si připojení ještě jednou, abyste se ujistili, že je vše tak, jak má být, protože to může být trochu složitější. Po dokončení jsme přistoupili k nastavení desky STM32, která má být naprogramována pomocí Arduino IDE.

Nastavení Arduino IDE pro STM32

  • Stejně jako u většiny desek, které nevyrobilo Arduino, je třeba provést trochu nastavení, než bude možné desku používat s Arduino IDE.
  • To zahrnuje instalaci desky file buď přes Arduino Board Manager nebo stažením z internetu a zkopírováním files do složky hardware.
  • Cesta Board Manager je ta méně únavná, a protože STM32F1 je mezi uvedenými deskami, půjdeme touto cestou. Začněte přidáním odkazu na desku STM32 do seznamů preferencí Arduino.
  • Přejít na File -> Předvolby, poté zadejte toto URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) v rámečku, jak je uvedeno níže, a klikněte na 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. Hledat STM32F1 and install the corresponding package.

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

  • Postup instalace bude trvat několik sekund. Poté by deska měla být nyní k dispozici pro výběr v seznamu desek Arduino IDE.

Kód

  • Kód bude napsán stejným způsobem, jakým bychom psali jakýkoli jiný náčrt pro projekt Arduino, s jediným rozdílem v tom, jak jsou piny odkazovány.
  • Abychom mohli snadno vyvinout kód pro tento projekt, použijeme dvě knihovny, které jsou obě modifikacemi standardních knihoven Arduino, aby byly kompatibilní s STM32.
  • Použijeme upravenou verzi knihoven Adafruit GFX a Adafruit ST7735.
  • Obě knihovny lze stáhnout prostřednictvím odkazů, které jsou k nim připojeny. Jako obvykle udělám krátký rozpis kódu.
  • Kód začneme importem dvou knihoven, které budeme používat.

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

  • Dále definujeme piny STM32, ke kterým jsou připojeny CS, RST a DC piny LCD.

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

  • Dále vytvoříme některé definice barev, které usnadní použití barev podle jejich názvů v kódu později namísto jejich hexadecimálních hodnot.

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

  • Dále nastavíme počet iterací, kterými chceme, aby deska prošla, spolu s dobou obnovy pro použití ukazatele průběhu.

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

  • Tím vytvoříme objekt knihovny ST7735, který bude použit k odkazování na displej v celém projektu.
  • Označíme také pin STM32, ke kterému je tlačítko připojeno, a vytvoříme proměnnou pro udržení jeho stavu.

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

  • Tím se přesuneme k funkci void setup().
  • Začneme nastavením pinMode() pinu, ke kterému je tlačítko připojeno, aktivací interního pull-up rezistoru na pinu, protože tlačítko se při stisknutí spojí se zemí.

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

  • Dále inicializujeme sériovou komunikaci a obrazovku, nastavíme pozadí displeje na černé a zavoláme funkci print () pro zobrazení rozhraní.

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

  • Další je funkce void loop(). Funkce void loop je poměrně jednoduchá a krátká, díky použití knihoven/funkcí.
  • Začneme čtením stavu tlačítka. Pokud bylo tlačítko stisknuto, odstraníme aktuální zprávu na obrazovce pomocí removePressKeyText() a pomocí funkce drawBar() nakreslíme měnící se ukazatel průběhu.
  • Poté zavoláme funkci zahájení výpočtu, abychom získali a zobrazili hodnotu Pi spolu s časem, který zabral její výpočet.

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

  • Pokud není tlačítko stisknuto, zařízení zůstane v základním režimu a obrazovka vyžaduje stisknutí tlačítka pro interakci s ním.

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

  • Nakonec je na konec smyčky vložena prodleva, která poskytne trochu času před načrtnutím „smyček“.

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

  • Zbývající část kódu jsou funkce volané k dosažení úkolů od kreslení pruhu po výpočet Pi.
  • Většina z těchto funkcí byla popsána v několika dalších výukových programech, které zahrnují použití displeje ST7735.

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

  • Kompletní kód projektu je k dispozici níže a je přiložen v části ke stažení.

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

Nahrání kódu do STM32

  • Nahrávání náčrtů do STM32f1 je ve srovnání se standardními deskami kompatibilními s Arduino trochu složité. K nahrání kódu na desku potřebujeme převodník USB-to Serial založený na FTDI.
  • Připojte převodník USB na sériový port k STM32, jak je znázorněno na schématech níže.

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

Zde je mapa připojení pin-to-pin

FTDI – STM32

  • Poté změníme polohu propojky stavu desky na pozici jedna (jak je znázorněno na obrázku níže), aby se deska dostala do programovacího režimu.
  • Poté jednou stiskněte tlačítko reset na desce a jsme připraveni nahrát kód.

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

  • V počítači se ujistěte, že jste vybrali „Generic STM32F103C board“ a jako metodu nahrávání zvolili sériové, po kterém můžete stisknout tlačítko nahrávání.

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

  • Po dokončení nahrávání změňte propojku stavu do polohy "Ó" Tím se deska uvede do režimu „běh“ a nyní by se měla spustit na základě nahraného kódu.
  • V tomto okamžiku můžete odpojit FTDI a napájet desku přes USB. V případě, že se kód po zapnutí nespustí, ujistěte se, že jste správně obnovili propojku a vraťte napájení do desky.

Demo

  • Po dokončení kódu postupujte podle výše popsaného procesu nahrávání a nahrajte kód do svého nastavení.
  • Měli byste vidět zobrazení, jak je znázorněno na obrázku níže.

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

  • Stisknutím tlačítka spustíte výpočet. Ukazatel průběhu by se měl postupně posouvat až do konce.
  • Na konci procesu se zobrazí hodnota Pi spolu s časem, který výpočet trval.

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

  • Stejný kód je implementován na Arduino Uno. Výsledek je znázorněn na obrázku níže.

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

  • Porovnáním těchto dvou hodnot vidíme, že „Blue Pill“ je více než 7krát rychlejší než Arduino Uno.
  • Díky tomu je ideální pro projekty, které vyžadují náročné zpracování a časová omezení.
  • Malá velikost modré pilulky slouží také jako doplněktage zde, protože je jen o něco větší než Arduino Nano a lze jej použít v místech, kde Nano nebude dostatečně rychlé.

Dokumenty / zdroje

STM32 STM32F103C8T6 Minimální deska pro vývoj systému [pdfUživatelská příručka
STM32F103C8T6 Minimální deska pro vývoj systému, STM32F103C8T6, Deska pro vývoj minimálního systému, Deska pro vývoj systému, Deska pro vývoj, Deska

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *