แนะนำการใช้งานบอร์ดไมโครคอนโทรลเลอร์ STM32F4x1 BlackPill#

Keywords: STM32F4, BlackPill Microcontroller Boards


บอร์ดไมโครคอนโทรลเลอร์ STM32: ST NUCLEO#

โดยทั่วไปแล้ว ถ้าหากจะศึกษาเกี่ยวกับการเขียนโปรแกรมไมโครคอนโทรลเลอร์ตระกูล STM32 ของบริษัท STMicroelectronics ก็มีบอร์ดในกลุ่มที่เรียกว่า NUCLEO ให้เลือกใช้งานได้หลายรูปแบบ จำแนกได้เป็น 3 กลุ่มย่อย ตามจำนวนขา I/O ของบอร์ด

  • Nucleo-32
  • Nucleo-64
  • Nucleo-144

บอร์ด NUCLEO มีวงจร ST-Link Programmer / Debugger รวมไว้บนบอร์ดแล้ว ทำให้มีความสะดวกในการใช้งาน เพียงเสียบสาย USB กับคอมพิวเตอร์ของผู้ใช้ ก็สามารถอัปโหลดโปรแกรมหรือไฟล์ .bin ไปยังบอร์ด NUCLEO เนื่องจากบอร์ดจะทำตัวให้มองเห็นเป็น USB Mass Storage (Mbed Drive) และรองรับการอัปโหลดไฟล์โปรแกรมแบบ Drag & Drop วงจร ST-Link ยังทำหน้าที่เป็น USB-to-Serial สำหรับชิปไมโครคอนโทรลเลอร์บนบอร์ดได้อีกด้วย

ข้อสังเกต: บอร์ด NUCLEO รองรับการเขียนโปรแกรมด้วย Arm Mbed OS

ST NUCLEO Boards

รูปภาพ: การเปรียบเทียบบอร์ด ST NUCLEO รุ่นต่าง ๆ (Source: STMicroelectronics)

 

ST NUCLEO Boards

รูปภาพ: ตัวอย่างบอร์ด STM32 NUCLEO-32/64/144 และ STM32F4 DISCOVERY

 

ดังนั้นหากมีงบประมาณเพียงพอและสามารถหาซื้อบอร์ด STM32 NUCLEO ได้ไม่ยาก ก็แนะนำให้ใช้งานบอร์ดประเภทนี้เป็นตัวเลือกแรก

 


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

นอกจากบอร์ดไมโครคอนโทรลเลอร์ของบริษัท STMicroelectronics แล้ว ก็ยังมีตัวเลือกอื่นอีกมากให้เลือกใช้งาน บอร์ดที่มีราคาถูก ก็มักจะถูกผลิตในประเทศจีน

ในเอกสารนี้จะแนะนำบอร์ดไมโครคอนโทรลเลอร์ Mini-STM32F4x1 "BlackPill" ของ WeAct Studio ซึ่งเป็นบริษัทในประเทศจีน

บอร์ดมีให้เลือกสองรุ่น จำแนกตามชิปที่ใช้ ดังนี้

  • STM32F401CCU6 / STM32F401CEU6 Core Board: Arm Cortex-MF4, 84MHz, 256KB Flash, 64KB SRAM
  • STM32F411CEU6 Core Board: Arm Cortex-MF4, 100MHz, 512KB Flash, 128KB SRAM

แต่ละรุ่นก็มีหลายเวอร์ชันของฮาร์ดแวร์ในการปรับปรุงแก้ไข เช่น v2.0 / v2.1 / v3.0 / v3.1 เป็นต้น

รูปภาพ: WeAct BlackPill v2.0 PinOut
(Source: https://github.com/WeActTC/MiniF4-STM32F4x1/)

รูปภาพ: บอร์ด BlackPill (ยังไม่ได้บัดกรีขา Pin Headers) มุมมองด้านบนและด้านล่าง

 

จุดเด่นของบอร์ด BlackPill ได้แก่

  • มีราคาไม่แพง โดยทั่วไปแล้ว ก็มีราคาถูกกว่า บอร์ด ST NUCLEO ที่ใช้ชิป STM32F4
  • ตัวชิปไมโครคอนโทรลเลอร์ รองรับการทำงานแบบ Native USB มีคอนเนกเตอร์แบบ USB Type-C
  • มีขาแบบ Male Pin Headers สองข้างของบอร์ด สามารถเสียบขาลงบนเบรดบอร์ดได้ จึงเหมาะกับการต่อวงจรแบบ Breadboard Prototyping
  • มีเฟิร์มแวร์สำหรับการทำงานของ STM32 USB DFU Bootloader ติดตั้งไว้ในหน่วยความจำ ROM แล้วจากโรงงงาน ดังนั้นจึงรองรับการอัปโหลดไฟล์เฟิร์มแวร์ผ่านทางพอร์ต USB โดยไม่ต้องมีอุปกรณ์เสริมได้ เมื่อเข้าสู่โหมด DFU Bootloader ใช้เพียงสาย USB Type-C และใช้ร่วมกับโปรแกรมอย่างเช่น dfu-util หรือซอฟต์แวร์ STM32CubeProgrammer
  • บอร์ดนี้มีตัวสร้างสัญญาณ Clock จากภายนอก (External Crystal Osc.) ความถี่ 25MHz และความถี่ต่ำ 32.768kHz
  • มีวงจร LED (Active-Low, Blue Color) อยู่บนบอร์ดและต่อกับขา PC_13 และมีวงจรปุ่มกด (KEY / USER_BUTTON) ต่อกับขา PA_0 (แต่ไม่มี Pullup)
  • แม้ว่าบอร์ดนี้ไม่มีวงจร ST-Link Programmer / Debugger อยู่บนบอร์ด (อาจมองว่าเป็นข้อเสีย) ซึ่งแตกต่างจากกรณีของบอร์ด ST NUCLEO แต่มีคอนเนกเตอร์สำหรับเชื่อมต่อแบบ SWD (Serial Wire Debug) ซึ่งใช้เพียงสองขาสัญญาณ SWDIO & SWCLK และใช้เพื่อการอัปโหลดโปรแกรม หรือ ดีบักการทำงานของโปรแกรมในฮาร์ดแวร์ และจะต้องใช้งานร่วมกับอุปกรณ์ USB Debug Probe อย่างเช่น ST-Link/v2 หรือ DAP-Link / CMSIS-DAP เป็นต้น อุปกรณ์ประเภทนี้ที่มีราคาไม่แพง ก็มีให้เลือกใช้งานได้เช่นกัน
  • มี 8-pin IC Socket (SOIC-8 SMD) ด้านล่างของบอร์ด เอาไว้สำหรับบัดกรีไอซีหน่วยความจำประเภท SPI Flash เช่น ไอซี W25Q128F ขนาด 128Mbits ในกรณีที่ต้องการใช้ MicroPython และเพิ่มพื้นที่ในการจัดเก็บไฟล์ใน External Flash
  • ไฟล์ Schmematic สามารถดาวน์โหลดได้จาก https://github.com/WeActStudio/WeActStudio.MiniSTM32F4x1/tree/master/HDK

 

รูปภาพ: BlackPill - Board Layout (Top View)

ตัวอย่างการเชื่อมต่อระหว่างบอร์ด BlackPill และอุปกรณ์ ST-Link/V2 USB Dongle (clone) โดยใช้สายไฟ 4 เส้น และใช้ +3.3V จากอุปกรณ์นี้เพื่อป้อนเป็นแรงดันไฟเลี้ยงให้บอร์ดไมโครคอนโทรลเลอร์ที่ขา VCC

 

STM32 (SWD)  | ST-Link V2
  GND     <----> GND
  SCK     <----> SWCLK
  DIO     <----> SWDIO
  3V3     <----> 3.3V 

ข้อสังเกต: โดยทั่วไปแล้ว บอร์ด STM32 จะสามารถรับแรงดันไฟเลี้ยง +5V (เช่น จากคอนเนกเตอร์ USB หรือขา 5V) และมีวงจรแปลงให้เป็นแรงดันไฟเลี้ยงจาก +5V ให้เป็น +3.3V (อย่าลืมตรวจสอบและทำความเข้าใจแผงวงจร หรือไฟล์ผังวงจรของบอร์ดที่จะนำมาใช้งานด้วย)

 

รูปภาพ: การเชื่อมต่อระหว่างบอร์ด BlackPill และอุปกรณ์ ST-Link/V2 (clone)

 

รูปภาพ: แสดงตำแหน่งขาของคอนเนกเตอร์ที่ตัวอุปกรณ์ ST-Link/V2 (clone)

 

หากเปรียบเทียบกับบอร์ด BluePill หรือ Maple Mini ซึ่งเป็นบอร์ดไมโครคอนโทรลเลอร์ราคาถูกที่ใช้ชิป STM32F103C8T6 (Arm Cortex-M3) ก็อาจกล่าวได้ว่า BlackPill (Arm Cortex-M4F) เป็นตัวเลือกถัดไปที่มีความสามารถของตัวประมวลผลสูงขึ้น (มีความเร็วในการประมวลผล และความจุของหน่วยความจำ SRAM & Flash มากขึ้น)

 

รูปภาพ: BlackPill / Maple Mini / BluePill

 

โดยทั่วไปแล้ว ถ้าเลือกใช้บอร์ด STM32 แบบ Minimal ก็จะต้องมีอุปกรณ์ SWD Programmer / Debugger (เช่น ST-Link/V2 USB Dongle) และโมดูล USB-to-Serial (เช่น ชิป CP210x / CH34x / FT232R / CH552 เป็นต้น) เพื่อรับส่งข้อมูลผ่านทาง Hardware Serial ที่ขา Tx/Rx ของชิปไมโครคอนโทรลเลอร์ แต่ถ้าชิปไมโครคอนโทรลเลอร์รองรับการใช้งาน Native USB ก็อาจไม่จำเป็นต้องใช้อุปกรณ์หรือโมดูล USB-to-Serial

รูปภาพ: บอร์ด BlackPill + อุปกรณ์ ST-Link/V2 (clone) + โมดูล CP2104 (USB-to-Serial)

 


ตัวเลือกสำหรับการเขียนโปรแกรม STM32#

การเขียนโปรแกรมสำหรับบอร์ดไมโครคอนโทรลเลอร์ STM32 (เช่น STM32F4 Series) สำหรับงานด้านระบบสมองกลฝังตัว ก็มีอยู่หลายวิธี ยกตัวอย่างเช่น

 


กล่าวสรุป#

บอร์ดไมโครคอนโทรลเลอร์ STM32 มีให้เลือกหลายรุ่นและหลายแบบ ทั้งของบริษัทผู้ผลิตชิปเอง (STMicroelectronics) และผู้ผลิตรายอื่นที่แตกต่างกันไป เอกสารนี้ได้กล่าวถึง ข้อดีและข้อจำกัดของบอร์ด BlackPill ที่มีชิป STM32F401/411 และมีราคาไม่แพง (หาซื้อได้ในราคาต่ำกว่า 300 THB) เหมาะสำหรับผู้เริ่มต้นและมีงบจำกัด

 


This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Created: 2021-12-05 | Last Updated: 2022-12-01