วันอังคารที่ 31 ธันวาคม พ.ศ. 2556

RetroBSD บน Max32

RetroBSD บน Max32


        ถ้าจะกล่าวถึง Open-Source Electronics Board ก็คงจะมีหลายตัวเหมือนกันที่น่าเอามาลองเล่น
ลองศึกษา ก่อนที่จะปีใหม่กันจึงอยากขอแนะนำระบบปฏิบัติการและ MCU อีกหนึ่งตัวที่น่าลองเล่นอยู่ไม่น้อย ในบทความนี้จึงขอหยิบยก Board Max32 มาลองเล่นกัน ซึ่งในที่นี้ Board ดังกล่าวจะใช้  PIC32 เบอร์ PIC32MX795 มาเป็นตัวประมวลผล ถ้าเทียบราคากับประสิทธิภาพแล้ว
อาจจะสู้ Raspberry Pi ไม่ได้ แต่ผู้อ่านสามารถทำใช้เองได้โดยมีอุปกรณ์เพียงไม่กี่ชิ้นโดยสามารถดูได้จาก Schematic ที่อยู่ในเว็บซึ่งหาได้ไม่ยาก

        ปกติแล้ว MCU ตระกูล PIC โปรแกรมเมอร์ส่วนมากจะใช้ MPLAB ของ Microchip เขียนโปรแกรมแล้วทำการ Compile ให้เป็น .HEX จากนั้นก็ทำการเขียนลงในหน่วยความจำของ MCU เบอร์นั้นๆ

        ในบทความนี้ผมจะเปลี่ยนแนวลงระบบปฏิบัติการลงใน Max32 ดูบ้าง แต่อย่างไรก็ตามต้องทำการ Flash เพื่อติดตั้ง Hex File ที่เป็น Bootloader ของระบบปฏิบัติการนี้เช่นกัน โดยระบบปฏิบัติการตัวนี้
มีชื่อว่าRetroBSD ครับ

        ก่อนที่จะมาลองเล่นกันต้องเตรียมอุปกรณ์ดังต่อไปนี้ครับ

        1. (chipKIT) Max32 Board ซึ่งมีหน้าตาประมาณนี้ครับ


        2. Arduino Ethernet Shield หน้าตาก็ประมาณนี้ครับ


        3. Micro SD Card ขนาด 1 GB ขึ้นไป

        บอร์ด Max32 ถูกออกแบบมาให้สามารถใช้กับอุปกรณ์ของ Arduino ได้ ดังนั้นสามารถประกอบ Max32 เข้ากับ Ethernet Shield ของ Arduino ได้เลย ซึ่งประกอบเสร็จเรียบร้อยแล้ว จะมีหน้าตาประมาณนี้ครับ


        จากนั้นมาหาไฟเลี้ยงให้กับ Max32 กัน โดยอาจจะใช้เป็น MicroUSB ต่อพ่วงกับคอมพิวเตอร์หรือจะใช้ DC Adapter ประมาณ 5 - 15 V 500 mA ขึ้นไปก็แล้วแต่สะดวกแล้วกันนะครับ
(ในที่นี้ขอใช้เป็น MicroUSB)
       
        เมื่อได้อุปกรณ์ครบทั้งหมดเรียบร้อยแล้ว ประกอบกันเสร็จจะได้หน้าตาประมาณนี้ครับ

        คราวนี้เราจะมาทำการลงระบบปฏิบัติการให้กับ Max32 กัน โดยจะแยกออกเป็น 3 ระบบปฏิบัติการเช่นเคย ดังนี้ครับ

สำหรับระบบปฏิบัติการ Windows

        หลังจากประกอบบอร์ด Max32 กับ Ethernet Shield เรียบร้อยแล้ว ก็ใช้สาย Mini USB ต่อเข้ากับบอร์ดเพื่อเป็นไฟเลี้ยง แต่ Computer ของเรายังไม่รู้จักกับ Max32 ซึ่งถ้าหากว่าเข้าไปที่
Device Manager ก็จะแสดงรูปดังนี้ครับ


         เราจะทำการติดตั้ง Driver ให้กับ Max32 นี้โดยการโหลด Driver
จากเว็บ http://www.ftdichip.com/Drivers/VCP.htm  ในที่นี้ผู้เขียนใช้ Windows 7 (32 bit) จึงดาวน์โหลด version 2.08.28 จากนั้นให้ทำการแยกไฟล์ zip ออกมา แล้วคลิกที่ Update Driver


       จากนั้นเลือก Browse my computer for device software ตามที่แสดงในรูปครับ


        จากนั้นจะปรากฏหน้าต่างค้นหา Driver ให้คลิกที่ Browse แล้วเลือก Folder ที่แยกไฟล์ไว้ในข้างต้น


       คลิกที่ปุ่ม Next จากนั้นระบบจะทำการติดตั้ง Driver ของ FTDI ที่เหมาะสมที่สุดให้ จากนั้นคลิก Close เพื่อปิดหน้าต่าง



       จากนั้นจะขึ้นอุปกรณ์ใหม่ซึ่งเป็น USB Serial Port แทน ในเครื่องของผู้เขียนจะเป็น USB Serial Port (COM7) ดังที่แสดงในรูปครับ


         เมื่อติดต่อกับ Max32 ได้แล้ว ต่อไปเราจะทำการติดตั้ง Bootloader ให้กับ Max32 กัน เพื่อเป็นตัว Loader ให้กับระบบปฏิบัติการ RetroBSD โดยดาวน์โหลดไฟล์ตามลิงค์นี้เลยครับ

http://code.google.com/p/retrobsd/downloads/detail?name=retrobsd-max32-r511.zip

        หลังจากได้ไฟล์มาเรียบร้อยแล้วให้ทำการแยกไฟล์ลงใน Folder ที่ต้องการ ในที่นี้ขอลงไว้ที่หน้าจอ Desktop แล้วก็พักเอาไว้ก่อน

         จากนั้นเราจะมาติดตั้งโปรแกรมที่ใช้ในการ Flash Hex File ลงใน Max32 กันต่อ ซึ่งโปรแกรมนี้มีชื่อว่า Avrdude โดยสามารถดาวโหลดได้ที่ http://sourceforge.net/projects/winavr/?source=dlp
และทำการติดตั้งในเครื่องโดย double click ที่โปรแกรมที่โหลดมา แล้วทำตามขั้นตอนดังนี้เลยครับ

          1. เลือกภาษาให้กับตัวโปรแกรมแล้วก็คลิก OK
          2. จะปรากฏหน้าจอ Welcome ดังรูปด้านล่าง ให้คลิก Next เพื่อดำเนินการต่อไป


            3. จากนั้นจะแสดงหน้า License Agreement ให้คลิก I Agree เพื่อรับทราบลิขสิทธิ์


            4. เมื่อยอมรับเสร็จแล้วจะขึ้นหน้าจอเพื่อให้เลือก Location ที่จะลงโปรแกรมดังรูป


            5. ในที่นี้จะลงไว้ที่ C:\WinAVR จากนั้นคลิก Next เพื่อเข้าสู่หน้าจอเลือกส่วนประกอบโปรแกรม


            6. จากนั้นก็ทำการกดปุ่ม Install เพื่อติดตั้งโปรแกรม จากนั้นระบบจะทำการติดตั้งสำเร็จ โดยจะมีหน้าจอดังรูป จากนั้นให้กด Finish เพื่อปิดหน้าต่างการติดตั้งไป


        เมื่อทำการติดตั้งเสร็จเรียบร้อยแล้ว WinAVR จะยังไม่สามารถใช้งานกับ PIC32 ได้เลย เพราะว่าโปรแกรมได้ออกแบบมาเพื่อใช้งานกับ MCU ตระกูล AVR โดยเฉพาะ จึงต้องมีไฟล์ avrdude.conf ที่สามารถใช้งานกับ PIC32 ได้โดยทำการ Download ไฟล์ดังกล่าวได้จาก link ด้านล่าง

http://pic32-examples.googlecode.com/svn-history/r33/trunk/showroom/retro_bsd/avrdude/avrdude.conf 

        ให้บันทึกไฟล์ avrdude.conf นี้ไว้ใน C:\WinAVR\bin\avrdude.conf โดยทำการแทนที่ไฟล์เดิม

        หลังจากเสร็จขั้นตอนดังกล่าว จากนั้นจะเริ่มการ Flash Bootloader ให้กับ Max32 โดยใช้คำสั่ง avrdude ผ่าน Console มีขั้นตอนดังนี้ครับ

        เข้าไปยัง Folder ที่แยกไฟล์ไว้ด้วยคำสั่ง


        จากนั้นใช้คำสั่ง avrdude ทำการ Flash ไฟล์ unix.hex ลงใน Max32 โดยพิมพ์คำสั่งดังนี้



        เมื่อเสร็จขั้นตอนการ Flash Bootloader จะแสดงหน้าจอดังนี้


        เมื่อเสร็จขั้นตอน Bootloader เรียบร้อยแล้ว ต่อไปจะทำการติดตั้ง File System ให้กับ Max32 กัน
ซึ่งในที่นี้อาจจะใช้ SD Card ระดับเป็น MB ก็ได้ครับ เพราะว่าไฟล์มีนิดเดียว ในที่นี้ขอใช้ 8GB
โดยทำตามขั้นตอนดังนี้เลยครับ

        เปิดโปรแกรม Win32Diskimager (วิธีการติดตั้งดูในบทความแรก) จากนั้นเลือกโฟล์เดอร์สีน้ำเงิน เพื่อทำการ Browse ไฟล์ filesys.img ดังแสดงในรูป


         จากนั้นคลิกที่ Write เพื่อทำการเขียนไฟล์ลงใน SD Card ซึ่งจะฟ้องข้อความขี้นมาดังนี้


          คลิกที่ Yes จากนั้นระบบจะทำการ format และสามารถลงได้ และเมื่อข้อความเสร็จแล้วจะมีหน้าตาแบบนี้ช่วยได้หรือเปล่า
          เมื่อเสร็จขั้นตอนดังกล่าวก็นำ SD Card ไปเสียบในช่อง Ethernet จากนั้นก็เสียบ USB เพื่อจ่ายไฟให้กับ Max32 และสื่อสารกับ Max32 ด้วย Putty โดยสามารถดาวน์โหลดที่ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
จากนั้นรันโปรแกรม Putty เลือกการสื่อสารผ่านทาง Serial COM7 และตั้ง Speed ที่ 11520 (buad rate) ตามรูปด้านล่างเลยครับ


         หลังจาก Connect ผ่านทาง Serial Port ระบบปฏิบัติการก็จะทำงาน โดยใส่ Login User เป็น root รหัสผ่านให้ enter ผ่านไป จากนั้นก็จะได้หน้าตาประมาณนี้ครับ


       
        เมื่อถึงขั้นตอนนี้แล้ว ก็จะสามารถใช้คำสั่งของ Linux ได้เหมือนระบบปฏิบัติการ Linux ทั่วไป
สำหรับคนที่ชอบระบบปฏิบัติการในอุปกรณ์ที่มีหน่วยความจำน้อยๆ เจ้า RetroBSD นี้ก็ถือว่าเป็นระบบปฏิบัติการที่น่าลองใช้อยู่ไม่น้อยเหมือนกัน
        ใครมีโปรเจคที่น่าสนใจก็สามารถแชร์ความรู้กันทาง gtalk หรือทางเมลล์ได้นะครับ
olekhanchai@gmail.com หรือสนใจอุปกรณ์สามารถเข้าสั่งซื้อได้ในเว็บ http://www.hobbyembshop.biz หรือสินค้าโปรโมชั่นที่ https://www.facebook.com/hobbyembedded
        สุดท้ายนี้ขอให้สนุกสนานกับการเคาท์ดาวน์ปีใหม่นะครับ สิ่งไหนที่ไม่ดีก็ขอให้ผ่านพ้นไปกับท้ายปี และขอให้มีสิ่งดีๆเข้ามาในปีใหม่นะครับ แล้วพบกันใหม่ปีหน้าครับ

อ้างอิง

http://www.ladyada.net/learn/avr/setup-win.html
http://retrobsd.org