ทดลองเล่นไมโครคอนโทรลเลอร์ MCS-51 ด้วย P89V51RD2 | |||||||||||||||||||||||||||||||||
ถ้าพูดถึงไมโครคอนโทรลเลอร์ตระกูล 8051 หรือ MCS-51 ก็คงปฏิเสธไม่ได้ว่าเป็นไมโครคอนโทรลเลอร์ที่มีการใช้งานกันอย่างแพร่หลายมากตระกูลหนึ่ง ถึงแม่ว่าปัจจุบันจะมีไมโครคอนโทรลเลอร์ตระกูลใหม่ ๆ ที่มีคุณภาพสูงออกมามากมาย แต่ยังไงก็ตาม MCS-51 ก็ยังมีการใช้งานที่แพร่หลายอยู่ ทั้งนี้เนื่องจากเป็นไมโครคอนโทรลเลอร์ถูกใช้งานกันอย่างกว้างขวางมาเป็นเวลานาน ทำให้ผู้ใช้งานสามารถหาข้อมูลสนับสนุนเพื่อใช้ในการพัฒนาได้สะดวก, ราคาที่ถูก อีกทั้งผู้ผลิตได้พัฒนาไมโครคอนโทรลเลอร์ MCS-51 รุ่นใหม่ ๆ ออกมาให้มีความสามารถที่สูงขึ้นอยู่ตลอดเวลา ทำให้ไมโครคอนโทรลเลอร์ตระกูล MCS-51 รุ่นใหม่ ๆ ก็ยังสามารถทำงานรองรับงานควบคุมส่วนใหญ่ได้เกือบทั้งหมด ดังนั้นวันนี้เราจะมาลองเล่นไมโครคอนโทรลเลอร์ MCS-51 กันนะครับ แต่ก่อนที่จะเริ่มลองเล่น เรามาดูประวัติ แหละฟังก์ชันการทำงานของมันดูก่อนดีกว่า
| |||||||||||||||||||||||||||||||||
ไมโครคอนโทรลเลอร์ตระกูล MCS-51 เริ่มแรกได้ถูกพัฒนาขึ้นจากบริษัท อินเทล (Intel Corporation) และได้มีการนำไปใช้งานกันอย่างแพร่หลายตั้งแต่ปี 1980 ในช่วงเวลาที่ผ่านมาได้มีบริษัทผู้ผลิตหลายบริษัท เช่น Dallas, Philips, Atmel ได้รับลิขสิทธิ์ในการผลิต และจำหน่าย จากบริษัท อินเทล และบริษัทต่าง ๆ ก็ได้พัฒนาความสามารถของไมโครคอนโทรลเลอร์ MCS-51 รุ่นใหม่ ๆ ให้มีความสามารถ และมีความเร็วเพิ่มขึ้น แต่ยังคงโครงสร้างพื้นฐานที่สำคัญของไมโครคอนโทรลเลอร์ตระกูล 8051 ซึ่งมีรายละเอียดดังนี้
| |||||||||||||||||||||||||||||||||
ไมโครคอนโทรลเลอร์ MCS-51 มีวงจรออสซิลเลเตอร์อยู่ภายใน ดังนั้นในการใช้งานจึงสามารถต่อคริสตอล และตัวเก็บประจุเข้ากับคริสตอลได้โดยตรง โดยความถี่ของคริสตอลที่ต่อเข้ากับไมโครคอนโทรลเลอร์จะเป็นตัวระบุความเร็วในการทำงานโดยตรง ในไมโครคอนโทรลเลอร์ MCS-51 ปกติ 1 แมชชีนไซเคิล (Machine Cycle) จะใช้สัญญาณนาฬิกาจำนวน 12 ลูก และในการทำงานแต่ละคำสั่งไมโครคอนโทรลเลอร์จะใช้เวลาในการทำงาน 1-4 แมชชีนไซเคิล ขึ้นอยู่กับความซับซ้อนของคำสั่งนั้น
ในปัจจุบันผู้ผลิตได้พัฒนาให้ไมโครคอนโทรลเลอร์สามารถทำงานได้เร็วขึ้นโดยเพิ่มความสามารถในการรองรับคริสตอลความถี่ที่สูงขึ้น รวมไปถึงการปรับปรุงการทำงานภายในให้ไมโครคอนโทรลเลอร์ใช้จำนวนสัญญาณนาฬิกาในการสร้างแมชชีนไซเคิลน้อยลง โดยในบางรุ่น 1 แมชชีนไซเคิลใช้สัญญาณนาฬิกาเพียงแค่ 1 ลูกเท่านั้น สำหรับไมโครคอนโทรลเลอร์ MCS-51 ที่เราจะมาลองเล่นกันนั้นเป็นรุ่น P89V51RD2 ของบริษัท Philips ที่เลือกรุ่นนี้เนื่องจากเป็นรุ่นที่สามารถรองรับการดาวน์โหลดโปรแกรมแบบ ISP (In System Programming) ผ่านพอร์ตอนุกรมได้โดยตรง ไม่ต้องอาศัยอุปกรณ์ หรือวงจรเพิ่มเติมในการดาวน์โหลดโปรแกรม จึงทำให้สามารถใช้งานได้อย่างสะดวก รวมถึงราคาของ P89V51RD2 ที่ไม่แพง เมื่อเทียบกับความสามารถ และประสิทธิภาพของมัน P89V51RD2 สามารถทำงานในโหมด X2 ซึ่ง จะทำให้สามารถทำงานได้เร็วกว่า MCS-51 พื้นฐาน 2 เท่า (1 แมชชีนไซเคิล ใช้สัญญาณนาฬิกา 6 ลูก) เมื่อใช้คริสตอลความถี่ที่เท่ากัน ในการทำงานในโหมด X2 นี้ P89V51RD2 สามารถใช้คริสตอลความถี่สูงสุด 20MHz ส่วนในการทำงานในโหมด X1 สามารถใช้คริสตอลความถี่สูงสุด 40 MHz ภายใน P89V51RD2 มีหน่วยความจำโปรแกรมแบบแฟลชขนาด 64 กิโลไบต์ นอกจากนั้นยังมี หน่วยความจำข้อมูลภายนอกเพิ่มเติมขนาด 1 กิโลไบต์ อยู่ภายในตัวชิพด้วย อุปกรณ์ที่ใช้ทั้งหมดก็ตามรายการด้านล่างนะครับ ค่าใช้จ่ายทั้งหมดอยู่ที่ประมาณ 200 บาท
| |||||||||||||||||||||||||||||||||
รูปที่ 1 อุปกรณ์ที่ใช้ในการสร้างบอร์ดทดลองไมโครคอนโทรลเลอร์ MCS-51
| |||||||||||||||||||||||||||||||||
วงจรทั้งหมดแบ่งออกเป็น 3 ส่วนหลัก ๆ คือ 1.วงจรแปลงไฟ และจ่ายไฟ 2.วงจรไมโครคอนโทรลเลอร์ และ 3.วงจรการติดต่อสื่อสารผ่านพอร์ตอนุกรม RS-232 วงจรแปลงไฟ และจ่ายไฟนั้นสามารถต่อได้ดังรูปวงจรตามรูปที่ 2 จะเห็นได้ว่าใช้ IC Regulator เบอร์ LM7805 ซึ่งทำหน้าที่ Regulate ไฟจาก 9-12 V ให้เป็นไฟ DC 5 V สามารถจ่ายกระแสได้สูงสุด 1 A | |||||||||||||||||||||||||||||||||
รูปที่ 2 วงจรแปลงไฟจาก AC/DC 9-12V เป็น DC 5 V
| |||||||||||||||||||||||||||||||||
ตามรูปที่ 2 Bridge Diode ทำหน้าที่แปลงไฟ ให้เป็นไฟ + ทำให้เราสามารถจ่ายไฟเข้าวงจรนี้เป็นไฟ กระแสสลับ หรือไฟกระแสตรงที่ 9-12V ได้ โดยไม่จำเป็นต้องคำนึงถึงขั้วของการต่อไฟ
สำหรับคนที่มี Power Supply จ่ายไฟ DC Regulate ที่ 5 V อยู่แล้ว ก็สามารถใช้ Power Supply นั้นกับไมโครคอนโทรลเลอร์ได้โดยตรง โดยไม่ต้องต่อวงจรแปลงไฟนะครับ
ในส่วนวงจรไมโครคอนโทรลเลอร์สามารถต่อได้ตามวงจรในรูปที่ 3 โดย Vcc 5 V นั้นใช้จาก Vcc ของวงจรจ่ายไฟ จะเห็นได้ว่าไมโครคอนโทรลเลอร์มีพอร์ต I/O แบบขนาน 8 บิตอยู่ทั้งหมด 4 พอร์ต (พอร์ต 0 – พอร์ต 3) แต่ละพอร์ตสามารถทำงานเป็นพอร์ต Input หรือ Output ก็ได้แล้วแต่ผู้ใช้งานจะเลือกใช้ นอกจากนี้บางพอร์ตยังสามารถทำงานพิเศษเฉพาะทางได้อีก ทั้งนี้จะกล่าวถึงในรายละเอียดเมื่อมีโอกาสในตอนต่อไปนะครับ
| |||||||||||||||||||||||||||||||||
รูปที่ 3 วงจรไมโครคอนโทรลเลอร์ P89V51RD2
| |||||||||||||||||||||||||||||||||
ขา EA (External Access Enable) Pin 31 ใช้เลือกการทำงานของไมโครคอนโทรลเลอร์ ว่าจะใช้หน่วยความจำโปรแกรมภายนอก หรือหน่วยความจำโปรแกรมภายใน กรณีเลือกใช้หน่วยความจำโปรแกรมภายนอกขา EA ต้องเป็น Logic “0” ส่วนในกรณีใช้หน่วยความจำโปรแกรมภายในขา EA ต้องเป็น Logic “1” สำหรับไมโครคอนโทรลเลอร์ P89V51RD2 นั้นมีหน่วยความจำโปรแกรมภายในแบบ Flash ขนาด 64 Kbytes ดังนั้นเราจึงเลือกให้ทำงานจากหน่วยความจำโปรแกรมภายใน ซึ่งต้องต่อกับไฟ 5 V ให้เป็น Logic “1” ดังแสดงในรูปที่ 3
ขา RST (RESET) Pin 9 ไว้สำหรับรีเซตการทำงานของไมโครคอนโทรลเลอร์ โดยถ้าขา RST นี้มีสถานะเป็น Logic High นานกว่าช่วงเวลา 2 Machine Cycle จะเป็นการรีเซตการทำงานของไมโครคอนโทรลเลอร์ ดังนั้นเราจึงต่อขา RST ของไมโครคอนโทรลเลอร์เข้ากับ Switch และตัวเก็บประจุขนาด 10 uF ดังแสดงในรูปที่ 3
ขา XTAL1 และ XTAL2 เป็นขาสำหรับต่อคริสตอลเพื่อสร้างสัญญาณนาฬิกาให้กับไมโครคอนโทรลเลอร์ ที่เลือกใช้คริสตอลความถี่ 18.432 Mhz เนื่องจากเป็นความถี่ที่สามารถนำไปสร้างสัญญาณนาฬิกาให้กับการติดต่อสื่อสารผ่านพอร์ตอนุกรม RS-232 ได้อย่างลงตัว (2,400, 4,800, 9,600, 14,400, 19,200, 28,800, 38,400 บิตต่อวินาที) และในกรณีที่ต้องการให้ P89V51RD2 ทำในโหมด X2 ก็สามารถทำได้โดยการเลือกตอนโหลดโปรแกรม
ขา ALE (Address Latch Enable) Pin 30 เป็นขาที่ใช้ควบคุมการแลตซ์ของขาพอร์ต 0 เมื่อมีการต่อใช้งานหน่วยความจำภายนอก แต่เนื่องจากเรายังไม่ได้ต่อใช้งานหน่วยความจำภายนอก ดังนั้นเราจึงปล่อยลอยขา ALE ไว้
ขา PSEN (Program Store Enable) Pin 29 ใช้ส่งสัญญาณเพื่อร้องขอการติดต่อกับหน่วยความจำโปรแกรมภายนอก สำหรับในไมโครคอนโทรลเลอร์บางรุ่นขา PSEN นี้ใช้ในการควบคุมสภาวะการทำงานของไมโครคอนโทรลเลอร์สำหรับการโหลดโปรแกรมลงบนไมโครคอนโทรลเลอร์ด้วย
P89V51RD2 มีพอร์ตอนุกรมซึ่งใช้รับส่งข้อมูลตามมาตรฐานของ MCS-51 ทั่วไป ซึ่งนอกจากจะใช้สำหรับรับส่งมูลตามปกติแล้ว พอร์ตอนุกรมของ P89V51RD2 ยังสามารถใช้ดาวน์โหลดโปรแกรมลงหน่วยความจำโปรแกรม หรือที่เรียกว่าการโหลดโปรแกรมแบบ ISP ได้อีกด้วย พอร์ตอนุกรมของ P89V51RD2 อยู่ที่พอร์ต 3.0 (Rx) Pin 10 และ 3.1 (Tx) Pin 11 สัญญาณที่ออกมาจากพอร์ตของไมโครคอนโทรลเลอร์นั้นเป็นสัญญาณระดับ TTL ซึ่งมีระดับสัญญาณอยู่ที่ 0-5V แต่ในการติดต่อสื่อสารแบบอนุกรมตามมาตรฐาน RS-232 นั้นสัญญาณ logic “0” ต้องมีระดับสัญญาณอยู่ที่ 3-15 V และ logic “1” ต้องมีระดับสัญญาณอยู่ที่ (-3)-(-15V) ดังนั้นในการใช้งานสื่อสารตามมาตรฐาน RS-232 เราจึงต้องใช้วงจรสื่อสารผ่านพอร์ตอนุกรมซึ่งใช้ IC MAX232 เป็นตัวปรับระดับสัญญาณจากระดับ TTL ให้เป็นไปตามมาตรฐานของ RS-232 โดยสามารถต่อวงจรได้ตามรูปที่ 4 | |||||||||||||||||||||||||||||||||
รูปที่ 4 วงจรติดต่อผ่านพอร์ตสื่อสารอนุกรม RS-232 | |||||||||||||||||||||||||||||||||
เมื่อต่อวงจรเสร็จแล้วดังแสดงในรูปที่ 5 ที่นี้ก็พร้อมที่จะทดลองใช้งาน MCS-51 กันแล้วหละครับ
| |||||||||||||||||||||||||||||||||
รูปที่ 5 บอร์ดทดลองไมโครคอนโทรลเลอร์ MCS-51 ที่ใช้ P89V51RD2
| |||||||||||||||||||||||||||||||||
การดาวน์โหลดโปรแกรมลง P89V51RD2
ในการดาวน์โหลดโปรแกรมลงไมโครคอนโทรลเลอร์ P89V51RD2 ผ่านพอร์ตอนุกรมนั้นเราต้องมีสายสัญญาณ Serial ซึ่งสามารถทำเองได้โดยเชื่อมต่อตามไดอะแกรมในรูปที 6
| |||||||||||||||||||||||||||||||||
รูปที่ 6 ไดอะแกรมการเชื่อมต่อสายสัญญาณ Serial
| |||||||||||||||||||||||||||||||||
การโหลดโปรแกรมลงหน่วยความจำแบบ Flash ของ P89V51RD2 นั้นเราต้องใช้โปรแกรม Flash Magic ซึ่งสามารถดาวน์โหลดได้จากhttp://www.mind-tek.net/download.php ขั้นตอนในการดาวน์โหลดโปรแกรมลง P89V51RD2 สามารถทำได้ตามขั้นตอนต่อไปนี้
| |||||||||||||||||||||||||||||||||
รูปที่ 7 เมนูเลือก COM Port, Baud Rate และ Device | |||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||
รูปที่ 8 เมนูอ่านค่าภายในไมโครคอนโทรลเลอร์ | |||||||||||||||||||||||||||||||||
โปรแกรม Flash Magic จะเริ่มติดต่อกับไมโครคอนโทรลเลอร์ เพื่ออ่านค่าภายในไมโครคอนโทรลเลอร์ที่มาจากโรงงาน ถ้าทุกอย่างปกติโปรแกรม Flash Magic จะแจ้งให้เรารีเซต P89V51RD2 เพื่อให้เข้าสู่โหมด ISP ดังแสดงในรูปที่ 9 ในกรณีที่มีปัญหาให้ลองตรวจสอบคอมพอร์ตที่ใช้งาน ถ้าถูกต้องอยู่แล้วให้ลองเปลี่ยน Baud Rate ดูนะครับ
| |||||||||||||||||||||||||||||||||
รูปที่ 9 การแจ้งให้รีเซตไมโครคอนโทรลเลอร์ให้ทำงานในโหมด ISP
| |||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||
รูปที่ 10 การเลือกไฟล์ HEX ที่จะทำการดาวน์โหลดลง P89V51RD2
| |||||||||||||||||||||||||||||||||
7. เลือก Verify After Programming ตามรูปที่ 10
สำหรับการใช้งานฟังก์ชันภายใน MCS-51 นั้น จะทยอยหามาให้ได้อ่านกันในโอกาสหน้าต่อไปนะครับ
|
แหล่งความรู้อิเล็กทรอนิกส์ออนไลน์ เรียนจริงรู้จริง ทำได้แน่นอน ร่วมเผยแพร่ความรู้ได้ที่ Admin
หน้าเว็บ
▼
ไม่มีความคิดเห็น:
แสดงความคิดเห็น