STM32-ლოგო

STM32F103C8T6 სისტემის განვითარების მინიმალური დაფა

STM32F103C8T6-Minimum-System-Development-Board-product-product

პროდუქტის ინფორმაცია

STM32F103C8T6 ARM STM32 სისტემის განვითარების მინიმალური დაფის მოდული არის განვითარების დაფა, რომელიც დაფუძნებულია STM32F103C8T6 მიკროკონტროლერზე. ის შექმნილია Arduino IDE-ის გამოყენებით დასაპროგრამებლად და თავსებადია Arduino-ს სხვადასხვა კლონებთან, ვარიაციებთან და მესამე მხარის დაფებთან, როგორიცაა ESP32 და ESP8266.

დაფა, რომელიც ასევე ცნობილია როგორც Blue Pill Board, მუშაობს დაახლოებით 4.5-ჯერ უფრო მაღალი სიხშირით, ვიდრე Arduino UNO. მისი გამოყენება შესაძლებელია სხვადასხვა პროექტებისთვის და შეიძლება დაკავშირებული იყოს პერიფერიულ მოწყობილობებთან, როგორიცაა TFT დისპლეები.

ამ დაფთან პროექტების ასაშენებლად საჭირო კომპონენტები მოიცავს STM32 დაფას, FTDI პროგრამისტს, ფერადი TFT დისპლეს, Push Button, Small Breadboard, Wires, Power Bank (სურვილისამებრ დამოუკიდებელი რეჟიმისთვის) და USB to Serial Converter.

სქემატური

STM32F1 დაფის დასაკავშირებლად 1.8 ST7735-ზე დაფუძნებულ ფერად TFT ეკრანთან და ღილაკთან დასაკავშირებლად, მიჰყევით მოწოდებულ სქემებში აღწერილი pin-to-pin კავშირებს.

Arduino IDE-ის დაყენება STM32-ისთვის

  1. გახსენით Arduino IDE.
  2. გადადით Tools -> Board -> Board Manager.
  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 დაფა, რომელიც გამოყენებული იქნება ამ გაკვეთილისთვის, სხვა არაფერია, თუ არა STM32F103C8T6 ჩიპზე დაფუძნებული STM32F1 განვითარების დაფა, რომელსაც ჩვეულებრივ უწოდებენ "ლურჯი აბი", მისი PCB-ის ლურჯი ფერის შესაბამისად. Blue Pill იკვებება მძლავრი 32-ბიტიანი STM32F103C8T6 ARM პროცესორით, 72 MHz სიხშირით. დაფა მუშაობს 3.3 ვ ლოგიკურ დონეზე, მაგრამ მისი GPIO ქინძისთავები გამოცდილია 5 ვ ტოლერანტად. მიუხედავად იმისა, რომ მას არ გააჩნია 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 დაფა, ჩვენ მას დავუკავშირებთ 1.44" TFT ეკრანს და დავაპროგრამებთ "Pi" მუდმივის გამოსათვლელად. ჩვენ აღვნიშნავთ, რამდენი დრო დასჭირდა დაფას მნიშვნელობის მისაღებად და შევადარებთ იმ დროს, რომელსაც Arduino Uno-ს სჭირდება იგივე დავალების შესრულება.

საჭირო კომპონენტები

ამ პროექტის ასაშენებლად საჭიროა შემდეგი კომპონენტები;

  • STM32 დაფა
  • FTDI პროგრამისტი
  • ფერი TFT
  • დააჭირეთ ღილაკს
  • პატარა პურის დაფა
  • მავთულები
  • Power Bank
  • USB სერიული გადამყვანი

როგორც ყოველთვის, ამ გაკვეთილისთვის გამოყენებული ყველა კომპონენტის შეძენა შესაძლებელია თანდართული ბმულებიდან. თუმცა, Power Bank საჭიროა მხოლოდ იმ შემთხვევაში, თუ გსურთ განათავსოთ პროექტი დამოუკიდებელ რეჟიმში.

სქემატური

  • როგორც უკვე აღვნიშნეთ, ჩვენ დავაკავშირებთ STM32F1 დაფას 1.8 ინჩზე დაფუძნებულ ST7735-ზე დაფუძნებულ ფერად TFT ეკრანზე ღილაკთან ერთად.
  • ბიძგის ღილაკი გამოყენებული იქნება დაფაზე გაანგარიშების დასაწყებად.
  • შეაერთეთ კომპონენტები, როგორც ეს ნაჩვენებია ქვემოთ მოცემულ სქემაში.

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

იმისათვის, რომ კავშირები ადვილად განმეორდეს, STM32-სა და ეკრანს შორის pin-to-pin კავშირები აღწერილია ქვემოთ.

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 -> პრეფერენციები, შემდეგ შეიყვანეთ ეს 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-ის ქინძისთავებს, რომლებთანაც დაკავშირებულია LCD-ის CS, RST და DC პინები.

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

  • ამის შემდეგ, ჩვენ ვცვლით დაფის მდგომარეობის ჯუმპერის პოზიციას პირველ პოზიციაზე (როგორც ნაჩვენებია ქვემოთ მოცემულ gif-ში), რათა დაფა პროგრამირების რეჟიმში ჩავდოთ.
  • ამის შემდეგ ერთხელ დააჭირეთ დაფაზე გადატვირთვის ღილაკს და ჩვენ მზად ვართ ავტვირთოთ კოდი.

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 სისტემის განვითარების მინიმალური დაფა, STM32F103C8T6, სისტემის განვითარების მინიმალური საბჭო, სისტემის განვითარების საბჭო, განვითარების საბჭო, დაფა

ცნობები

დატოვე კომენტარი

თქვენი ელფოსტის მისამართი არ გამოქვეყნდება. მონიშნულია აუცილებელი ველები *