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