สวัสดีครับ, เมื่อไม่กี่วันที่ผ่านมาก่อนที่จะมีบทความนี้ ร้าน IOXhop ก็ได้นำสินค้า STM32F103C8T6 ARM STM32 Minimum System Development Board Module เข้ามาจำหน่าย ด้วยทางร้าน IOXhop เห็นว่า STM32 มากไปด้วยประสิทธิภาพ และมีทรัพยากรหลายอย่างที่เหนือกว่า AVR (Arduino Uno / Pro mini / Micro / Mega) มาก อีกทั้งในช่วงหลัง ๆ Arduino ก็เริ่มออกบอร์ดที่ใช้คอร์เป็น ARM มากยิ่งขึ้น อย่างบอร์ด Arduino Zero ก็ใช้ ARM แต่ใช้ชิปของค่าย Atmal ถึงแม้ชิปจะเป็นของต่างบริษัทกัน แต่คอร์ภายในเป็นแบบเดียวกัน ทำให้เราสามารถใช้คอมไพล์เลอร์ตัวเดียวกันได้เลย
สนับสนุนบทความดี ๆ แบบนี้ได้ โดยเลือกสั่งซื้อสินค้ากับเรา |
|
STM32F103C8T6 Blue Pill ARM STM32 Minimum System Development Board Module ราคา 139.00 บาท |
ST-Link V2 Mini STM8 STM32 Simulator Download Programmer ราคา 144.00 บาท |
STM8S103F3P6 STM8S STM8 development board ราคา 80.00 บาท |
STM8S105K4T6 Development Board ราคา 123.00 บาท |
STM32F030F4P6 Development Board ARM Cortex-M0 ราคา 107.00 บาท |
|
รู้จักกับชิป STM32F103C8
STM32 เป็นชิปที่สร้างโดย STMicroelectronics ภายในใช้ CPU ARM 32bit Cortex - M3 ซึ่งออกแบบมาเพื่อไมโครคอนโทรลเลอร์โดยเฉพาะ ความถี่ CPU สูงสุด 72MHz มีรอม 64KB และแรม 20KB มี GPIO ให้ใช้ 37 ขา ADC 12bit จำนวน 10 ช่อง รองรับบัส SPI I2C UART UART และ CAN ใช้แรงดันไฟฟ้าได้ตั้งแต่ 2V ถึง 3.6V
STM32 แตกต่างจากชิปตะกูลอื่น ๆ ตรงที่ ไม่มี IDE และคอมไพล์เลอร์เป็นของตัวเอง การใช้งานต้องดาว์นโหลด IDE และคอมไพล์เลอร์จากบริษัทอื่นมาใช้งาน ตัวอย่าง IDE และคอมไพล์เลอร์ที่นิยมใช้งานกัน ได้แก่ IAR Embedded Workbench และ ARMmbed
ในบทความนี้เราจะใช้ Arduino IDE ที่เราคุ้นเคย เป็น IDE และคอมไพล์เลอร์ ใช้งาน STM32 ในสไตล์ Arduino กันครับ
การติดตั้งบอร์ด STM32 ลงใน Arduino IDE
ก่อนอื่น ให้เข้าไปโหลดไฟล์ที่ลิ้ง https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip จากนั้นเข้าไปที่ C:\Program Files[ (x86)]\Arduino\hardware สร้างโฟลเดอร์ชื่อ stm รอไว้ก่อน
เมื่อดาว์นโหลดไฟล์เสร็จแล้ว ก็คลายไฟล์นำไปวางไว้ในโฟลเดอร์ stm
เปิดโปรแกรม Arduino ขึ้นมา กดไปที่เมนู Tool > Board > Boards Manager...
เลื่อนหา Arduino SAMD Boards (32-bits ARM Cortex-M0) คลิกเลือก แล้วกด Install
เมื่อเสร็จแล้ว กด Close ปิดไป
คลิกไปที่ Tool > Board > Generic STM32F103C series
ทดลองกดปุ่ม Verify
หากขึ้นประมาณดังรูป แสดงว่าสามารถคอมไพล์ได้ ไม่มีปัญหา พร้อมสำหรับเขียนโค้ดและอัพโหลดลงบอร์ดแล้ว
ทดสอบอัพโหลดโปรแกรมไฟกระพริบ
การอัพโหลดโค้ดลงบอร์ด STM32F103C8T6 ARM STM32 Minimum System Development Board Module จำเป็นจะต้องใช้เครื่องอัพโหลดที่ชื่อว่า ST-Link V2 หรือใช้การอัพโหลดผ่าน UART
การใช้งานอัพโหลดผ่าน ST-Link V2 สามารถต่อวงจรได้ดังรูปด้านล่างนี้
จากนั้นย้ายจั้มเปอร์สีเหลืองด้านบนให้มาอยู่อีกฝั่ง เข้าสู่โหมดอัพโหลดโปรแกรม กดปุ่ม REST ซัก 1 ครั้ง
เสียบ ST-Link V2 เข้ากับคอมพิวเตอร์ จากนั้นดาว์นโหลดไดร์เวอร์จากลิ้ง http://www.st.com/content/st_com/en/products/embedded-software/development-tool-software/stsw-link009.html มาลงให้เรียบร้อย
จากนั้นให้ตรวจสอบว่าลงไดร์เวอร์สำเร็จหรือไม่ โดยคลิกขวาที่ This PC เลือก Manage
ในช่องด้านขวา เลือก Device Manager เลือก Universal Serial Bus devices แล้วจะพบกับ STM32 STLink แสดงว่าสามารถใช้งานได้แล้ว พร้อมอัพโหลดโปรแกรมต่อไป
กลับไปที่โปรแกรม Arduino ให้คัดลอกโค้ดด้านล่างนี้ลงไปวางไว้
กดไปที่ Tool > Upload method เลือก STLink
กด Upload
หากไม่มีอะไรผิดพลาด จะขึ้น Done uploading. แล้ว LED บนบอร์ดก็จะกระพริบแล้ว
ส่งท้าย
เมื่อ STM32 มาอยู่บน Arduino แล้ว ก็ทำให้เราสามารถใช้งานไลบารี่ส่วนใหญ่ของ Arduino ได้เลย ด้วยความง่าย นอกจากนี้ STM32 มีความถี่ของ CPU ที่สูงมาก ดังนั้นจึงเหมาะสำหรับนำไปใช้งานที่ใช้โค้ดโปรแกรมเยอะ ๆ หากท่านใช้ Arduino Uno R3 แล้วเจอปัญหาพื้นที่ไม่พอ ตัวนี้ถือเป็นทางเลือกที่ดีมากทีเดียวครับ
สุดท้ายนี้ขอขอบคุณทุกท่านที่อ่านมาจนจบ แล้วพบกันในบทความหน้า
~ สวัสดีครับ ~