Professional Documents
Culture Documents
Z8 Encore Z8F4801 48kbyte Flash RS232 2Ch..... Atod 10bit 8Ch
Z8 Encore Z8F4801 48kbyte Flash RS232 2Ch..... Atod 10bit 8Ch
คูม่ อื การใช้บอร์ด
CP-jrZ8F01 V1/EXP
Z8 Encore Z8F4801 48Kbyte Flash
ATOD 10BIT 8Ch
RS232 2Ch.....
บริ ษ ท
ั อีท ท
ี ี จำกั ด ETT CO., LTD.
1112/96-98 ถนนสุขมุ วิท แขวงพระโขนง เขตคลองเตย กรุงเทพฯ 10110 http://www.etteam.com
1112/96-98 Sukhumvit Rd., Phrakanong Klongtoey Bangkok 10110 http://www.ett.co.th
www.ett.co.th Tel : 02-7121120 Fax : 02-3917216 email : sale@etteam.com
ชือ่ หนังสือ “ คูม่ อื การใช้งานบอร์ด CP-JRZ8F01 V1”
ISBN 974-91802-4-0
ผูเ้ ขียน นายสิทธิพล อยูย่ อด
พิมพ์ครัง้ ที่ 1 จำนวน 500 เล่ม
11 ธันวาคม 2546
จำนวน 48 หน้า
ราคา 60 บาท
จัดพิมพ์โดย
บริษทั อีทที ี จำกัด
1112/96-98 ถนนสุขมุ วิท แขวงพระโขนง
เขตคลองเตย กรุงเทพ 10110
โทร. (02 )712-1120 - 1 FAX (02) 391-7216.
www.ett.co.th
คํานํา
ในปจจุบันนี้การพัฒนาเทคโนโลยีทางดานไมโครคอนโทรลเลอรในตระกูลตางๆไดพัฒนา
ไปอยางไมหยุดยั้งเพื่อตอบสนองใหผูใชสามารถเลือกใชงานไดหลากหลายตามลักษณะงานที่จะนํา
ไปใชคอนโทรล รวมทั้งเพิ่มประสิทธิภาพและอุปกรณสนับสนุนใหกับตัวไมโครคอนโทรลเลอร
มากขึ้นทําใหการใชงานสะดวกมากขึ้นตามไปดวย
ในคูมือนี้ก็จะกลาวถึงการใชงานบอรดของไมโครคอนโทรลเลอร ตระกูล Z8 ENCORE!
ซึ่งเปนของบริษัท Zilog เปนผูผลิตขึ้นมาใชงาน ซึ่งมีอยูดวยกันหลายเบอร แตเบอรที่เราจะกลาวถึง
ในบอรดนี้คือ Z8F4801 ไมโครคอนโทรลเลอรในตระกูลนี้มีประสิทธิภาพในการใชงานสูงและ
หลากหลายกวาตระกูลอื่นๆ รวมทั้งทํางานดวยความเร็วถึง 20 MHz.
ดังนั้นทางทีมงานอีทีที จึงมีความสนใจที่จะทําการศึกษาวิจัยไมโครคอนโทรลเลอรตระกูล
Z8ENCORE ขึ้น และไดจัดทําเปนลักษณะของบอรดทดลองขึ้นมาใหงายตอการใชงาน โดยมีจุด
ประสงคหลักคือ เพื่อใหลูกคาที่ตองการนําบอรดไปใชศึกษาทดลอง และเรียนรูทําความเขาใจกับ
CPU อยางงายๆโดยมุงเนนที่จะตอทดลองวงจรสวนของ I/O ตางๆขึ้นมาใชงานเอง โดยใชวิธีการ
ตอวงจรดวยแผงทดลอง Photo Board เปนหลัก
ทีมงานอีทีที
สารบัญ
เรื่อง หนา
ลักษณะทั่วไปของบอรด 1
การจัดสรร I/O ของบอรด CP-JRZ8F01 V1.0 4
การใชงานขั้วตอ 34 PIN 6
การใชงานพอรตสื่อสารอนุกรม RS232/RS422/RS485 7
- การกําหนด Jumper สําหรับการสื่อสารแบบ RS232 9
- การกําหนด Jumper สําหรับการสื่อสารแบบ RS422/485 12
การใชงานขั้วตอ I2C BUS 16
การใชงานขั้วตอ SPI 17
การติดตั้งโปรแกรม ZDS-II สําหรับเขียนและ Download โปรแกรม 18
การใชงานโปรแกรม ZDS –II 22
- การสราง New Project 22
- การ Add File ไปยัง Project ที่สรางไว 28
- การ Compiler และการ Download โปรแกรมหลังจากกําหนดคาให Project แลว 33
การทํางานของปุมคําสั่งตางๆที่สําคัญในโปรแกรม 34
วงจรของบอรด CP-JRZ8F01 V1.0 36
ตาราง ตําแหนง Address และชื่อของ Register Control 38
ตาราง ตําแหนง Interrupt Vector และชื่อ Interrupt Source 44
ตาราง ตําแหนง Address ของ Sub-Register Control 45
คูมือการใชงานบอรดไมโครคอนโทรลเลอรรุน “ CP-JRZ8F01 V1.0 ”
CP – JRZ8F01 V1.0
ลักษณะทั่วไปของบอรด
ในบอรดไมโครคอนโทรลเลอรรุนนี้ใช CPU ไมโครคอนโทรลเลอรขนาด 8 บิต ของ บริษัท
Zilog ในตระกูล Z8 Encore! เบอร Z8F4801 ซึ่ง CPU ตัวนี้บรรจุในตัวถังแบบ DIP ขนาด 40 ขา และ
มีทรัพยากรตางๆบรรจุไวภายในตัว CPU อยางมากมาย ไมวาจะเปน ADC ขนาด 10 บิต 8 แชนแนล ,
Timer / Counter / PWM 4 แชนแนล , I2C 1 แชนแนล , Uart 2 แชนแนล , SPI 1 แชนแนล รวมทั้ง
PORT I/O 4 PORT ซึ่งมีความเหมาะสมในการนําไปประยุกตใชงานในลักษณะตางๆไดเปนอยางดี
ฟงกชันการทํางานตางๆของฮารดแวรของ CPU เบอรนี้ จะมีความยืดหยุนในการใชงานไดคอนคางดี
สามารถปรับเปลี่ยนการทํางานไดดวยโปรแกรม ดังนั้นผูที่ใชงานจึงสามารถนําระบบฮารดแวรแบบ
เดียวกันไปประยุกตใชงานในลักษณะตางๆกันไดโดยไมยาก แคปรับเปลี่ยนโปรแกรมสําหรับควบคุม
การทํางานของบอรดเพียงเล็กนอยเทานั้น
บอรดไมโครคอนโทรลเลอรรุนนี้ ออกแบบวงจรมาเฉพาะสวนพื้นฐานที่จําเปนในการใชงาน
เชน แหลงจายไฟ , วงจรรีเซ็ท ,วงจรกําเนิดความถี่สัญญาณนาฬิกา,วงจรสําหรับ Download โปรแกรม
และวงจรสื่อสารอนุกรม ไดแก RS232 /422 /485 , SPI , I2C สวนวงจร I/O ภายนอกนั้น จะไมไดจัด
เตรียมไวให แตจะทําการตอสัญญาณ I/O ตางๆจาก CPU มาไวยังขั้วตอ Connector 34 Pin สําหรับให
ผูใชนําไปเชื่อมตอกับอุปกรณ I/O ภายนอกไดโดยงาย และยังมีแผง Photo Board สําหรับใหผูใชออก
แบบวงจร I/O และตอวงจร I/O เพิ่มเติมไดเอง เหมาะสําหรับผูใชที่ตองการนําบอรดไปใชพัฒนางาน
ตนแบบโดยการสราง I/O ตางๆขึ้นมาใชเองได
ในสวนของความถี่ของสัญญาณนาฬิกาที่จะปอนใหกับ CPU เบอร Z8F4801 นั้น จะสามารถ
ปอนคาความถี่ของ Crystal ไดถึง 20 MHz ซึ่งในบอรด รุนนี้จะใชความถี่ที่ 18.432 MHz
นอกจากสวนประกอบตางๆของบอรดที่ไดกลาวไปแลวขางตนยังมีสวนแสดงผลดวย LED
ที่จะเปนตัวบอกสถานะการทํางานของบอรดขั้นตนวาใชงานไดหรือไม คือ
1. LED แสดงการทํางานของภาคจายไฟซึ่งจะมีอยูดวยกัน 2 ดวง เพื่อแสดงสถานะการทํางาน
ในสวนของภาคจายไฟ 5 V สําหรับไฟเลี้ยงอุปกรณตางๆในวงจร และ 3.3 V สําหรับไฟเลี้ยง CPU
2. LED แสดงสถานะการ Download โปรแกรมจากเครื่อง PC โดยจะมีการกระพริบในขณะที่
ผูใชทําการ Download โปรแกรมลงบนบอรด ทาง RS232 Download
3. LED ใชสําหรับในการทดสอบโปรแกรมที่ผูใชเขียนขึ้น โดยผูใชสามารถเขียนโปรแกรม
ทดสอบดวยการสง ลอจิก “ 1 ” ไปออกที่ Port PA0 LED ดวงนี้ก็จะติดถาโปรแกรมที่ผูใชเขียนขึ้นนั้น
ถูกตอง
1 40
PD4/RXD1 PD5/TXD1
2 39
PD3 PC4/MOSI
3 38
PC5/MISO PA4/RXD0
4 37
PA3/CTS0 PA5/TXD0
5 36
PA2 PA6/SCL
6 35
PA1/T0OUT PA7/SDA
7 34
PA0/T0IN PD6/CTS1
8 33
PC2/SS PC3/SCK
9 32
RESET VSS
10 31
VDD VDD
11 30
VSS PC6/T2IN
12 29
PD1/T3OUT DBG
13 28
PD0/T3IN PC1/T1OUT
14 27
XOUT PC0/T1IN
15 26
XIN AVSS
16 25
AVDD VREF
17 24
PB0/ANA0 PB2/ANA2
18 23
PB1/ANA1 PB3/ANA3
19 22
PB4/ANA4 PB7/ANA7
20 21
PB5/ANA5 PB6/ANA6
บอรด CP-JRZ8F01 V1.0 นี้จะใช CPU เบอร Z8F4801 เปน CPU ประจําบอรด โดย CPU
เบอรนี้จะมีขาสัญญาณที่สามารถนําไปใชงานเปน I/O Port ไดทั้งหมด 29 เสนสัญญาณ ประกอบดวย
- PA [0..7] จํานวน 8 เสนสัญญาณ
- PB [ 0..7] จํานวน 8 เสนสัญญาณ
- PC [0..6 ] จํานวน 7 เสนสัญญาณ
- PD [0..1,3..6] จํานวน 6 เสนสัญญาณ
บอรด CP-JRZ8F01 V1.0 นี้จะมีการออกแบบจัดสรรขาสัญญาณ Port I/O ของ CPU ให
สามารถทํางานไดหลายหนาที่ โดยผูใชสามารถเลือกใชงานไดตามตองการ ซึ่งสามารถกําหนดไดจาก
โปรแกรมที่เขียนขึ้นเอง และ Jumper โดยหนาที่การใชงาน Port I/O ของ CPU ในบอรด CP-JRZ8F01
V1.0 สามารถสรุปไดดังนี้
PA0-PA7 ขาสัญญาณนี้ผูใชสามารถใชงานเปน Input หรือ Output ไดตามตองการโดยใน
บอรดนี้ขาสัญญาณของ PA0-PA7 จะถูกเชื่อมตอไปยังขั้วตอ 34 Pin แตขา PA4 และ PA5 ถูกใชงาน
ในหนาที่พิเศษดวยดังนั้นจึงยังไมถูกตอไปที่ขั้วตอ 34 Pin แตถูกเชื่อมตอไวที่ Jumper เพื่อใชเลือกการ
ทํางานของ RS232 (CH0) ถาผูใชจะให PA4 และ PA5 ตอมายังขั้วตอ 34 Pin จะตอง Set Jumper
RX0/PA4 และ TX0/PA5 มาทางดาน PA4 และ PA5 สองขานี้จึงจะถูกตอเขากับขั้วตอ 34 Pin ถา
ตองการใชงาน 2 ขา นี้ในการติดตอสื่อสารแบบอนุกรมดวย RS232 (CH0) ก็ Set Jumper มาดาน Rx0
และ Tx0 โดย - PA4 จะใชติดตอกับ RS232 ทําหนาที่รับสัญญาณ Rx0
- PA5 จะใชติดตอกับ RS232 ทําหนาที่สงสัญญาณ Tx0
สวน ขา PA0 นอกจากจะถูกตอไปที่ ขั้วตอ 34 Pin แลว จะถูกตอไปยัง Jumper ดวย เพื่อใหเลือก ใช
ตอไปยัง LED ซึ่งจะมีไวสําหรับใหผูใชสามารถทดลองโปรแกรมที่เขียนในขั้นตนได โดยการสง ลอ
จิก 0 หรือ 1 ออกไปที่ PA0 นี้
PA0
รูป แสดงการ Short Jumper PA0 เมื่อตองการใช LED บนบอรด Test โปรแกรม
การใชงานขั้วตอ 34 PIN
สําหรับขั้วตอ 34 PIN ของบอรด CP-JRZ8F01 V1.0 นั้นจะเปนแบบ IDE ตัวเมีย ซึ่งจะตอ
ออกมาจากขา Port A – Port D ของตัว CPU เพื่อใหผูใชสามารถใชสาย Jumper ตอสัญญาณตางๆจาก
ขั้วตอนี้ไปยังแผงทดลอง Photo Board เพื่อตอรวมกับวงจรตางๆไดโดยงาย ในขั้วตอ 34 PIN นี้ใน
สวนของขา PA4 และ PA5 เมื่อผูใชจะใชงานตองไป Set Jumper มาทางดาน PA4 และ PA5 กอนดัง
รูป
RX0 PA4
TX0 PA5
PA2 PA3
PA4 PA5
PA6 PA7
PB0 PB1
PB2 PB3
PB4 PB5
PB6 PB7
PC0 PC1
PC2 PC3
PC4 PC5
PC6 NC
+5V NC
GND NC
PD0 PD1
NC PD3
NC NC
การใชงานพอรตสื่อสารอนุกรม RS232/RS422/RS485
ภายในตัว CPU เบอร Z8F4801 ที่ใชกับบอรด CP - JRZ8F01 V1.0 นั้น จะมีวงจรสื่อสาร
แบบอนุกรม ( UART ) บรรจุรวมไวดวยแลว ซึ่งวงจรสวนนี้ผูใชงานสามารถทําการเขียนโปรแกรม
ควบคุมการสื่อสารขอมูลระหวาง CPU กับอุปกรณอื่นๆรอบขางไดตามความตองการ โดยในสวน
ของโปรแกรมนั้นผูใชสามารถกําหนดรูปแบบของการสื่อสารขอมูลไดเองจากโปรแกรมที่เขียนขึ้นไม
วาจะเปนความเร็วในการสื่อสาร (Baud Rate) จํานวนบิตขอมูลในการรับสง (Data Bit ) และคุณ
สมบัติอื่นๆ ซึ่งในรายละเอียดสวนนี้จะไมขอกลาวถึง ขอใหผูใชศึกษาจากคูมือสถาปตยกรรมทาง
ฮารดแวร หรือ Data Sheet ของ CPU เบอร Z8F4801 เอง
โดยปรกติแลวขาสัญญาณสําหรับ รับ – สง ขอมูลของ CPU นั้น สามารถนําไปเชื่อมตอกับขา
สัญญาณ รับ – สง ของอุปกรณอื่นๆไดเลย โดยขาสง (TX) ของ CPU ตองนําไปตอกับขารับ (RX)
ของอุปกรณที่จะนํามาสื่อสารกัน สวนขารับขอมูล (RX) ของ CPU ก็ตองตอกับขาสงขอมูล (TX) จาก
อุปกรณที่จะนํามาสื่อสารกัน แตเนื่องจากขาสัญญาณ RX และ TX ของ CPU นั้น จะสามารถเชื่อมตอ
กับสัญญาณที่มีคุณสมบัติเปนแบบ ระดับลอจิก TTL เทานั้น ซึ่งถาใชวิธีเชื่อมตอสัญญาณรับสงของ
CPU กับอุปกรณโดยตรงนั้น สามารถสื่อสารกันไดเพียงระยะทางใกลๆ หรือภายในแผงวงจรเดียวกัน
เทานั้น ไมสามารถที่จะสื่อสารกันดวยระยะทางไกลๆได ดังนั้นบอรด CP - JRZ8F01 V1.0 จึงไดออก
แบบวงจร Line Driver สําหรับทําหนาที่เปน Buffer เพื่อเปลี่ยนแปลงระดับสัญญาณทางไฟฟาของขา
สัญญาณ รับ – สง ขอมูลของ CPU ที่เปนแบบ TTL ใหสามารถรับสงขอมูลกันไดในระยะทางที่ไกล
มากขึ้นโดยบอรด CP - JRZ8F01 V1.0 นั้น จะสามารถเลือกกําหนดรูปแบบของวงจร Line Driver
สําหรับการสื่อสารอนุกรมได 3 แบบดวยกัน คือ
1. การสื่อสารอนุกรมแบบ RS232
ในกรณีนี้จะตองทําการติดตั้งไอซี Line Driver เพื่อเปลี่ยนระดับสัญญาณทางไฟฟาของขา
สัญญาณสําหรับ รับ – สง ขอมูลแบบ TTL ของ CPU (RX และ TX) ใหเปนระดับสัญญาณทางไฟ
ฟาแบบ RS232 (±12 V ) โดยการติดตั้งไอซีเบอร MAX232 เพื่อทําหนาที่เปลี่ยนระดับสัญญาณ TTL
จากขาสัญญาณสงขอมูล (TX) ของ CPU ใหเปนระดับสัญญาณ ±12 V สําหรับสงไปยังขารับ
สัญญาณ (RX) ของอุปกรณภายนอก และในทางกลับกัน ก็จะทําหนาที่เปลี่ยนระดับสัญญาณสง (TX)
แบบ RS232 ( ±12V ) จากอุปกรณภายนอก ใหกลับมาเปนระดับ TTL เพื่อสงใหกับขารับขอมูล
(RX) ของ CPU ดวย โดยเมื่อเปลี่ยนระดับสัญญาณในการ รับ-สง ขอมูลจาก TTL มาเปน RS232 นี้
แลวจะทําใหสามารถทําการ รับ-สง ขอมูลกับอุปกรณภายนอกที่ใชระดับสัญญาณทางไฟฟาในการ
รับ-สง แบบเดียวกัน(RS232) ไดไกลมากขึ้น โดยสามารถทําการรับสงขอมูลกับอุปกรณตางๆไดใน
ลักษณะของตัวตอตัว (Point – to – Point ) เทานั้น
TX
เมื่อตองการใชงาน RS232(0) ก็ให กําหนด Jumper RX0 / PA4 มาทางดาน RX0 และ Jumper
TX0 / PA5 มาทางดาน TX0
RX0 PA4
TX0 PA5
รูป การกําหนด Jumper RX0 / PA4 และ TX0 / PA5 เมื่อใชงานพอรต RS232 (0)
เมื่อตองการใชงาน RS232(1) ก็ให กําหนด Jumper RXD1 และ TXD1 ดังรูป ซึ่งการ
กําหนด Jumper ของ RS232(0) และ RS232(1) จะเปนอิสระตอกันสามารถกําหนดใหทํางานพรอม
กันได
RXD1
TXD1
2. การสื่อสารอนุกรมแบบ RS422
ในกรณีนี้จะตองทําการติดตั้งไอซี Line Drive เบอร 75176 จํานวน 1-2 ตัวเพื่อทําหนาที่
เปลี่ยนระดับสัญญาณไฟฟาในการ รับ – สง แบบ TTL จาก CPU ใหเปนระดับสัญญาณแบบ Balance
Line เพื่อ รับ – สง สัญญาณกับอุปกรณที่มีระดับสัญญาณทางไฟฟาเปนแบบ Balance Line เหมือน
กัน โดยถาตองการใชการสื่อสารแบบสองทิศทาง ก็จะตองติดตั้งไอซี Line Drive จํานวน 2 ตัว โดย
แบงเปนแปลงสัญญาณทางดานรับ 1 ตัว และตัวแปลงสัญญาณทางดานสงอีก 1 ตัว แตถาตองการสื่อ
สารแบบทิศทางเดียวก็อาจทําการติดตั้งไอซี Line Drive เพียงตัวเดียว โดยถาตองการใหเปนฝายรับ
ขอมูลเพียงอยางเดียวก็ใหติดตั้งไอซี Line Drive เฉพาะในตําแหนงของ RXD/422 เพียงตัวเดียว แต
ถาตองการใหเปนฝายสงขอมูลเพียงอยางเดียวก็ใหทําการติดตั้งไอซี Line Driver เฉพาะในตําแหนง
TXD/485 เพียงตัวเดียวเทานั้น
ซึ่งการสื่อสารแบบ Rs422 นี้ สามารถนําไปทดแทนการสื่อสารแบบ RS232 ไดทันที โดยไม
ตองดัดแปลงแกไขโปรแกรมเลย ซึ่งการสื่อสารโดยใชระดับสัญญาณในการ รับ – สง แบบ RS422
จะมีขอดีคือ สามารถทําการสื่อสารกันไดในระยะทางที่ไกลขึ้นกวาแบบ RS232
การสื่อสารดวยระดับสัญญาณทางไฟฟาแบบ RS422 นี้ ถาเปนการสื่อสารแบบ 2 ทิศทาง คือ
ทั้งรับขอมูลและสงขอมูล จะสามารถทําการรับสงขอมูลกับอุปกรณตางๆในลักษณะของตัวตอตัว
(Point-to-Point) เหมือนกับ RS232 ทุกประการ แตในกรณีที่เปนการสื่อสารแบบทิศทางเดียวนั้น
สามารถจะทําการตอขนานสัญญาณทางดานรับ จํานวนหลายๆจุดเขากับสัญญาณสงเพียงจุดเดียวได
แตถาเปนอุปกรณทางดานสงนั้นจะไมสามารถนํามาตอขนานสัญญาณสงขอมูลเขาดวยกันมากกวา 1
จุด เหมือนทางดานฝายรับได
สําหรับลักษณะของขั้วตอของสัญญาณ RS422 นั้น จะเปนแบบ CPA ขนาด 6 PIN ดังรูป โดย
ในการสื่อสารกันนั้น จะใชสายสัญญาณในการรับสงขอมูลกันจํานวน 4 เสนสัญญาณ คือ สัญญาณ
ในการรับขอมูลจํานวน 2 เสน คือ RX+ และ RX- และสัญญาณในการสงขอมูลอีก 2 เสน คือ TX+
และ TX- ซึ่งในการตอสัญญาณนั้นจะตองทําการตอสัญญาณในลักษณะของการสลับกัน คือ สัญญาณ
สงจะตองตอเขากับสัญญาณรับ นั่นก็คือ สัญญาณ RX+ จะตองตอกับ TX+ สวน RX- จะตองตอกับ
TX- ดวยเชนกัน โดยลักษณะของขั้วตอสัญญาณ RS422 จะเปนดังรูป
GND
RX+
RX-
+VCC
TX+
TX-
3. การสื่อสารอนุกรมแบบ RS485
ในการสื่อสารแบบ RS485 นี้จะมีคุณสมบัติทางไฟฟาเหมือนกับ RS422 ทุกประการเพียง
แตวาการสื่อสารแบบ RS485 นี้จะใชสายสัญญาณในการรับสงขอมูลกันเพียง 2 เสน เทานั้น แตจะมี
ความพิเศษกวาแบบ RS422 ตรงที่ ทิศทางของสัญญาณจะสามารถปรับเปลี่ยนไดจากโปรแกรม กลาว
คือ สัญญาณทั้ง 2 เสน สามารถจะสลับหนาที่เปนดานสงและเปนดานรับได ตามตองการ โดยการ
ควบคุมจาก CPU ซึ่งจากบอรด CP - JRZ8F01 V1.0 นั้น จะกําหนดใหสัญญาณ PD6 ทําหนาที่สลับ
ควบคุมทิศทางของขอมูลวาจะใหเปนรับหรือสง โดยถาควบคุมใหเปน “1” จะเปนการกําหนดทิศทาง
ใหเปนฝายสงขอมูล แตถาสภาวะของ PD6 เปน “0” จะเปนการกําหนดทิศทางใหเปนฝายรับขอมูล
ซึ่งจากคุณสมบัติขอนี้จะทําใหการสื่อสาร RS485 สามารถทําการตอขนานอุปกรณรวมกันในสายสง
เดียวกันไดจํานวนหลายๆจุด โดยจะมีขอแมวาเมื่อมีการตออุปกรณขนานกันในสายสัญญาณคูเดียวกัน
มากกวา 2 จุดแลว จะตองเขียนโปรแกรมควบคุมใหมีการสงขอมูลออกมาในสายครั้งละ 1 จุดเทานั้น
เพราะถามีการกําหนดทิศทางของขอมูลใหสงในเวลาเดียวกันมากกวาหนึ่งจุดแลวจะทําใหเกิดการชน
กันของขอมูลและไมสามารถสื่อสารกันไดอยางถูกตอง
ในการสื่อสารขอมูลแบบ RS485 นี้จะตองเขียนโปรแกรมขึ้นมารองรับการสื่อสารโดยเฉพาะ
เนื่องจากทิศทางของขอมูลสามารถจะกําหนดจากโปรแกรมไดโดยตรง ซึ่งการสื่อสารดวยวิธีนี้จะมีขอ
ดีคือ ใชสายสัญญาณในการรับสงนอยเสน แตจะเสียเวลาในการสื่อสารมากกวาวิธีอื่นๆ เนื่องจากวา
การสื่อสารแบบนี้จะไมสามารถรับและสงขอมูลในเวลาเดียวกันได แตจะตองใชวิธีการผลัดกันรับ
ผลัดกันสงแทน ซึ่งในความเปนจริงแลวในปจจุบันนี้ ราคาของสายสัญญาณแบบ 2 เสน และ 4 เสน
แทบจะไมมีความแตกตางกันเลย ดังนั้นเพื่อลดความยุงยากในการเขียนโปรแกรมสําหรับควบคุมการ
รับสงขอมูลของ CPU ขอแนะนําใหเลือกใชวิธีการสื่อสารแบบ RS422 จะงายและสะดวกรวดเร็วกวา
กันมาก
GND
+VCC
ไมตองใช
TX-/RX-
TX+/RX+
ไมตองใช
TXD1
485 485
422 422
Half Half
Full Full
ทานในสายขึ้น ดังนั้นจึงตองทําการตอตัวตานทานจากภายนอกเขาไปเพื่อชดเชยคาความตานทานของ
สายสัญญาณดวย โดยเมื่อทําการ Short Jumper ตําแหนง TZ นี้ไวก็จะเปนการตอตัวตานทานครอม
ระหวาง TX+ และ TX-ไว แตถาหากตอสายสัญญาณที่ไมไกลมากนัก ก็ใหทําการ Open Jumper นี้
ออกได
โดยในบอรด CP-JRZ8F01 V1.0 นี้เราไดทําการ Short Jumper RL,RH,RZ และ TL,TH,TZ
มาใหเรียบรอยแลว ผูใชเพียงแตกําหนด Jumper 3 ชุดแรกที่กลาวขางตนใหถูกตองก็จะใชงานได
RZ TZ
RH TH
RL TL
+VCC GND
GND SCL
GND SDA
GND NC
GND NC
การใชงานขั้วตอ SPI
พอรต SPI นี้จะถูกตอออกมายังขั้วตอแบบ CPA ขนาด 6 PIN โดยการสื่อสารแบบ SPI นี้ก็
เปนการติดตอสื่อสารแบบอนุกรมอีกแบบหนึ่ง ซึ่งใน CPU เบอรนี้มีสวนของฮารดแวรที่ทําหนาที่ติด
ตอสื่อสารแบบ SPI บรรจุไวในตัว CPU แลว ซึ่งในการสื่อสารกันนั้นจะใชสายสัญญาณในการ รับ-
สง ขอมูลกัน จํานวน 4 เสนคือ SS , SCK , MOSI , MISO ซึ่งขาเหลานี้จะใชงานรวมกับ พอรต PC2
, PC3 , PC4 , PC5 ดังนั้นการใชงานก็จะตองกําหนดให CPU ทํางานในโหมดนี้เสียกอน คลายกับ I2C
โดยลักษณะของขั้วตอสัญญาณของพอรต SPI บนบอรด CP-JRZ8F01 V1.0 จะเปนดังรูป
SCK
GND
+VCC
SS
MOSI
MISO
โดยหนาที่ของแตละขาจะเปนดังนี้คือ
- SCK (SPI Serial Clock ) ทําหนาที่ในการกําหนดจังหวะการ รับ-สง ของขอมูล ที่ผานเขา
ออกทางสายสัญญาณ MOSI และ MISO และเมื่อ CPU ถูกกําหนดใหเปน Master ขา
SCK ก็จะทําหนาที่เปน Output สงสัญญาณ Clock ออกไปให อุปกรณที่เปน Slave
ถา CPU ถูกกําหนดใหเปน Slave ขา SCK จะถูกกําหนดใหเปน Input และสัญญาณ
Clock จาก Master จะตองไดจังหวะกับขอมูลที่สงระหวาง Master และ Slave โดย
ขา SCK นี้จะใชขาสัญญาณเดียวกับขา PC3
- MOSI (Master-Out , Slave –In ) ขาสัญญาณนี้จะทําหนาที่ในการรับสงขอมูล ซึ่งจะถูก
กําหนดใหเปน Output เมื่อ CPU ทํางานในโหมด Master และจะถูกกําหนดใหเปน
Input เมื่อ CPU ทํางานในโหมด Slave โดยขา MOSI นี้จะใชขาสัญญาณเดียวกับ
ขา PC4
- MISO ( Master-IN , Slave Out ) ทําหนาที่ในการรับสงขอมูล ซึ่งจะถูกกําหนดใหเปน
Input เมื่อ CPU ทํางานในโหมด Master และจะถูกกําหนดใหเปน Input เมื่อ CPU
ทํางานในโหมด Slave โดยขา MISO นี้จะใชขาสัญญาณเดียวกับขา PC5
- SS ( Slave Select ) จะทําหนาที่ในการเลือก Slave ของอุปกรณที่ใชการสื่อสารแบบ SPI
โดยจะทํางานที่ลอจิก “0” โดยขา SS นี้จะใชขาสัญญาณเดียวกับ PC2
เมื่อกําหนดให CPU ทํางานเปน Master ผูใชจะตอง กําหนด Jumper มาทางดาน MS ดังรูป
ซึ่งจะเปนการตอขาสัญญาณ SS เปนลอจิก “1” ไวซึ่งเปนการใชงานแบบ Multi-Master เพื่อปองกัน
Flag สถานะของ SPI เซต คาผิดพลาด แตถาใช CPU เปน Slave ก็กําหนด Jumper ไปทางดาน SL ดัง
รูป จะทําใหขา SS ถูกควบคุมในการเลือก Slaveโดยตัวอุปกรณ Master ที่เรานํามาตอแทน
SL / MS
SL / MS
Master Slave
รูป แสดงการกําหนด Jumper เมื่อใชงานเปน Master และ Slave
1. ตอสาย Download RS232 ที่ COM1 หรือ COM2 จากเครื่อง PC มายังบอรดที่จุด Download ดังรูป
ETT
COM1
COM2
ในโปรแกรมตัวอยางจากรูปนี้สามารถดูตัวโปแกรมที่สมบูรณไดจากดานลาง ซึ่งผูใชสามารถ
ทดลองนําไปเขียนและ Run ดูได โดยลักษณะของโปแกรมจะเปนไฟวิ่ง ซึ่งผูใชจะตองตอ LED ที่ขั้ว
ตอ 34 Pin ถาตองการจะดูผลการทํางาน
/////////////////////////////////////////////////////////////////////////
// PRO.Test Port //
// Use LED Connect at PA-PD common Cathod //
////////////////////////////////////////////////////////////////////////////
# include <stdio.h>
# include <ez8.h>
//--------- Delay -----------------
void delay (int count)
{
int i , j ;
for (i = 0; i <= count ; i++)
for (j = 0 ; j<= count ; j++) ;
}
//------- Main -------------------
main()
{ unsigned char x , y ;
PADD = 0X00 ; // PA = output,PA0-PA7
PBDD = 0X00 ; // PB = output,PB0-PB7
PCDD = 0X00 ; // PC = output,PC0-PC6
PDDD = 0X00 ; // PD = output,PD0,PD1,PD3
while(1)
{
//--------- LED run 1 Bit ----------
PAOUT = 0X01 ; // Data go Port PA
delay (300) ;
for (y = 0 ; y <= 7 ; y++)
{
PAOUT = PAOUT << 1 ; // Shift Data in Port A 1Bit
delay (300) ;
} // Shift Data จนครบ 7 Bit
การทํางานของปุมคําสั่งตางๆที่สําคัญในโปรแกรม
R-TRACKER 3
64 Kbyte
Flash
CPU Mcs51 P89C51RD2 PHILIPS
SENSOR ตรวจจับแสงตามเส้นแบบ 3 ช่อง
BATTERY SL6-1.3
ETT CO., LTD. 1112/96-98 Sukhumvit Rd., Phrakanong Bangkok Thailand 10110
Tel : 02-7121120 Fax : 02-3917216 www.ett.co.th email : sale@etteam.com www.ett.co.th