STM32-лого

STM32F103C8T6 Минимална табла за развој на системот

STM32F103C8T6-Minimum-System-Development-board-product-product

Информации за производот

STM32F103C8T6 ARM STM32 Minimum System Development Board Module е развојна плочка која се базира на микроконтролерот STM32F103C8T6. Дизајниран е да се програмира со користење на Arduino IDE и е компатибилен со различни клонови, варијации и табли од трети страни на Arduino како ESP32 и ESP8266.

Таблата, позната и како Blue Pill Board, работи на фреквенција приближно 4.5 пати поголема од Arduino UNO. Може да се користи за различни проекти и може да се поврзе со периферни уреди како TFT дисплеи.

Потребните компоненти за изградба на проекти со оваа плочка вклучуваат STM32 плочка, FTDI програмер, TFT екран во боја, копче за притискање, мала плоча, жици, Power Bank (опционално за самостоен режим) и USB во сериски конвертор.

Шематски

За да ја поврзете плочата STM32F1 со обоениот TFT дисплеј базиран на 1.8 ST7735 и копче за притискање, следете ги поврзувањата од игла до игла опишани во дадените шеми.

Поставување на Arduino IDE за STM32

  1. Отворете го Arduino IDE.
  2. Одете во Алатки -> Одбор -> Менаџер на одборот.
  3. Во полето за дијалог со лента за пребарување, побарајте „STM32F1“ и инсталирајте го соодветниот пакет.
  4. Почекајте да заврши процедурата за инсталација.
  5. По инсталацијата, плочката STM32 сега треба да биде достапна за избор во списокот на табла Arduino IDE.

Програмирање на STM32 плочи со Arduino IDE

Од своето основање, Arduino IDE демонстрираше желба за поддршка на сите видови платформи, од клонови на Arduino и варијации на различни производители до табли од трети страни како ESP32 и ESp8266. Како што се повеќе луѓе се запознаваат со IDE, тие почнуваат да поддржуваат повеќе табли кои не се базирани на чипови ATMEL и за денешниот туторијал ќе погледнеме една од таквите табли. Ќе испитаме како да ја програмираме развојната плочка базирана на STM32, STM32F103C8T6 со Arduino IDE.

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

Плочката STM32 што ќе се користи за ова упатство не е ништо друго туку развојната плочка STM32F103 базирана на чип STM8F6C32T1, која вообичаено се нарекува „Blue Pill“ во согласност со сината боја на нејзината ПХБ. Blue Pill се напојува со моќниот 32-битен STM32F103C8T6 ARM процесор, со такт од 72 MHz. Плочката работи на логички нивоа од 3.3v, но нејзините GPIO пинови се тестирани да бидат толерантни на 5V. Иако не доаѓа со WiFi или Bluetooth како варијантите ESP32 и Arduino, тој нуди 20KB RAM и 64KB флеш меморија што го прави соодветен за големи проекти. Исто така, поседува 37 GPIO пинови, од кои 10 може да се користат за аналогни сензори бидејќи имаат овозможено ADC, заедно со други што се овозможени за SPI, I2C, CAN, UART и DMA. За табла која чини околу 3 долари, ќе се согласите со мене дека ова се импресивни спецификации. Сумираната верзија на овие спецификации во споредба со онаа на Arduino Uno е прикажана на сликата подолу.

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

Врз основа на горенаведените спецификации, фреквенцијата на која работи Blue Pill е околу 4.5 пати поголема од Arduino UNO, за денешното упатство, како ексampЗа тоа како да ја користите плочката STM32F1, ќе ја поврземе со TFT дисплеј од 1.44 инчи и ќе ја програмираме да ја пресмета константата „Пи“. Ќе забележиме колку време и требаше на таблата да ја добие вредноста и ќе ја споредиме со времето што му е потребно на Arduino Uno да ја изврши истата задача.

Потребни компоненти

Следниве компоненти се потребни за изградба на овој проект;

  • STM32 одбор
  • Програмер FTDI
  • TFT во боја
  • Притиснете го копчето
  • Мала штица за леб
  • Жици
  • Power Bank
  • УСБ во сериски конвертор

Како и обично, сите компоненти што се користат за ова упатство може да се купат од приложените врски. Енергетската банка сепак е потребна само ако сакате да го распоредите проектот во самостоен режим.

Шематски

  • Како што споменавме претходно, ќе ја поврземе плочата STM32F1 со TFT екранот во боја базиран на 1.8 инчи ST7735 заедно со копче.
  • Копчето за притискање ќе се користи за да се наложи на таблата да ја започне пресметката.
  • Поврзете ги компонентите како што е прикажано на шемата подолу.

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

За да се олесни реплицирањето на врските, подолу се опишани поврзувањата од пин-до-пин помеѓу STM32 и екранот.

STM32 - ST7735

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

Прегледајте ги врските уште еднаш за да бидете сигурни дека сè е како што треба, бидејќи има тенденција да стане малку незгодно. Со ова, продолживме со поставување на плочката STM32 за да се програмира со Arduino IDE.

Поставување на Arduino IDE за STM32

  • Како и кај повеќето табли што не се направени од Arduino, треба да се направи малку подесување пред да може да се користи плочата со Arduino IDE.
  • Ова вклучува инсталирање на таблата file или преку Arduino Board Manager или преземање од интернет и копирање на files во хардверската папка.
  • Рутата на Управникот на одборот е помалку мачна и бидејќи STM32F1 е меѓу наведените табли, ние ќе одиме по тој пат. Започнете со додавање на врската за таблата STM32 во списоците со преференци на Arduino.
  • Одете на File -> Preferences, потоа внесете го ова URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) во полето како што е наведено подолу и кликнете 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. Пребарај за STM32F1 and install the corresponding package.

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

  • Постапката за инсталација ќе потрае неколку секунди. После тоа, таблата сега треба да биде достапна за избор во списокот на табла Arduino IDE.

Код

  • Кодот ќе биде напишан на ист начин како што би напишале која било друга скица за Arduino проект, со единствената разлика во начинот на кој се референцираат пиновите.
  • За да можеме лесно да го развиеме кодот за овој проект, ќе користиме две библиотеки кои се модификации на стандардните библиотеки на Arduino за да ги направиме компатибилни со STM32.
  • Ќе ја користиме изменетата верзија на библиотеките Adafruit GFX и Adafruit ST7735.
  • Двете библиотеки може да се преземат преку линковите прикачени на нив. Како и обично, ќе направам краток преглед на кодот.
  • Кодот го започнуваме со увоз на двете библиотеки што ќе ги користиме.

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

  • Следно, ги дефинираме пиновите на STM32 на кои се поврзани пиновите CS, RST и DC на LCD-екранот.

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

  • Следно, создаваме некои дефиниции за бои за да го олесниме користењето на боите според нивните имиња во кодот подоцна наместо според нивните хексадетични вредности.

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

  • Следно, го поставуваме бројот на повторувања низ кои сакаме да помине таблата заедно со времетраењето на освежувањето за да се користи лентата за напредок.

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

  • Со ова направено, создаваме објект од библиотеката ST7735 кој ќе се користи за референца на екранот низ целиот проект.
  • Го означуваме и пинот на STM32 на кој е поврзан копчето и создаваме променлива за да ја задржите неговата состојба.

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

  • Со ова направено, преминуваме во функцијата void setup().
  • Започнуваме со поставување на pinMode() на пинот на кој е приклучен копчето, активирајќи внатрешен отпорник за повлекување на иглата бидејќи копчето за притискање се поврзува со земјата кога ќе се притисне.

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

  • Следно, ја иницијализираме сериската комуникација и екранот, поставувајќи ја позадината на екранот на црна и повикувајќи ја функцијата за печатење () за прикажување на интерфејсот.

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

  • Следна е функцијата void loop(). Функцијата void loop е прилично едноставна и кратка, благодарение на употребата на библиотеки/функции.
  • Започнуваме со читање на состојбата на копчето. Ако копчето е притиснато, ја отстрануваме тековната порака на екранот со помош на removePressKeyText() и ја цртаме променливата лента за напредок користејќи ја функцијата drawBar().
  • Потоа ја повикуваме функцијата за пресметка за почеток за да ја добиеме и прикажеме вредноста на Pi заедно со времето потребно за да го пресметаме.

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

  • Ако копчето не е притиснато, уредот останува во режим на мирување, а екранот бара да се притисне копче за да комуницирате со него.

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

  • Конечно, доцнењето се вметнува на крајот на циклусот за да се даде малку време пред да се скицира „јамките“.

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

  • Преостанатиот дел од кодот се функциите повикани за постигнување на задачите од цртање на лентата до пресметување на Pi.
  • Повеќето од овие функции се опфатени во неколку други упатства кои вклучуваат употреба на екранот 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

  • Целосниот код за проектот е достапен подолу и е прикачен во делот за преземање.

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

Поставување код на STM32

  • Поставувањето скици на STM32f1 е малку сложено во споредба со стандардните табли компатибилни со Arduino. За да поставиме код на таблата, потребен ни е конвертор базиран на FTDI, USB-во сериски.
  • Поврзете го USB во серискиот конвертор со STM32 како што е прикажано на шемите подолу.

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

Еве карта од игла до игла на врската

FTDI – STM32

  • Со ова направено, ние потоа ја менуваме положбата на скокачот на состојбата на таблата во позиција една (како што е прикажано на сликата подолу), за да ја ставиме плочата во режим на програмирање.
  • Притиснете го копчето за ресетирање на таблата еднаш после ова и ние сме подготвени да го поставиме кодот.

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

  • На компјутерот, погрижете се да изберете „Generic STM32F103C board“ и изберете сериски за методот на прикачување, по што можете да го притиснете копчето за поставување.

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

  • Откако ќе заврши поставувањето, сменете го скокачот на состојбата на позиција „О“ Ова ќе ја стави таблата во режим „работи“ и сега треба да почне да работи врз основа на поставениот код.
  • Во овој момент, можете да го исклучите FTDI и да ја напојувате плочата преку USB. Во случај кодот да не работи по напојувањето, проверете дали правилно сте го обновиле скокачот и рециклирајте ја струјата на плочата.

Демо

  • Кога кодот е завршен, следете го процесот на поставување опишан погоре за да го поставите кодот на вашето поставување.
  • Треба да го видите екранот како што е прикажано на сликата подолу.

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

  • Притиснете го копчето за да започнете со пресметката. Треба да ја видите лентата за напредок како се лизга постепено до крај.
  • На крајот од процесот, вредноста на Pi се прикажува заедно со времето кое траело пресметката.

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

  • Истиот код е имплементиран на Arduino Uno. Резултатот е прикажан на сликата подолу.

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

  • Споредувајќи ги овие две вредности, гледаме дека „Blue Pill“ е над 7 пати побрза од Arduino Uno.
  • Ова го прави идеален за проекти кои вклучуваат тешка обработка и временски ограничувања.
  • Малата големина на сината пилула, исто така, служи како адванtagе тука бидејќи е само малку поголем од Arduino Nano и може да се користи на места каде што Nano нема да биде доволно брз.

Документи / ресурси

STM32 STM32F103C8T6 Минимална табла за развој на системот [pdf] Упатство за користење
STM32F103C8T6 Minimum System Development Board, STM32F103C8T6, Minimum System Development Board, System Development Board, Development Board, Board

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *