📃
micropython
  • Programming with MicroPython
  • MicroPython for BBC Micro:bit
    • BBC Micro:bit Overview
    • Micro:bit Code Examples
  • MicroPython for STM32
    • MicroPython Firmware Flashing for STM32
    • STM32 Code Examples
  • MicroPython for ESP32
    • WebREPL
    • ESP32 Code Examples
    • How To Blink LEDs with ESP32
    • ESP32 Programming with M5Stack Core
    • ESP32 with Dual-Channel DAC Output
    • ESP32 Networking
  • Arduino C/C++ versus MicroPython
  • Building MicroPython Firmware
  • MicroPython Benchmarking
  • MicroPython for RP2040 Pico
    • RPi Pico RP2040 Code Examples
    • PIO Programming
    • PIO Signaling and Measurement
  • CircuitPython
    • CircuitPython with Piper Make
    • CircuitPython for SAMD21
    • SAMD21 Code Examples
    • CircuitPython for STM32
    • STM32 Code Examples
    • CircuitPython for Pico RP2040
  • List of PDF Files
Powered by GitBook
On this page
  • บอร์ดไมโครคอนโทรลเลอร์ STM32
  • แนวทางการเลือกใช้บอร์ด STM32 สำหรับไมโครไพธอน
  • กล่าวโดยสรุป

Was this helpful?

MicroPython for STM32

แนะนำไมโครไพธอนสำหรับไมโครคอนโทรลเลอร์ STM32

PreviousMicro:bit Code ExamplesNextMicroPython Firmware Flashing for STM32

Last updated 4 years ago

Was this helpful?

บอร์ดไมโครคอนโทรลเลอร์ STM32

ไมโครไพธอนได้ถูกพัฒนาขึ้นเพื่อนำมาใช้งานกับไมโครคอนโทรลเลอร์ (MCU) 32 บิต บอร์ดแรกเริ่มคือ (หรือ ) และทางผู้พัฒนาได้เลือกใช้ไมโครคอนโทรลเลอร์ STM32F405RGT6 (ARM Cortex-M4F, 168MHz, 1024KB Flash, 192KB SRAM) หลังจากนั้นก็มีบอร์ดอีกหลายเวอร์ชันออกมา เช่น ที่ใช้ชิป STM32F722 หรือ STM32F767 (ARM Cortex-M7) เป็นต้น

ข้อสังเกต: บอร์ด STM32 Nucleo หรือ Discovery Kits ได้รวมวงจร ST-Link V2 Programmer / Debugger เอาไว้บนบอร์ดแล้ว ทำให้สะดวกต่อการอัปโหลดเฟิร์มแวร์ (ไฟล์ประเภท .hex หรือ .bin) ไปยังชิปไมโครคอนโทรลเลอร์ที่อยู่บนบอร์ดดังกล่าว

บอร์ดไมโครคอนโทรลเลอร์ตระกูล STM32 รองรับการเขียนโปรแกรมได้หลายรูปแบบ เช่น

  • C/C++ (Arduino Sketch) โดยใช้

  • ...

แนวทางการเลือกใช้บอร์ด STM32 สำหรับไมโครไพธอน

โดยความคิดเห็นส่วนตัวของผู้เขียน บอร์ด STM32 Nucleo ก็เป็นตัวเลือกที่น่าสนใจ เช่น Nucleo F401RE / L476RG / F446RE / F767Z แต่ก็มีข้อจำกัด ยกตัวอย่างเช่น บอร์ด Nucleo-64 หรือ Nucleo-144 มีรูปทรงหรือขนาดของบอร์ดไม่เหมาะสำหรับการนำไปต่องวงจรใช้งานบนเบรดบอร์ด (Breadboard)

ข้อสังเกต: บอร์ด STM32F4x1 Mini-F4 นั้นมี 2 เวอร์ชันให้เลือกใช้ และแตกต่างกันที่ชิปไมโครคอนโทรลเลอร์ดังนี้

  • STM32F401CEU6 (84MHz, 256KB Flash, 64KB SRAM)

ข้อสังเกต: ด้านล่างของบอร์ด มี Solder Pads (U3) สำหรับมีไว้สำหรับให้บัดกรีขาของไอซี SPI Flash (external) ที่ใช้ตัวถังแบบ SOIC-8 Package เพื่อช่วยเพิ่มความจุของ Flash Storage เมื่อใช้งานกับไมโครไพธอน หรือจะเลือกใช้จาก Internal Flash ของไมโครคอนโทรลเลอร์ STM32 เท่านั้นก็ได้

บอร์ดนี้มีขนาดเล็ก (2.1" x 0.8") สามารถเสียบขาลงบนเบรดบอร์ดได้ จึงเหมาะสำหรับนำมาใช้ในการเรียนรู้หรือทำอุปกรณ์ต้นแบบ (Prototyping) มีคอนเนกเตอร์ USB Type-C สำหรับป้อนแรงดันไฟเลี้ยงจาก USB (5V) และเชื่อมต่อกับคอมพิวเตอร์ได้

ไมโครคอนโทรลเลอร์ STM32F411CEU6 รองรับการใช้งาน USB OTG และสามารถทำงานในโหมด USB-CDC (Virtual Com Port), USB Mass Storage และ USB HID (Keyboard or Mouse)

กล่าวโดยสรุป

การเขียนข้อมูลจากไฟล์เฟิร์มแวร์สำหรับบอร์ดไมโครคอนโทรลเลอร์ STM32 มีหลายวิธีและสามารถเลือกใช้ซอฟต์แวร์ของบริษัท STMicroelectronics หรือซอฟต์แวร์ประเภท Open Source ได้เช่นกัน

นอกจากตัวเลือกที่เป็น Official MicroPython Boards โดยบริษัท George Robotics Limited ก็ยังมีบอร์ดของบริษัท STMicroelectronics ที่นำมาใช้กับไมโครไพธอนได้ เช่น บอร์ดในกลุ่มที่เรียกว่า ซึ่งเป็นบอร์ดที่มีราคาไม่แพง และมีมากกว่า 50 แบบให้เลือกใช้ แบ่งได้เป็น 3 กลุ่มย่อยตามจำนวนของขา I/O ของชิป MCU ได้แก่ Nucleo-32, Nucleo-64 และ Nucleo-144 และยังมีบอร์ดในกลุ่มที่เรียกว่า ซึ่งจะมีราคาสูงกว่าบอร์ด Nucleo

C/C++ โดยใช้ซอฟต์แวร์

ร่วมกับ หรือ

C/C++ โดยใช้ ร่วมกับ

(Adafruit)

ถ้าจะเลือกใช้บอร์ด STM32 สำหรับผู้เริ่มต้น ก็แนะนำให้ใช้บอร์ดที่หาซื้อได้ไม่ยาก ราคาไม่แพง (อาจจะมีราคาต่ำกว่าหรือสูงกว่าหนึ่งพันบาท) แต่ที่สำคัญคือ บอร์ดที่จะเลือกใช้นั้น ต้องใช้ได้กับเฟิร์มแวร์ของไมโครไพธอน ดังนั้นให้ลองตรวจสอบดูว่า มีบอร์ดใดบ้างที่นำมาใช้ได้ เช่น ดูได้จากรายการในไดเรกทอรี ports/stm32/boards ของ

แต่ถ้าต้องการเลือกใช้บอร์ด STM32 ที่มีราคาถูกและสามารถนำไปเสียบขาลงบนเบรดบอร์ดได้ ก็แนะนำให้ใช้บอร์ด () ของ (จากประเทศจีน)

ไฟล์

ไฟล์

(100MHz, 512KB Flash, 128KB SRAM)

การติดตั้งเฟิร์มแวร์ (.hex หรือ .bin) ลงในหน่วยความจำ Flash ภายในของชิปไมโครคอนโทรลเลอร์ สามารถทำได้โดยใช้ขา I/O ที่เรียกว่า แต่ต้องใช้ร่วมกับอุปกรณ์ภายนอก เช่น (หรืออุปกรณ์เวอร์ชัน ที่ใหม่กว่า) และใช้งานร่วมกับซอฟต์แวร์ หรือ

แต่ชิปตระกูล STM32 เช่น STM32F4xx รองรับการทำงานในโหมด DFU Bootloader ช่วยให้โปรแกรมไฟล์ที่เป็นเฟิร์มแวร์ (ไฟล์ประเภท .dfu) ผ่านทาง USB ได้เช่นกัน โดยจะต้องใช้งานร่วมกับซอฟต์แวร์ เช่น หรือ หรือใช้โปรแกรมที่เป็น Open Source เช่น ก็ได้

เผยแพร่ภายใต้ลิขสิทธิ์ Attribution-ShareAlike 4.0 International ()

STM32 Nucleo Boards
STM32 Discovery Kits
STM32CubeIDE
Arduino IDE
Arduino core for STM32
VSCode + PlatformIO IDE Extension
ARM mbed OS
STM32 Boards
MicroPython for STM32
CircuitPython
Espruino (JavaScript) for STM32
MicroPython Source Code Repository
STM32F411CEU6 Mini-F4
Black Pill V2.0
WeACT Studio
Schematic (.pdf)
Pinout Diagram (.png)
STM32F411CEU6
SWD (Serial Wire Debug) Interface
ST-Link/V2 USB Debugger and Programmer
V3
STM32 ST-Link Utility
STM32CubeProgrammer
DfuSe Utility
STM32CubeProgrammer
dfu-utils
CC BY-SA 4.0
PyBoard v1.1
PyBv1.1
PyBoard D-Series
GitHub - micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systemsGitHub
Logo
รูปภาพ: PyBv1.1(Source: https://store.micropython.org/product/PYBv1.1)
รูปภาพ: ตัวอย่างบอร์ด STM32 Nucleo
รูปภาพ: ตัวอย่างรายชื่อบอร์ด STM32 Nucleo ที่ใช้ได้กับไมโครไพธอน
รูปภาพ: STM32F411CEU6 Mini-F4 Pinout (Source: WeAct Studio)
รูปภาพ: มุมมองด้านบนและด้านล่างของบอร์ด STM32F411CEU6 BlackPill