[ บทความ : แนะนำบอร์ดควบคุม ] |
ก่อนที่เราจะมาเริ่มกล่าวกันถึงบทความเรื่องแนะนำบอร์ดควบคุม ... ผมขอเกริ่นเอาไว้ ณ ที่นี้เลยนะครับว่า บอร์ดต่างๆ ที่ผมกล่าว ถึงในบทความของผมนั้น เป็นบอร์ดควบคุมที่ผมซื้อมาทดลองด้วยเงินของผมเอง ... มีบ้างที่มีรุ่นพี่ให้ยืม [ มีเงินไม่มากพอจะซื้อทุกอย่างได้ ... เลยต้องยืมเขามาบ้าง ] ส่วนเนื้อหาบทความนี้เป็นเพียงความคิดเห็นส่วนตัวของผมเท่านั้นนะครับ ดีหรือไม่ดีเราต้องดูจากความต้องการ ของผู้อ่านเองด้วยนะครับ ...
AVR เป็นไมโครคอนโทรลเลอร์แบบRISC จากบริษัท Atmel ซึ่งประสิทธิภาพในการใช้งานนั้นค่อนข้างดีเลยทีเดียว เป็นชิพที่สามารถโปรแกรมได้เลยจากวงจรบนบอร์ด ไม่ต้องหาอุปกรณ์สำหรับเขียนโปรแกมเพิ่มเติม ในตัวชิพนั้นมีการออกแบบคล้ายกับ MCS-51 แต่มีทั้ง EEPROM และ Flash (8KB) ในตัว นอกจากนี้ยังเพิ่มส่วนของ A/D Convertor อีก 8 ช่องสัญญาณ (เป็น A/D Convertor แบบ 10 บิต) เรียกได้ว่าตัวเดียวครบเลยก็ว่าได้ครับ (ที่ผมมีอยู่เป็น AVR Version 1 และ Version 2) ...
สถานะภาพของบอร์ดตอนนี้ยังไม่ได้ศึกษาต่อเลยครับ เลยไม่สามารถวิจารณ์อะไรได้มากนัก (ตอนนี้วุ่นกับ Z80/68HC11 เป็น เสียส่วนมากครับ)
รูปด้านซ้ายเป็น ET-AVR V1 ส่วนทางขวาเป็น ET-AVR V2
Z-80 เป็นไมโครโปรเซสเซอร์ 8 บิต ที่คลาสสิคมากๆ ครับ เรียนรู้ได้ง่าย และเหมาะกับการศึกษาการทำงานของไมโครโปรเซสเซอร์ ที่ผมใช้ศึกษาเป็น ET-BOARD Version 3.5 (ในรูปด้านซ้ายเป็น Version 3.5 R1 ซึ่งใหม่กว่าที่ผมใช้ครับ) กับ ET-BOARD Version 4 (รุ่นนี้สามารถเขียนโปรแกรมภาษาแอสเซมบลีได้โดยตรงจากแป้นพิมพ์ ซึ่งก็สะดวกดีครับ) ปัจจุบันบอร์ด Version 3.5 ของผมเดี้ยงไปแล้ว เลยเหลือใช้งานเป็น ET-BOARD Version 4 กับ ET-BOARD Version 6 (บอร์ดรุ่นนี้มีความสามารถมากกว่า ET-BOARD ทั่วไปตรงที่ว่า รวมไมโครโปรเซสเซอร์ Z80 กับไมโครคอนโทรลเลอร์ MCS-51 เอาไว้ในบอร์ดเดียวกัน ทำให้ลดค่าใช้จ่ายในการซื้อบอร์ดมาทดลองได้เป็นอย่างดี) การทำงานโดยทั่วไปก็เรียกได้ว่าเขียนโปรแกรมง่ายดี แต่ว่าความสามารถในระดับบิตไม่ดีนัก ถ้าต้องการพอร์ต I/O ก็จะต้องใช้ผ่าน 8255 หรือถ้าเปลี่ยนไปใช้ Z180 ก็ได้ เพราะ Z180 รองรับคำสั่งของ Z80 ได้ทั้งหมด แต่เพิ่ม Timer/Counter และพอร์ตสื่อสารอนุกรมเอาไว้ให้เราใช้ได้เลย ทำให้เขียนโปรแกรมติดต่อกับคอมพิวเตอร์ผ่านทาง RS232 ง่ายและสะดวกยิ่งขึ้น (แถมความเร็วและการอ้างหน่วยความจำนั้นสูงกว่า Z80 เลยทีเดียว) ระบบหน่วยความจำของ Z80 แบ่งออกเป็นส่วนของข้อมูล/โปรแกรม กับส่วนของพอร์ต ส่วนข้อมูล/โปรแกรมนั้นสามารถอ้างอิงได้สูงสุด 64KB และส่วนของพอร์ตสามารถอ้างอิงได้สูงสุด 256 ตำแหน่ง
รูปด้านซ้ายเป็น ET-BOARD V3.5 R1 และทางขวาเป็น ET-BOARD V4
รูปบอร์ดควบคุม jr-z180 (ขอขอบคุณ อ.เที่ยง เหมียดไธสง สำหรับบอร์ดทดลองครับ)
... ล่าสุดผมก็ได้บอร์ด ET-BOARD V5.0 จาก อ.เที่ยง เหมียดไธสง (เจ้าเดิม) ให้ผมมาทดลองเล่น ... เท่าที่นับๆดู ผมมีบอร์ดหลายตัว แต่ไม่ว่างจะเล่นเลย ... หน้าตา ของ ET-BOARD V5.0 เป็นดังนี้ครับ ... ข้อดีคงเป็นที่ เราสามารถเขียนโปรแกรมได้โดยตรงจากแป้นพิมพ์ บวกกับหน่วยความจำที่มากกว่า Et-BOAR V3.5/V4.0 เพราะใช้ CPU เป็น Z180 ที่มีประสิทธิภาพในการทำงานที่สูงกว่า ... ดังที่ได้กล่าวเอาไว้แล้ว ... ส่วนใครที่รอบทความ Z80 อยู่ก็รออีกสักระยะนะครับ ... ยังไม่ว่างพิมพ์เป็นบทความเลยครับ เตรียมตัวอย่างเอาไว้เยอะมาก ... และกำลังศึกษาเรื่องการเขียน compiler เผื่อจะได้เขียน C compiler สำหรับ Z80/Z180 เป็นของ ตัวเองบ้าง ยังไงถ้าทำได้สำเร็จ ก็คงมี C compiler ที่แจกให้ใช้ได้ฟรี กันล่ะครับ ...
รูปบอร์ด ET-BOARD V5.0 (ขอขอบคุณ อ.เที่ยง เหมียดไธสง สำหรับบอร์ดทดลองครับ)
MCS-51 เป็นไมโครคอนโทรลเลอร์ที่มีใช้กันนานพอสมควร แต่ประสิทธิภาพ และแนวโน้มในการการใช้งานยังคงมีให้เลือกใช้กันอีกนาน คุณสมบัติของ MCS-51 แบบคร่าวๆ คือ เป็นไมโครคอนโทรลเลอร์ 8 บิตที่สามารถอ้างอิงหน่วยความจำภายนอกแบบโปรแกรมได้ 64 KB และแบบข้อมูลได้อีก 64KB มีหน่วยความจำ RAM ภายในตัวอีกอย่างน้อย 128 ไบต์ (มากหรือน้อยนั้นแล้วแต่รุ่นของ MCS-51 ที่ผลิตออกมา) มีส่วนของ Timer/Counter, พอร์ตแบบสองทิศทาง (สามารถควบคุมได้ทั้งแบบไบต์และระดับบิต) และพอร์ตสื่อสารอนุกรมให้ใช้งานได้เลย (ในบางรุ่นจะมี A/D Convertor ให้ใช้อีกด้วย) จากความสามารถที่มากมายของ MCS-51 นี่เอง ทำให้ผมมีบอร์ดควบคุมประเภทนี้ค่อยข้างหลายตัว เท่าที่ลองใช้ (มีบอร์ดที่ทำเองเหมือนกันครับ แต่โดยมากออกแบบให้ใช้เป็นงานๆ คือมักไม่ได้เผื่อสำหรับการติดต่อกับอุปกรณ์ภายนอกสักเท่าไร ) ก็ได้แก่
ET-SB31 V1/V2สองบอร์ดนี้เรียกได้ว่าถ้ามีไดว้ก็คุ้มเลยทีเดียว ราคาไม่แพง , ต่อเข้ากับ LCD ได้เลย (ใน V1 สนับสนุนแต่ LCD ตัวอักษร แต่ V2 สนับสนุนทั้ง LCD แบบตัวอักษรและกราฟิกส์) และมีอุปกรณ์สนับสนุนจาก 8255 อีก 1 พอร์ต (ใน V2 มีการออกแบบให้รองรับกับชิพ WatchDOG กับ A/D Convertor LTC1298 อีกด้วย) (ตัวอย่างโปรแกรมและวงจรของ CP-SB31v2 สามารถดาวน์โหลดได้จาก ETT) ...
Sila V3155 บอร์ดรุ่นนี้มีการขยายหน่วยความจำภายนอก สามารถเลือกได้ว่าจะใช้ เป็น ROM 8KB หรือ 32 KB และยังมีพอร์ตจาก 8255 ให้ใช้งานอีกด้วย (บอร์ดนี้จะไม่มีส่วนจ่ายไฟ 5 Volt ให้ เราจะต้องทำตัวแปลงไฟเอาเอง) นอกจากนี้ บอร์ดยังรองรับการใช้ไมโครคอนโทรลเลอร์ที่เป็น Single chip ด้วยครับ คือ มี jumper สำหรับเลือกได้ว่า จะให้ทำงานตาม โปรแกรมที่เขียนในชิพ หรือ ทำงานจาก ROM ภายนอกชิพ ... ผมเองก็ชอบเอา AT89S8252 มาใช้แทน 8031 เพราะเมื่อเอา AT89S8252 มาใช้ ผมก็สามารถใช้หน่วยความจำภายนอกเป็น Data Memory สำหรับเก็บข้อมูลได้ถึง 32K แถมมี 8255 ให้เอาไว้ควบคุมงานภายนอกอีก 3 พอร์ตอีกด้วย รายละเอียดของบอร์ดนั้นดูได้จากโฮมเพจของศิลาครับ [ GO Sila ]
CP-S8252 ซึ่งข้อดีของบอร์ดคือเป็นบอร์ดที่เป็น Single Chip สามารถโหลดโปรแกรมจากเครื่องคอมพิวเตอร์ส่วนบุคคลไปเก็บเอาไว้ที่บอร์ดได้เลย ผ่านทางพอร์ตขนาน โดยในตัวชิพ จะมีหน่วยความจำโปรแกรมให้เราใช้งานได้ 8KB (สามารถลบเพื่อเขียนใหม่ได้กว่า 1,000 ครั้ง) บวกกับมีหน่วยความจำ แบบ EEPROM ให้เราใช้งานได้อีก 2KB (EEPROM จะช้าเวลาที่เราเขียน แต่เวลาเรียกใช้นั้นมีความเร็วเท่าๆกับ RAM) และเนื่องจากบอร์ดรุ่นนี้เป็นแบบชิพเดี่ยวไม่ได้ต่อหน่วยความจำภายนอก จึงทำให้มีพอร์ตของ MCS-51 เหลือไว้ใช้งานอีก 3 พอร์ต ซึ่งมากพอสำหรับงานระดับเล็กถึงระดับกลาง นอกจากนี้บนตัวบอร์ดทาง ETT ได้ออกแบบให้รองรับกับอุปกรณ์ เสริม ไม่ว่าจะเป็น RS422/RS485, EEPROM, RTC และ A/D Convertor เรียกได้ว่าบอร์ดนี้เผื่อทางเลือกให้เราใช้งาน มากมายเลยทีเดียว ... (โปรแกรมดาวน์โหลดลงตัวชิพของบอร์ด CP-S8252 สามารถดาวน์โหลดได้จาก ETT) ...
MTOOL-7 ของ Sila เป็นบอร์ดที่ครบทางด้านอุปกรณ์ และ มีความสามารถเสริมสำหรับช่วยงานทดลอง ไม่ว่าจะเป็นโปรแกรมตรวจสอบการทำงานของบอร์ดขยายต่างๆ ของศิลา, ตัวจำลอง Terminal , ระบบ Remote Debugger ที่ตัว Debugger สามารถเขียนโปรแกรมภาษาแอสเซมบลี ได้เลยจากตัวมันเอง, นับสัญญาณ, ตั้งเวลาการทำงาน , ลอจิกโพรบ ฯลฯ เรียกได้ว่าสมบูรณ์มากเลยทีเดียวครับ แต่อย่างไรก็ตามถ้าบอร์ดนี้สามารถเขียนโปรแกรม จากตัวบอร์ดได้เลยจะสะดวกมาก (ก็มีแป้นพิมพ์เหมือนคอมพิวเตอร์เลยนี่นา) อีกจุดหนึ่งที่ต้องระวังเมื่อใช้บอร์ดรุ่นนี้ ก็คือ WatchDOG Timer ครับ เราต้องคอยไปกระตุ้นมันตลอดเวลา เพราะบอร์ดไม่ได้ออกแบบให้สามารถยกเลิก การทำงานของ WatchDOG Timer ได้ แต่เมื่อเทียบกับข้อดีต่างๆ แล้ว บอร์ดนี้ก็ยังเรียกได้ว่าเยี่ยมครับ ... รายละเอียดของบอร์ดนั้นดูได้จากโฮมเพจของศิลาครับ [ GO Sila ]
บอร์ดตัวสุดท้ายเป็น DnRx051 เป็นบอร์ดทดลองที่ผมใช้ทดลองงานต่างๆ ตัวบอร์ดเป็นแบบชิพเดี่ยว เลือกใช้ AT89C2051/AT89C4051 เป็นชิพประจำบอร์ด ข้อดีของบอร์ดนี้ก็คงเป็นเรื่อง ขนาด ของบอร์ดนั้นเล็ก แต่ต้องมีอุปกรณ์สำหรับลบ/เขียนชิพด้วยนะครับ .... รายละเอียดของบอร์ดหาได้จากบทความนี้เลยครับ [ GO DnRx051 ]
ตอนนี้บอร์ดที่ผมเหลือเอาไว้ใช้งานก็จะเป็น V3155 (สำหรับควบคุมและตัวเวลาเปิดปิดไฟที่บ้าน) กับ MTOOL-7 สำหรับ ทดลองการทำงานต่างๆ [ บอร์ดนี้ผมชอบมากๆ ครับ แต่ไม่ค่อยกล้าเอาออกมาใช้งานทดลองครับ ] ส่วนบอร์ดรุ่นอื่นผมได้ยกให้ทางชุมนุม uRoboTiX (ชุมนุมทาด้านหุ่นยนต์) ไปศึกษาต่อ เพื่อ เพิ่มพูนความรู้และประสบการณ์ทางด้านซอฟท์แวร์กับฮาร์ดแวร์ .... ประกอบกับได้บอร์ด ET-BOARD V6 ที่เป็นทั้ง Z80/MCS-51 จาก ETT ผมเลยใช้บอร์ดนี้สำหรับการทำงานเป็นเสียส่วนใหญ่ .... ตอนนี้ผมได้นำไลบรารีภาษาซี ที่ผมเขียนเพื่อใช้กับบอร์ด MCS-51 มาให้ download กันแล้วนะครับ (ใช้กับ Micro-C 51) ซึ่งไลบรารีจะสนับสนุน บอร์ดที่ผมมีใช้ หรือทดลองเท่านั้นนะครับ ส่วนบอร์ดอื่นๆ ต้องอาศัยผู้อ่านทดลองเพิ่มเติมเอาเองครับ
ด้านซ้ายเป็น ET-SB31 V1 ทางด้านขวาเป็น Sila V3155 [รูปจาก Sila]
ด้านซ้ายเป็นบอร์ด CP-SB8252 ของ ETTและทางขวาเป็น Sila MTOOL-7 V2 [รูปจาก Sila]
รูปบอร์ด DnRx051
68HC11 เป็นไมโครคอนโทรลเลอร์อีกเช่นกัน ( ผมชอบ Motorola มากครับ แต่ไม่รู้ยังไง ไม่มีโอกาสเขียนโปรแกรมกับชิพรุ่นนี้เท่าไหร่ ) ทำงานแบบ 8 บิต พร้อมทั้ง มีความสามารถครบในตัว ไม่ว่าจะเป็น SCI, Timer/Counter, A/D Convertor ส่วนรายละเอียดที่มากกว่านี้จะปรับปรุง เพิ่มเติมในตอนต่อไปครับ... (แปะโป้งเอาไว้ก่อน) ... ส่วนใครที่อยากทำบอร์ด 68HC11 มาใช้งานเอง สามารถหาข้อมูลได้จากโฮมเพจนี้เลยครับ http://apl1.sci.kmitl.ac.th ...
บอร์ดที่แสดงเป็น CP-68HC11 V2 ของETT
BASIC Stamp (SB-BS2SX) เป็นไมโครคอนโทรลเลอร์ตระกูล PIC ที่ถูกบันทึกตัวแปลภาษาเบสิกเอาไว้ ซึ่งทำให้การเขียนโปรแกรมควบคุมนั้นสะดวกกว่าเดิม (ไม่ต้องใช้ภาษาแอสเซมบลี แต่ใช้ภาษาเบสิกในการเขียน) เรียกได้ว่าง่ายในการเขียนโปรแกรมสุดๆ ครับ แต่ว่าพอร์ตที่เหลือให้เราใช้งานนั้นมีเพียง 16 บิตเท่านั้น แต่ถ้าเราออกแบบบอร์ดเสริมการทำงานก็จะทำให้ประสิทธิภาพการทำงานของ BASIC Stamp สูงขึ้นมากเลยทีเดียว ... ตัวนี้ซื้อมายังไม่ค่อยได้เล่นมากนักครับ โดยมากเอามาควบคุม Servo เพื่อทดลอง ควบคุมหุ่นยนต์ Tracker Line ครับ ... เหมาะมากกับงานร้อนๆ ครับ ...
ในรูปเป็นบอร์ด CP-BS2SX ของ ETT
PLC-1 เป็นบอร์ดสำหรับเขียนโปรแกรมในระบบ PLC ผมเองยังไม่ค่อยได้เล่นนัก แต่เท่าที่เคยทดสอบดู ก็เรียกได้ว่าง่ายดี สำหรับ งานควบคุมอัตโนมัติ ไม่ต้องศึกษาภาษาของไมโครโปรเซสเซอร์ เพราะ ภาษาของ PLC นั้น เป็นภาษาที่ออกแบบมาอย่างมาตรฐาน แต่ก่อนอื่นต้องขอขอบคุณ อ.เที่ยง เหมียดไธสง (โปรแกรมวิชา อิเล็กทรอนิกส์ สถาบันราชภัฏเพฃรบุรี) ที่กรุณาให้บอร์ดนี้ผมมาลองเล่น เหมือนเดิมครับ
ในรูปเป็นบอร์ด PLC-1 ของ ATR
ปิดท้าย เป็นรูปของบอร์ด ET-BOARD V6 ครับ ที่ ETT ให้ผมทดสอบใช้งานครับ ... ส่วนถ้าใครอยากให้ผมปรับปรุงไลบรารีให้รองรับบอร์ดที่ท่านออกแบบไว้ ก็สามารถบอกผมได้นะครับ ... เพียงแค่บอกตำแหน่งของ Address หน่วยความจำ ... address ของพอร์ต เท่านั้นแหละครับ ผมจะปรับเปลี่ยนไลบรารี Munc5x ให้ครับ ... เมื่อผม update ให้แล้ว ผมจะส่งไลบรารีให้ท่านนำไป ทดลองใช้งาน เพื่อตรวจสอบว่า ใช้งานได้ไหม ถ้าจะให้แก้ไขอะไรก็บอกกันได้ครับ ... ผมอยากเป็นเวทีเปิดสำหรับ ทุกๆ คนครับ
บอร์ดขยายการทำงานของบอร์ดควบคุมระบบ
- .... ขอขอบคุณ อ.เที่ยง เหมียดไธสง (เจ้าของบอร์ด 3 ตัวนี้) เอาไว้ด้วยครับ ...
Controller board (ET-SSRAC) บอร์ดนี้มีหน้าที่สำหรับควบคุมระบบไฟฟ้า 220 Volt (AC) ซึ่งสามารถควบคุมจากตัวบอร์ดได้สูงสุด 8 จุด และทนกระแส ได้สูงสุด 6 AMP ซึ่งมากพอสำหรับประยุกต์ใช้งานทั่วไป (ตอนนี้ใช้ร่วมกับบอร์ดควบคุมเพื่อตั้งเวลาเปิดปิดไฟฟ้าอัตโนมัติ ...)
บอร์ดที่แสดงเป็น ET-SSRAC ของ ETT
Controller board (ET-PC8255) เป็นบอร์ดที่ใช้เสียบบนสล็อต ISA ของเครื่องคอมพิวเตอร์ส่วนบุคคล (PC : Personal Computer) หรือไมโครคอมพิวเตอร์ ... ข้อดีของบอร์ดก็คือ ทำให้เรามีพอร์ตให้ใช้งานอีก 9 พอร์ต จาก ไอซี 8255 จำนวน 3 ตัว นอกจากนี้ยังสามารถปรับเปลี่ยน ตำแหน่งพอร์ตได้ตามความต้องการอีกด้วย ... ดังนั้น งานใดที่ต้องการความรวดเร็วในการประมวลผลมากๆ บอร์ดเหล่านี้ จะเป็นทางเลือกที่ดี เพราะไมโครคอนโทรลเลอร์นั้น ช้า กว่า ไมโครคอนโทรลเลอร์อย่างมากๆ เลยทีเดียว ... ส่วนการเขียนโปรแกรมควบคุมนั้น เราสามารถจะใช้ภาษาอะไรก็ได้ที่เราใช้งานอยู่บนเครื่องไมโครคอมพิวเตอร์ มาสั่งการบอร์ดตัวนี้ ตัวอย่างเช่น BASIC(DOS), Pascal(DOS), C/C++ (DOS), Assembly 80x86, Delphi (Win), C++ Builder (Win), Visual BASIC (Win), Visual C++, Borland C++ เป็นต้น ... (ตัวอย่างโปรแกรมสามารถดาวน์โหลดได้จาก ETT)
บอร์ดที่แสดงเป็น ET-PC8255 ของ ETT
Controller board (ET-PCDIO) บอร์ดตัวนี้จะคล้ายๆ กับ ET-PC8255 แต่เพิ่มความสามาถในเรื่องของวงจรแปลงสัญญาณดิจิตอลเป็นอะนาลอก (D/A) ,แปลงสัญญาณะจากอะนาลอกเป็นดิจิตอล (A/D) และ Timer/Counter นอกจากนี้บนบอร์ดก็จะมี 8255 ให้ใช้งานได้อีก 1 ตัว (3 พอร์ต) พร้อมทั้งมีพื้นที่เหลือเอาไว้สำหรับการเพิ่มเติมวงจรที่เราสร้างขึ้นมาอีกด้วย ... (ตัวอย่างโปรแกรมสามารถดาวน์โหลดได้จาก ETT) ... ตอนนี้ในบทความมีตัวอย่างเกี่ยวกับ PCDIO ดังนี้
บอร์ดที่แสดงเป็น ET-PCDIO ของ ETT
ยังมีบอร์ดอื่นๆ ที่ผมทำขึ้นมาทดลองอีกครับ แล้วยังไงเมื่อโฮมเพจนี้พร้อมมากกว่านี้ผมก็จะเอาทั้งรูป และวงจรมาขึ้นโฮมเพจให้ครับ ...
- 1. บอร์ดขับหลอด LED 8 ดวง [_GO_]