Getting Started STM32F103C Board with Arduino IDE [EP1]

การทดลองนี้เป็นการเรียนรู้การใช้งานบอร์ด STM32F103C8T6 สำหรับเป็นความรู้พื้นฐานนำไปประยุกต์ใช้งานต่างๆ เพิ่มเติม โดยในการทดลองในตอนที่ 1 จะเป็นการติดตั้งบอร์ด STM32F1038T6 มายังโปรแกรม Arduino IDE, การกำหนดใช้งานบอร์ด STM32F1038T6 ในโปรแกรม Arduino IDE และการทดลองอัพโหลดโปรแกรมคำสั่งสำหรับทดสอบการทำงาน ระหว่างโปรแกรม Arduino IDE และบอร์ด STM32F103C8T6 สำหรับเริ่มต้นการใช้งานต่างๆ ต่อไป

รูปที่ 1 ลักษณะของบอร์ด STM32F103C8T6 และตำแหน่งขาใช้งาน [Picture by Ref.4]
Getting Started STM32F103C Board with Arduino IDE
รูปที่ 2 การเชื่อมต่อบอร์ด USB to Serial กับบอร์ด STM32F103C8T6

รูปที่ 1 และรูปที่ 2 แสดงลักษณะของบอร์ด STM32F103C8T6 และตำแหน่งขาใช้งานต่างๆ รวมทั้งฟังก์ชั่นที่เราสามารถใช้งานได้ ส่วนในรูปที่ 2 เป็นการเชื่อมต่อบอร์ด USB to Serial กับบอร์ด STM32F103C8T6 สำหรับโปรแกรมคำสั่ง, การต่อแอลอีดีที่ขา PB12, การต่อสวิตช์ที่ขา PB0 และการต่อตัวต้านทานปรับค่าที่ขา PA0 สำหรับการทดลองในครั้งต่อไป

Getting Started STM32F103C Board with Arduino IDE
รูปที่ 3 การติดตั้ง STM32F103C8T6 ในโปรแกรม Arduino IDE [แบบที่ 1]

https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json

Getting Started STM32F103C Board with Arduino IDE
รูปที่ 4 การกำหนดให้โปรแกรม Arduino IDE อัพเดตบอร์ดควบคุมต่างๆ
Getting Started STM32F103C Board with Arduino IDE
รูปที่ 5 ติดตั้ง Arduino IDE บอร์ดควบคุม Arduino SAMD Boards

รูปที่ 3 ถึงรูปที่ 5 แสดงการอัพเดตบอร์ดควบคุมที่ทำการติดตั้งเพิ่มเติม (แบบที่ 1) ในโปรแกรม Arduino IDE โดยเริ่มจากไปที่เมนู File→Preferences จากนั้นคัดลอกลิงก์ https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json ไปวางที่ช่อง Additional Boards ต่อมาไปที่เมนู Tools→Boards Manager และติดตั้งบอร์ดควบคุม Arduino SAMD Boards

Getting Started STM32F103C Board with Arduino IDE
รูปที่ 6 การติดตั้ง STM32F103C8T6 ในโปรแกรม Arduino IDE [แบบที่ 2]

รูปที่ 6 แสดงการติดตั้งบอร์ด STM32F103C8T6 (แบบที่ 2) ด้วยการดาวน์โหลดไฟล์
Arduino_STM32 [ดาวน์โหลด STM32F103C Board คลิกที่นี่] จากนั้นนำไฟล์ที่ได้ไปวางในโฟลเดอร์ hardware ของโปรแกรม Arduino IDE ที่เราทำการติดตั้งอยู่ และทำตามขั้นตอนในรูปที่ 4 และรูปที่ 5 ตามลำดับ

Getting Started STM32F103C Board with Arduino IDE
รูปที่ 7 การกำหนดค่าต่างๆ ให้กับโปรแกรม Arduino IDE สำหรับใช้งานบอร์ด STM32F103C8T6

ในรูปที่ 7 หลังจากติดตั้งบอร์ด STM32F103C ในโปรแกรมแล้ว จากนั้นจะเป็นการกำหนดค่าต่างๆ ให้กับโปรแกรม Arduino IDE สำหรับใช้งานบอร์ด STM32F103C8T6 โดยแนะนำให้กำหนดค่าเริ่มต้นการใช้งานตามรูปที่ 7 ในกรอบสีแดง สำหรับเริ่มต้นการทดลองใช้บอร์ด STM32F103C8T6

// Test LED Pin PC13

void setup() {  
  pinMode(PC13, OUTPUT);  
}

void loop() {  
  digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(200);              // wait for a second
  digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  delay(200);              // wait for a second
}
Getting Started STM32F103C Board with Arduino IDE
รูปที่ 8 การปรับจั้มเปอร์ไปยังโหมด DFU mode

รูปที่ 8 เป็นการปรับจั้มเปอร์เพื่อกำหนดโหมดใช้งานบอร์ด STM32F103C8T6 สำหรับโปรแกรมผ่านบอร์ด USB to Serial จากนั้นให้ใช้โปรแกรมทดสอบการทำงานที่แสดงข้างบน (Test LED Pin PC13) และทำการอัพโหลดโปรแกรมไปยังบอร์ด STM32F103C8T6 [*** ก่อนการอัพโหลดโปรแกรมจะต้องกดสวิตช์ RESET บนบอร์ด STM32F103C8T6 เพื่อเข้าโหมดโปรแกรม ***]

Getting Started STM32F103C Board with Arduino IDE
รูปที่ 9 แสดงช่วงการอัพโหลดโปรแกรมและข้อความสถานะที่เกิดขึ้น
คลิปวิดีโอแสดงผลการทดลองเมื่ออัพโหลดโปรแกรมเรียบร้อย

สำหรับในรูปที่ 9 แสดงช่วงการอัพโหลดโปรแกรมและข้อความสถานะที่เกิดขึ้นเมื่อกำหนดค่าต่างๆ ของโปรแกรม Arduino IDE ได้ถูกต้อง และสุดท้ายจะเป็นคลิปวิดีโอแสดงผลการทดลองเมื่ออัพโหลดโปรแกรมเรียบร้อย ท้ายนี้กับการเริ่มต้นเรียนรู้บอร์ดควบคุม STM32F103C8T6 ในตอนที่ 1 นี้จะเป็นแนวทางของการทดลองการใช้งานฟังก์ชั่นต่างๆ ในตอนต่อไป

Reference

  1. https://www.st.com/en/microcontrollers-microprocessors/stm32f103.html
  2. https://www.st.com/resource/en/datasheet/stm32f103c8.pdf
  3. https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
  4. https://www.pcb-hero.com/blogs/lickys-column/stm32f103c8t6-blue-pill-development-board
  5. https://forum.arduino.cc/t/wiring-uart-communication-between-arduino-nano-softserial-and-stm32f103c8t6/638799/2
  6. https://reversepcb.com/stm32f103c8t6/
  7. https://www.instructables.com/How-to-Program-STM32F103C8T6-With-ArduinoIDE/