การเริ่มต้นการใช้งานบอร์ด stm32f3 discovery
ก่อนอื่นเรามารู้จักกับบอร์ด stm32f3 discovery กันก่อน บอร์ด stm32f3 discovery เป็นชุดพัฒนา Microcontroller ขนาด 32-bit ของบริษัท ST ในตระกูล STM32 ARM CORTEX-M4 ในบอร์ดจะมีส่วนของ DOWNLOAD พร้อม DEBUG และส่วนของ MCU พร้อมอุปกรณ์ INPUT, OUTPUT ต่างๆบอร์ด stm32f3 discovery มีคุณสมบัติดังนี้
• ส่วนST-LINK/V2 ใช้สำหรับ DOWNLOAD ข้อมูลจาก PORT USB ของคอมพิวเตอร์, ขั้วต่อ SWD สำหรับต่อภายในบอร์ดและต่อใช้งานออกนอกบอร์ด• ส่วนใช้งานเป็น MCU เบอร์ STM32F303VCT6 ขนาด 256KB FLASH, 48KB RAM, LQFP 100 PIN
• ใช้ Power จากขั้วต่อ USB หรือจากไฟ DC ภายนอก 3V หรือ 5V
• มี Gyroscope แบบ 3-axis Digital เบอร์ L3GD20 ขง ST บนบอร์ด
• มี Accelertion SENSOR และ Magnetic Sensor เบอร์ LSM303DLHC ของ ST บนบอร์ด
• 8 LED แสดงสถานะการทำงานของ Gyroscope และ Accelertion ในแบบเข็มทิศอิเล็กทรอนิกส์
• ขั้วต่อใช้งานแบบ USB Mini ต่อกับคอมพิวเตอร์ 1 PORT และขั้วต่อใช้งานจาก MCU เป็นแบบ
USB Mini 1 PORT
• ตัวบอร์ดทำเป็นขั้วต่อแบบ PIN HEADER ต่อใช้งานใต้ PCB ขนาด 25x2 PIN จำนวน 2 ชุด
การเริ่มต้นทดลองการใช้งานบอร์ด stm32f3 discovery ด้วยการทำ Blink LED
การเริ่มต้นการทดลองทำไฟกระพริบหรือ Blink LED นี้จะใช้ LED ที่มีอยู่บนบอร์ดทดลองอุปกรณ์ : บอร์ด stm32f3 discovery, สาย USB TO 5P MINI
ซอฟต์แวร์ที่ใช้งาน : STM32CubeMX, CubeMx2EmBlocks, EmBlocks 2.30, st-link_v2_usbdriver
เริ่มต้นที่การใช้งานโปรแกรม STM32CubeMX เป็นโปรแกรมที่ช่วยในการ Generate C Code ให้อัตโนมัติจากการตั้งค่าการใช้งานต่างๆ บนบอร์ดนั่นเอง โดยมีขั้นตอนการใช้งานดังนี้
1. เปิดโปรแกรม STM32CubeMX จากนั้นเลือก New Project
2. เลือกแถบเมนู Board Selector แล้วเลือกค่าต่างๆ ให้ตรงตามบอร์ดที่ใช้งาน และทำการกำหนดจำนวน pin LED(การทดลองนี้จะกำหนดจำนวน LED เท่ากับ 8 pin) ที่จะใช้งาน หลังจากนั้นกด Ok
6. หลังจากทำการกำหนดค่าต่างๆ เรียบร้อยแล้ว ให้กดที่เมนูรูปเฟือง หรือ เข้าที่เมนู Project แล้วเลือก Generate Code โปรแกรมจะทำการ Generate Code ภาษา C ออกมาให้อัติโนมัติ เมื่อสำเร็จจะขึ้นหน้าต่างดังภาพ ถือว่าสำเร็จในส่วนของการสร้างโปรเจคจากโปรแกรม STM32CubeMX
แหล่งอ้างอิง
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF254044
http://www.ett.co.th/prod2012/STM32F3/STM32F3-DISCOVERY.html
http://www.freertos.org/FreeRTOS-Plus/BSP_Solutions/st/STM32CubeMX.html
http://www.emblocks.org/web/
1. เปิดโปรแกรม STM32CubeMX จากนั้นเลือก New Project
2. เลือกแถบเมนู Board Selector แล้วเลือกค่าต่างๆ ให้ตรงตามบอร์ดที่ใช้งาน และทำการกำหนดจำนวน pin LED(การทดลองนี้จะกำหนดจำนวน LED เท่ากับ 8 pin) ที่จะใช้งาน หลังจากนั้นกด Ok
3. จะได้หน้าต่างดังภาพด้านล่าง ที่แสดงการใช้งานขาต่างๆ บนบอร์ด
4. จากนั้นเลือกไปที่แถบ Clock Configuration สำหรับหน้านี้สามารถเปลี่ยนค่า clock ที่ต้องการใช้ได้ตามต้องการ(การทดลองนี้จะกำหนด SYSCLK และ HCLK เป็น 48 MHz)
5. เข้าที่เมนู Project แล้วเลือก Setting จะมีหน้าต่างปรากฎดังภาพ ทำการกำหนด Project Name, Project Location และเลือก Toolchain/IDE เป็น True Studio
ต่อไปเป็นการใช้งานโปรแกรม CubeMx2EmBlocks ซึ่งเป็นโปรแกรมสำหรับช่วยในการแปลง Project จาก STM32CubeMX ให้ได้เป็น Project ที่สามารถเปิดใช้งานในโปรแกรม EmBlocks ต่อไปได้
1. เริ่มจากการเปิดโปรแกรม CubeMx2EmBlocks ขึ้นมา
2. กดที่ปุ่ม Select Project Folder
3. เลือกโฟลเดอร์โปรเจคที่ได้สร้างไว้จาก โปรแกรม STM32CubeMX ในตอนแรก จากนั้นกด Ok
4. เมื่อสำเร็จจะขึ้นหน้าต่าง Success ปรากฎดังภาพ ถือว่าสำเร็จในส่วนของการแปลงโปรเจค จากนั้นก็จะได้ไฟล์ที่โปรแกรม EmBlocks สามารถเปิดใช้งานได้มา
จากนั้นจะเป็นการใช้งานโปรแกรม EmBlocks ซึ่งเป็นโปรแกรมที่เอาไว้สำหรับเปิดใช้งานโปรเจคที่สร้างขึ้นมาจากขั้นตอนที่กล่าวมาทั้งหมด และยังเป็น Free C/C++ IDE อีกด้วย
1. เริ่มจากการเปิดโปรแกรม EmBlocks แล้วกดที่ Open an existing project
2. ทำการเลือกไฟล์โปรเจค EmBlocks ที่เป็น .ebp จากไฟล์โปรเจที่เราสร้างขึ้น
3. ทำการเข้าไปที่ path ของ src และเปิด main.c จะเห็นว่าจะมีโค้ดภาษา C ที่โปรแกรม
STM32CubeMX ได้ Generate ไว้ให้แล้ว ซึ่งจะมีโค้ดในการเปิดใช้งานพอร์ตต่างๆ การตั้งค่าสัญญาณ CLK และการกำหนดค่าเริ่มต้นต่างๆ
4. ทำการเขียนโค้ดการทำงานตามต้องการที่ While Loop โดยการทดลองนี้เป็นการทำไฟกระพริบ ซึ่งสามารถเขียนโค้ดได้ดังภาพ
5. ตอนนี้โค้ดการทำงานก็พร้อมที่จะ Burn ลง บอร์ด จากนั้นทำการต่อบอร์ด STM32F3 Discovery เข้ากับคอมพิวเตอร์ และทำการลง Dirver ก่อน ซึ่งจะใช้ st-link_v2_usbdriver จากนั้นก็ทำให้คอมพิวเตอร์สามารถเชื่อมต่อกับบอร์ดได้ และเมื่อสำเร็จให้ทำการเข้าเมนู Build แล้วเลือก Build target
6. เมื่อ Build Success ให้เข้าเมนู Debug แล้วเลือก Start/stop Debug Session จะทำการอัพโหลดโปรแกรมการทำงานลงบนบอร์ด เมื่อสำเร็จจะขึ้นหน้าต่าง Terminal มา ให้ทำการกดปุ่ม Reset บนบอร์ด จะทำให้เห็นผลการทดลองเป็นไฟ LED ทั้ง 8 ดวง บนบอร์กระพริบ ถือว่าประสบความสำเร็จในการทำ Blink LED บนบอร์ด STM32F3 Discovery
ผลการทดลอง Blink LED บนบอร์ด STM32F3 Discovery
แหล่งอ้างอิง
http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF254044
http://www.ett.co.th/prod2012/STM32F3/STM32F3-DISCOVERY.html
http://www.freertos.org/FreeRTOS-Plus/BSP_Solutions/st/STM32CubeMX.html
http://www.emblocks.org/web/