แนะนำหลักการของ Bootloader และวิธีการติดตั้งใช้งาน


การหัดเขียนโปรแกรมควบคุมไมโครคอนโทรเลอรนั้นนักศึกษาจะใช้ภาษา C เป็นหลัก ซึ่งวิธีการโหลดไฟล์ที่ได้จากโปรแกรมภาษา C ลงไมโครคอนโทรเลอร์ มีสองวิธี

  • โหลดโดยใช้ Burner หรือเครื่องอัดโปรแกรมเข้าชิพ – วิธีนี้จะต้องถอดไมโครคอนโทรเลอร์ออกจากวงจร แล้วนำไปเสียบลงในอุปกรณ์พิเศษที่เรียกว่า Burner การที่ต้องถอดเข้าถอดออกทำให้วิธีนี้ไม่สะดวกนักโดยเฉพาะช่วงเวลาที่กำลังเริ่มต้นเรียนรู้การเขียนโปรแกรมซึ่งจะต้องทดลองโหลดโปรแกรมลงไมโครคอนโทรเลอร์ค่อนข้างบ่อย
  • โหลดผ่าน Bootloader – โปรแกรม Bootloader เป็นโปรแกรมขนาดเล็กที่ถูกอัดลงไปในส่วนท้ายของหน่วยความจำแฟลช์บนไมโครคอนโทรเลอร์ (โดยใช้เครื่องอัดฯ เหมือนข้อ 1) โดยโปรแกรมนี้จะทำหน้าที่เป็นตัวกลางรับโปรแกรมจากคอมพิวเตอร์ (ปกติจะทำผ่านทาง USB) และเขียนโปรแกรมดังกล่าวลงหน่วยความจำของไมโครคอนโทรเลอร์ หรือกล่าวอีกอย่างหนึ่งคือ Bootloader ทำให้ไมโครคอนโทรเลอร์สามารถเขียนโปรแกรมลงหน่วยความจำของตัวเองได้ ดังภาพ

bootloader small

(ภาพซ้าย) หน่วยความจำว่างเปล่าแสดงว่าเป็นไมโครคอนโทรเลอร์ที่ไม่เคยถูกใช้หรือถูกล้างข้อมูล
(ภาพกลาง) หน่วยความจำหลังจากที่ใช้ Burner เขียนโปแกรม Bootloader ลงไป
(ภาพขวา) หลังจากติดตั้ง Bootloader แล้ว โปรแกรมอื่นใดๆ สามารถโหลดลงบนหน่วยความจำได้โดยใช้โปรแกรม Firmware Downloader ซึ่งจะส่งข้อมูลของโปรแกรมไปยัง Bootloader ผ่านสาย USB แล้ว Bootloader จะนำข้อมูลที่ได้รับไปเขียนลงหน่วยความอีกครั้ง

 

การติดตั้งและทดสอบ Booloader มีขั้นตอนดังต่อไปนี้

  1. โหลด Bootloader ลงไปบน PIC – ให้ถอด PIC ออกมาแล้วนำไปโหลดโปรแกรมโดยใช้ PIC Burner
    – โหลดไฟล์ bootloader PIC16F886.hex  สำหรับ PIC รุ่น 16F886 (bootloader ของ PIC แต่ละรุ่นจะต่างกันไป)
  2. ทดสอบการทำงานของ Bootloader โดยการลองโหลด HEX ไฟล์ผ่านทาง Firmware Downloader– Hex ไฟล์คือไฟล์ที่เก็บคำสั่งภาษาเครื่องซึ่งเกิดจากการคอมไพล์โปรแกรมภาษา C (ใน PIC-C หลังจาก compiler โปรแกรมผ่านแล้ว .HEX ไฟล์จะถูกสร้างขึ้นในโฟล์เดอร์เดียวกับไฟล์ .C)  การโหลด HEX ไฟล์จะทำโดยใช้โปรแกรม firmware downloader ตามขั้นตอนต่อไปนี้
    1. นำ PIC ไปใส่ในวงจรให้เรียบร้อย
    2. เปิดโปรแกรม Firmware Downloader
    3. เนื่องจากเรายังไม่ได้เริ่มเขียนโปรแกรมภาษา C ดังนั้นในขั้นต้นนี้ให้ลองใช้ไฟล์ HEX ทดสอบต่อไปนี้ไปก่อน
      hello world.hex
    4. เปิดบอร์ดโดยกดปุ่มค้างไว้ ซึ่งจะกระตุ้นให้ Bootloader ทำงาน โดยสังเกตุได้จากไฟ USER LED1 ที่ติดค้าง นี่แสดงว่าบอร์ดพร้อมรับ Firmware ใหม่แล้ว
    5. ในโปรแกรม Firmware Downloader ให้ใส่หมายเลข COM Port ของอุปกรณ์ USB2Serial ลงไป (ดูได้จาก Device Manager ภายใต้หัวข้อชื่อ Ports) แล้ว กดปุ่ม Download
    6. เมื่อโหลดเสร็จแล้วให้เปิดปิดบอร์ดใหม่ และเปิด serial port ขึ้นมา (คลิกที่กล่อง Enable Terminal ในโปรแกรม Firmware Downloader) ซึ่ง นศ. ควรจะเห็นไฟ USER LED กระพริบ และมีข้อความ Hello World พิมพ์ออกมาบนหน้าจอคอมพิวเตอร์

hello world firmware output

ภาพแสดงตัวอย่าง output ที่ได้เมื่อโหลด helloworld.hex สำเร็จ

เพียงเท่านี้บอร์ดของท่านก็พร้อมที่จะรับไฟล์ HEX ใดๆ  ได้