Thursday, May 7, 2015

Mini Project : ขั้นตอนการ Generate Code และแปลง Code สำหรับใช้งานร่วมกับโปรแกรม EmBlocks

ส่วนที่ 1 ขั้นตอน Generate Project ด้วยโปรแกรม STM32CubeMX

• เปิดโปรแกรม STM32CubeMx และ กดปุ่ม New Project เพื่อสร้าง Project

ภาพที่ 1 สร้างโปรเจคที่จะใช้งาน

• เลือกบอร์ดที่ต้องการใช้งาน

ภาพที่ 2 แสดงหน้าในการเลือกบอร์ดที่ต้องการ

โดยในที่นี้ทางกลุ่มใช้งานบอร์ด STM32F051R8 ได้ทำการเลือก
• Vendor : STMicroelectronics
• Type of Board : Discovery
• MCU Series : STM32F0

ภาพที่ 3 ทำการเลือกบอร์ด STM32F0Discovery

• โปรแกรมก็ทำการ Filters บอร์ดที่ตรงกับที่ต้องการมาให้เลือก 

ภาพที่ 4 เลือกรุ่นบอร์ดที่นำมาใช้งาน(STM32f051R8)

• เลือก STM32F051R8 กดปุ่ม OK ด้านล่างเพื่อให้โปรแกรมสร้าง Project

ภาพที่ 5 แสดงโปรเจคที่สร้างสำเร็จ
• หลังจากสร้างโปรเจคสำเร็จสังเกตุหน้าหน้าต่าง Pinout ทางด้านซ้าย ฬนส่วนี้เป็นส่วน init pin ที่ต้องการนำมาใช้งาน

ภาพที่ 6 แสดงหน้าต่างเพื่อเปิดการใช้งาน Pin ต่างๆบนบอร์ด
• เปิดการใช้งาน I2C และ SPI ตามลำดับ

ภาพที่ 7 เปิดการใช้งาน I2C1 เลือกเป็น I2C

ภาพที่ 8 เปิดใช้งาน SPI1 เลือกเป็นแบบ Full-Duplex
ภาพที่ 9 เปิดใช้งาน UART1 เลือกเป็นแบบ Asynchrnous

• เลือกแทบ Configuration เพื่อตั้งค่าภายใน i2C1 และ SPI1

ภาพที่ 10 แสดงหน้าต่าง Configuration

•ในส่วน Connectivity ทำการเลือก SPI1 และตั้งค่าตามภาพ

ภาพที่ 11 แสดง Pin ที่เกี่ยวข้องกับการเชื่อมต่อกับอุปกรณ์ภายนอก

ภาพที่ 12 แสดงหน้าตั้งค่าภายในของ SPI1 แก้ไข Prescale เป็น 4

ภาพที่ 13 แสดงหน้าตั้งค่า GPIO ของ SPI1 เลือกเป็น Pull-up ทั้งหมด

• ทำการ Generate Code โดยกดปุ่มเฟื่องที่เมนูด้านบน 
  • ทำการใส่ชื่อโปรเจค 
  • เลือก Toolchian/IDE : TrueSTUDIO 
   แล้วกดปุ่ม OK โปรแกรมจะทำการ Generate Project เมื่อเสร็จสิ้น ทำการกดปุ่ม Open 
   Project เพื่อเริ่มใช้งาน


ภาพที่ 14 แสดงปุ่ม Generate Code
ภาพที่ 15 แสดงหน้าต่างการตั้งค่า Generate Code
• หลังจาก Generate Code สำเร็จจะมี Folder ที่สร้างด้วย STM32Cube เพิ่มมาตาม Path ทั้งตั้งค่าไว้

ภาพที่ 16 แสดงโฟล์เดอร์โปรเจคที่สร้าง


ภาพที่ 17 แสดงโฟเดอร์และไฟล์ต่างๆ ภายในโปรเจค
ส่วนที่ 2 ขั้นตอนแปลง Code จาก STM32CubeMx ให้สามารถใช้งานได้บน EmBlocks


• เปิดโปรแกรม CubeMx2EmBlocks กดปุ่ม Select Project Folder เพื่อเลือกโปรเจคที่สร้างจาก STM32CubMX

ภาพที่ 18 แสดงภาพโปรแกรม CubeMX2EmBlocks 

ภาพที่ 19 แสดงหน้าการใช้งาน

ภาพที่ 20 แสดงหน้าเลือกโฟล์เดอร์โปรเจค

ภาพที่ 21 แสดงภาพหลังจากแปลง Code สำเร็จ


• หลังจากแปลง Code จาก STM32CubeMx สำเร็จ จะมีไฟล์ของ EmBlocks เพิ่มเข้ามาภายในโปรเจค


ภาพที่ 22 แสดงไฟล์ที่เพิ่มเข้ามาในโฟล์เดอร์
• ทำการเปิดโปรแกรม EmBlocks เปิดไฟล์ *.ebp ภายในโฟเดอร์โปรเจค หลังจากนั้นเลือกโฟล์เดอร์ Src จากหน้าต่าง Directory ทางซ้าย เปิดไฟล์ main.c เพื่อเริ่มใช้งาน

ภาพที่ 23 แสดงภาพโปรแกรม EmBlocks
ภาพที่ 24 แสดงหน้าใช้งานโปรแกรม EmBlocks
ภาพที่ 25 แสดงขั้นตอนการเปิดไฟล์ *.ebp
ภาพที่ 26 แสดงหน้าเลือกไฟล์ *.ebp
ภาพที่ 27 แสดงหน้าการใช้


Monday, May 4, 2015

How to : STM32F051R8T6


STM32F051R8T6

Features

• STM32F051R8T6 microcontroller featuring 64 KB Flash memory, 8 KB RAM in an LQFP64 package

• On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone ST-LINK/V2 (with SWD connector for programming and debugging)

• Board power supply: through USB bus or from an external 5 V supply voltage

• External application power supply: 3 V and 5 V
• Voltage Range : 2.0 V to 3.6 V

• Four LEDs:

   – LD1 (red) for 3.3 V power on

   – LD2 (red/green) for USB communication

   – LD3 (green) for PC9 output

   – LD4 (blue) for PC8 output

• Two push buttons (user and reset)

• Extension header for all LQFP64 I/Os for quick connection to prototyping board and easy probing

• An additional board is provided which can be connected to the extension connector for even easier prototyping and probing.

• Comprehensive free software in cluding a variety of examples, part of STM32CubeF0 package or STSW-STM32049 for legacy Standard Libraries usage
 4 to 32 MHz Crystal Oscillator
• Internal 8 MHz RC with x6 PLL Option
• Internal 40 kHz RC Oscillator
• Up to 55 Fast I/O
• 5-Channel DMA Controller
• One 12-bit D/A Converter
• Up to 11 timers
• 2 I2C
• 2 USARTs
• 2 SPIs

Board Pin Out


Software ที่ใช้ :
• STM32CubeMX Download here
• Keil uVision4 (MDK4-ARM V4) Download here
• ST-LINK/V2 Download here ***สำหรับ Windows 8 จำเป็นต้องใช้ ST-Link ของ Windows 8***

 ขั้นตอนการใช้งาน แบ่งเป็น 2 ส่วน คือ
• ขั้นตอน Generate Project ด้วยโปรแกรม STM32CubeMX
• ขั้นตอนการเพิ่มโค้ด Blink ด้วยโปรแกรม Keil uVision4

ส่วนที่ 1 ขั้นตอน Generate Project ด้วยโปรแกรม STM32CubeMX
เปิดโปรแกรม STM32CubeMx และ กดปุ่ม New Project เพื่อสร้าง Project

• เลือกบอร์ดที่ต้องการใช้งาน

โดยในที่นี้ทางกลุ่มใช้งานบอร์ด STM32F051R8 ได้ทำการเลือก
• Vendor : STMicroelectronics
• Type of Board : Discovery
• MCU Series : STM32F0

• โปรแกรมก็ทำการ Filters บอร์ดที่ตรงกับที่ต้องการมาให้เลือก 
• เลือก STM32F051R8 กดปุ่ม OK ด้านล่างเพื่อให้โปรแกรมสร้าง Project

• หลังจากสร้าง Project แล้ว จะเห็นภาพตัวอย่าง MCU กับ Pin ที่ใช้งาน ซึ่งตัวโปรแกรมได้ทำการเปิดใช้งาน LED Pin : 8 และ 9 เป็น Output ให้แล้ว

• ทำการ Generate โดยกดปุ่มเฟื่องที่เมนูด้านบน ทำการใส่ชื่อโปรเจค เลือก Toolchian/IDE : MDK-ARM V4 แล้วกดปุ่ม OK โปรแกรมจะทำการ Generate Project เมื่อเสร็จสิ้นแล้วนั้นทำการกดปุ่ม Open Project เพื่อเริ่มใช้งาน

ส่วนที่ 2 ขั้นตอนการเพิ่มโค้ด Blink ด้วยโปรแกรม Keil uVision4
• หลังจากกดปุ่ม Open Project ตัวโปรแกรม Keil uVision4 จะทำการเปิดโปรเจคที่ Generate ไว้ขึ้นมา

• ทำการคลิกโฟล์เดอร์ Application/User ในแถบทางซ้าย ดับเบิ้ลคลิกไฟล์ main.c เพื่อทำเพิ่มโค้ดไฟกระพริบ

• เพิ่มโค้ด

                HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_9); //Toggle the state of pin PC9
                HAL_Delay(100); //delay 100ms

ลงใน main.c ตามภาพ

• ทำการกดปุ่ม Build หรือกดปุ่ม F7 เพื่อตรวจสอบ Path Project และโค้กที่ทำการแก้ไข


• ตรวจสอบ Error ที่แถบ Build Output ด้านล่าง


• หลังจาก Build สำเร็จก็ทำการกดปุ่ม Download เพื่อ Flash code ไปยังบอร์ด STM32

**ปล. จากโค้ดข้างต้นจะทำให้ LED สีเขียวกระพริบ Pin9
แต่จากภาพเป็น LED สีฟ้ากระพริบ Pin8 **