Monday 6 April 2015

เริ่มต้นใช้งานบอร์ด STM32-NUCLEO F401RE


      ในบทความนี้ได้จะเป็นการทดลองใช้บอร์ด STM32-NUCLEO F401RE ในการ toggle LED และสำหรับบทความนี้ผู้ทดลองได้ทดลองบนระบบปฏิบัติการณ์ Windows 8.1 และซอฟต์แวร์ที่ใช้งานมีดังนี้


 สำหรับขั้นตอนเริ่มต้นใช้งานบอร์ด STM32-NUCLEO F401RE ในการใช้งานบอร์ดเพื่อ toggle LED มีขั้นตอนดังนี้
          o   ดาวน์โหลดและติดตั้ง STM32 ST-LINK Utility เพื่อให้ติดต่อสื่อสารกับบอร์ดดังกล่าวผ่านพอร์ต USB ได้
   o   ติดตั้งโปรแกรม STM32CubeMX ซึ่งภายในบทความนี้ได้ใช้งานเวอร์ชัน  4.7.0 เมื่อติดตั้งโปรแกรมเสร็จแล้วให้เปิด โปรแกรมขึ้น แล้วเลือก  New Project

หน้าเริ่มต้นโปรแกรม STM32CubeMX  v 4.7.0

  o  ต่อมาให้เลือกแท็บ Board Selector ,เลือก Type of Board เป็น Nucleo, และเลือก MCU Series เป็น STM32F4 ต่อมาให้แก้ไขในส่วนของ  Peripheral Selection  โดยแก้ไขที่  Led  ให้ช่อง  Nb เป็น  1 แล้วกดเลือกบอร์ด  NUCLEO-F401RE  แล้วกด ok เพื่อสร้าง Project ใหม่

ภาพแสดงขั้นตอนเริ่มต้นการสร้าง  Project

ภาพหน้าต่างของโปรแกรมเมื่อสร้าง  Project สำเร็จ 

  o   ต่อมาจะเป็นกำหนดชื่อ Project ,ไดเรคทอรี่ที่จัดเก็บ และ  Toolchain/IDE ซึ่งจะเลือกเป็น  TrueSTUDIO โดยสามารถเข้าไปตั้งค่าได้ที่  Project -> Setting

หน้าต่างแสดงการกำหนดค่าใน  Project Setting

o   เมื่อกำหนดเสร็จแล้วให้ Generate Code  โดยเลือกที่  Project -> Generate Code  ซึ่งเมื่อ Generate Code  เสร็จแล้วจะได้  Project  ที่มีไดเรคทอรี่ดังภาพด้านล่าง

ภาพแสดงไดเรคทอรี่ใน  Project  ที่สร้างไว้

o   ขั้นตอนถัดมาจะเป็นการเริ่มต้นการใช้โปรแกรม  EmBlocks  ในการพัฒนาและเขียนโค้ดสำหรับบอร์ดนี้ ซึ่งจากโปรเจคที่เราสร้างได้จากโปรแกรม STM32CubeMX จะต้องใช้โปรแกรม CubeMx2EmBlocks  เพื่อ convert CubeMx  ให้ใช้กับโปรแกรม EmBlocks ได้  โดยเมื่อเปิดโปรแกรมขึ้นมาแล้วเลือก โฟลเดอร์ที่มีโปรเจค  cubemx  อยู่ แล้วโปรแกรมจะทำการ  convert  ให้อัตโนมัติ ซึ่งเราจะได้ไฟล์  .ebp ขึ้นมาในโฟลเดอร์โปรเจค
หน้าต่างเริ่มต้นโปรแกรม CubeMx2EmBlocks


หน้าต่างแสดงการเลือกไดเรคทอรี่ในโปรแกรม CubeMx2EmBlocks

ภาพหน้าต่าง เมื่อโปรแกรม CubeMx2EmBlocks ทำการ convert  เสร็จ

ภาพแสดงโฟลเดอร์โปรเจคที่มี่ไฟล์  .ebp เพิ่มขึ้น

   o   หลังจากนั้นให้เปิดโปรแกรม  EmBlocks  ขึ้นมาแล้วเปิดไฟล์ .ebp
หน้าต่างเริ่มของโปรแกรม  EmBlocks 

 ภาพแสดงการเลือกไฟล์  .ebd 

ภาพหน้าต่างโปรแกรม EmBlocks เมื่อมีการเปิดไฟล์โปรเจคเสร็จแล้ว

  o   ทำการเขียนโค้ดในไฟล์ main.c เพื่อให้บอร์ดสามารถ  toggle LED  ได้
ภาพแสดงตัวอย่างการเขียนโค้ดใน  main.c โดยใช้ HAL library แบบใหม่ และไม่ใช้ SPL 

o   ก่อนทำการทำการ  Build Target  จะต้องกำหนดคอมไพล์เลอร์เป็น  ARM GCC Compiler (Emblocks –bare-metal) และชนิดของไฟล์เอาต์พุตให้เป็น  .bin โดยสามารถเข้าไปกำหนดค่าได้ที่ Project > Build option สำหรับการกำหนดชนิดของไฟล์เอาต์พุตให้เป็นไฟล์  .bin  ให้กดเลือกไปที่แท็บ  Pre/post build steps แล้วตั้งค่าที่ Post-build step ให้เป็น  Always และเพิ่มข้อความนี้ในลงช่องว่าง
arm-none-eabi-objcopy -O binary $(TARGET_OUTPUT_DIR)/$(TARGET_OUTPUT_BASENAME).elf $(TARGET_OUTPUT_DIR)/$(TARGET_OUTPUT_BASENAME).bin

ภาพแสดงการเลือกคอมไพล์เลอร์ 

ภาพแสดงการกำหนดชนิดของไฟล์เอาต์พุตให้เป็นไฟล์  .bin

o   ทำการ  Build Target โดยเลือกที่  Project -> Build Target ซึ่งไฟล์ .bin ที่ได้จะถูกเก็บไว้ในไดเรคทอรี่ bin/Debug

ภาพการ  Build Target

ตัวอย่าง  logs  เมื่อทำการ  Build  เสร็จแล้ว

ภาพแดงไดเรคทอรี่ที่จัดเก็บไฟล์ .bin หลัง  Build สำเร็จ

o   ขั้นตอนต่อไปจะเป็นการโปรแกรมลงบอร์ดโดยใช้โปรแกรม  ST-Link  โดยขั้นตอนการทำคือเปิดไฟล์  .bin ขึ้นมา แล้วเลือกไปที่  Target -> Program  แล้วกด  ok

หน้าต่างแรกของโปรแกรม ST-Link


ภาพขั้นตอนการเลือกไฟล์  .bin  ในโปรแกรม St-Link

ภาพหน้าต่างเมื่อมีการเปิดไฟล์  .bin  ขึ้นมา

 ภาพการโปรแกรมลงบอร์ดโดยการเลือกที่  Target -> Program


ภาพหน้าต่าง Program

 ภาพบอกสถานะการโปรแกรมสำเร็จในหน้าต่างโปรแกรม  ST Link


ผลการทำงานของการทดลองใช้งานบอร์ด STM32-NUCLEO F401RE ในการ  Toggle LED



ภาพแสดงการกระพริบของไฟบนบอร์ด STM32-NUCLEO F401RE

ผลการวัดโดยใช้ออสซิลโลสโคป


ภาพผลการวัดโดยใช้ออสซิลโลสโคป ความถี่ที่วัดได้คือ 35.71 Hz และแรงดันที่วัดได้คือ  3.36 V












บทความนี้เป็นส่วนหนึ่งของรายวิชา 010123120 Embedded System Design Lab 
คณะวิศวกรรมศาสตร์ ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์

 มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ

No comments:

Post a Comment