คูมือการใชงาน ET-dsPIC33WEB V1.0
1
ET-dsPIC33WEB V1.0
ET-dsPIC33WEB V1.0 เปนบอรดไมโครคอนโทรลเลอรในตระกูล dsPIC ของบริษัท Microchip โดยได
นําเอาไมโครคอนโทรลเลอรที่ประมวลผลขอมูลแบบ 16 บิต เบอร dsPIC33FJ128GP708 มาพัฒนาเปนบอรดใช
งาน ซึ่งคุณสมบัติเดนของ dsPIC33FJ128GP708 คือ หนวยประมวลผลสัญญาณดิจิตอล (Digital Signal
Processing) และ ทรัพยากรตางๆ ดังตอไปนี้
หนวยประมวลผล (CPU)
• ความเร็วในการประมวลผล 40 MIPS (16 Bit Data / 24 Bit Instruction Code)
• ฮารดแวรรองรับการคูณขอมูล 16 x 16 บิต โดยใชเวลาเพียง 1 ไซเคิลคําสั่ง
• ฮารดแวรรองรับการหารขอมูล 32-bit x 16 บิต
• C Compiler ถูกออกแบบใหมีความกระชับ Optimized Instruction Set
• รองรับการ Interrupt มากถึง118 Vector Interrupt จาก 63 แหลง 7 Priority Level Program
• รองรับการ DMA กับ Peripheral Hardware ได 8 ชอง พรอม DMA Buffer 2KByte
ระบบ (System)
• แหลงกําเนิดสัญญาณนาฬิกาสามารถเลือกได ทั้งจากภายในและภายนอก
• มีวงจร Power-Up Timer และ Oscillator Start-Up
• มีระบบตรวจสอบสัญญาณนาฬิกา (Fail-Safe Clock Monitor)
• ระบบ Watchdog Timer ที่ใชแหลงสัญญาณนาฬิกาแบบ RC oscillator ที่แยกจากสวนอ่ืนๆ
• ทํางานที่แรงดันระดับ 3.0 ถึง 3.6 โวลต
• I/O Pin 4mA Sink สามารถเชื่อมตอกับสัญญาณ 5VTTL ได (5V Tolerant)
• รองรับโหมดการทํางานแบบ Run, Idle และ Sleep modes
• สามารถปรับเปลี่ยนโหมดการทํางานของสัญญาณนาฬิกาไดหลากหลายเพื่อประสิทธิภาพ และ ให
สอดคลองกับการดูแลจัดการในเรื่องของพลังงาน
คุณสมบัติทางดานสัญญาณอนาลอก (Analog Features)
• โมดูลแปลงสัญญาณ Analog to Digital ความละเอียด 10-bit จํานวน 24 ชอง และสามารถโปรแกรมเปน
12Bit ได 2 ชอง ความเร็วในการ Sampling สัญญาณสูงสุด 1.1 MSPS
คูมือการใชงาน ET-dsPIC33WEB V1.0
2
คุณสมบตัิโดยทั่วไปของ MCU เบอร dsPIC33FJ128GP708
• หนวยความจําโปรแกรมแบบ Flash Memory ขนาด 128 K Byte
• หนวยความจําขอมูล SRAM ขนาด 16 K Byte
• I/O Ports ใชงานจํานวน 69 บิต(รวม Peripheral Function ตางๆ)
o โมดูลการสื่อสาร UART จํานวน 2 ชอง
o โมดูลการสื่อสารแบบ SPI จํานวน 2 ชองรองรับทั้ง Master และ Slave Modes
o โมดูลการสื่อสารแบบ I2C จํานวน 2 ชองรองรับทั้ง Master และ Slave Modes
o โมดูลการสื่อสารแบบ CAN จํานวน 2 ชอง
o โมดูล Timer ขนาด 16-bit จํานวน 9 ชอง และสามารถจับคูใชงานเปน Timer ขนาด 32 Bit ได
พรอมกันจํานวน 4 ชอง
o โมดูล Capture , Compare / PWM จํานวน 8 ชุด
o ระบบฮารดแวร RTCC, Real-Time Clock Calendar with Alarms ภายใน
o โมดูล ADC ขนาด 10Bit จํานวน 24 ชอง และสามารถโปรแกรมคาเปน 12Bit ได 2 ชอง
o ระบบการสื่อสารแบบขนาน DCI(Data Converter Interface) จํานวน 1 ชอง
คุณสมบตัิโดยทั่วไปของบอรด ET-dsPIC33WEB V1.0
- ใชไมโครคอนโทรเลอร dsPIC33FJ128GP708 ขนาด 80 PIN
- สัญญาณนาฬิกาคริสตอลออสซิลเลเตอรขนาด 8 MHz (สามารถใช PLL รันไดถึง 40 MHz)
- สัญญาณนาฬิกาคริสตอลออสซิลเลเตอรขนาด 32.768KHz สําหรับ RTC
- I/O Port ขนาด 10 PIN (จัดเรียงตามมาตรฐานของ อีทีที) จํานวน 9 พอรต
- ชุดวงจร Line Driver RS232 จํานวน 2 พอรต
- พอรตสําหรับตอ LCD เรียงตามมาตรฐานของ อีทีที (14Pin ET-CLCD) จํานวน 1 พอรต
- ขั้วตอสัญญาณดาวนโหลดโปรแกรมแบบ ICD2 และ สวิตชตัดตอสัญญาณ Run / Program
- วงจร LED สําหรับใชทดลองเอาตพุตแบบ Digital จํานวน 8 ชอง
- วงจรสวิตช Push-Button สําหรับใชทดลองอินพุตแบบ Digital จํานวน 4 ชอง
- วงจรสรางแรงดัน 0-3.3V จากตัวตานทานปรับคาได สําหรับทดลองโมดูล A/D จํานวน 1 ชอง
- พอรตสําหรับเชื่อมตอกับโมดูล Ethernet รุน ET-MINI ENC28J60(ใช SPI1)
- พอรตเชื่อมตอกับหนวยความจํา EEPROM 25LCxxx จํานวน 1 ชอง(ใช SPI2)
- ชุด Regulate แบบ Switching สําหรับแปลงไฟ DC Input ใหเปน 5V และ 3.3 V
- LED สถานะสําหรับ Power(แดง),Program(แดง) และ Run(เขียว)
- ขั้วตอแรงดันไฟ VCC และ GND ใชไดกับไฟ 7-12 VDC
คูมือการใชงาน ET-dsPIC33WEB V1.0
3
โครงสรางบอรด ET-dsPIC33WEB V1.0
อธิบายรายละเอียดตามหมายเลขไดดังตอไปน้ี
• หมายเลข 1 พอรตเชื่อมตอสัญญาณแบบ RS-232 จํานวน 2 พอรต มีวงจรการเชื่อมตอดังตอไปนี้
คูมือการใชงาน ET-dsPIC33WEB V1.0
4
1 2
3 4
5 6
7 8
9 10
RD0 RD1RD2 RD3RD4 RD5
+3.3V GND
PORTD-L
RD6 RD7
• หมายเลข 2 พอรต ET-CLCD สําหรับเชื่อมตอกับจอแสดงผล LCD แบบตัวอักษร (Character LCD)
โดยมีการจัดวางขาสัญญาณตางๆ ดังตอไปนี้
• หมายเลข 3 , 4 , 5 , 6 , 7, 8 , 9, 10 และ 11 คือ พอรต I/O ของไมโครคอนโทรเลอร ที่ถูกออกแบบ
ใหอยูในรูปแบบของพอรตมาตรฐาน 10-PIN ETT โดยในแตละพอรตมีการจัดเรียงสัญญาณดังตอไปนี้
คูมือการใชงาน ET-dsPIC33WEB V1.0
5
1 2
3 4
5 6
7 8
9 10
RG0 RG1RG2 RG3RG6 RG7
+3.3V GND
PORTG-L
NC NC
1 2
3 4
5 6
7 8
9 10
RG8 RG9RG12 RG13RG14 RG15
+3.3V GND
PORTG-H
NC NC
1
2
RF8
RF8
• หมายเลข 12 พอรตสัญญาณ I/O ขนาด 2 PIN คือ สัญญาณ RF8 และ GND ดังตอไปนี้
* NC = No Connect
คูมือการใชงาน ET-dsPIC33WEB V1.0
6
• หมายเลข 13 ขั้วตอสําหรับดาวนโหลดโปรแกรม เปนขั้วที่จัดเรียงตามมาตรฐานของ ICD2 รองรับเครื่อง
โปรแกรมที่มีการเชื่อมตอตามมาตรฐานของ ICD2 เชน PICKit2 , ICD2 และ เครื่องโปรแกรมของทาง
บริษัท อีทีที คือ ET-PGMPIC USB โดยกอนทําการโปรแกรมทุกครั้งตองกดสวิตช MODE ใหมาอยูที่
ตําแหนง PGM ทุกครั้ง เพื่อตัดตอขาสัญญาณมาเขากับเครื่องโปรแกรมจากภายนอก
• หมายเลข 14 สวิตชเลือกโหมด RUN และ PGM สวิตชนี้ เมื่อกดมาที่ตําแหนง PGM จะทําหนาที่ตัดตอ
ขาสัญญาณที่ใชในการโปรแกรมโคดขอมูลเขากับเครื่องโปรแกรม เพื่อทําการโปรแกรมขอมูลโปรแกรมที่
เราออกแบบ และ เมื่อกดปลอยกลับมาที่ตําแหนง RUN ขาสัญญาณตางๆ จะกลับมาเปน I/O ใชงานได
ตามปรกติ
คูมือการใชงาน ET-dsPIC33WEB V1.0
7
1 2
3 4
5 6
7 8
9 10
RG6 (SCK) RG7(SO)RG8 (SI) RD12 (CS)
NC NC
+3.3V GND
SPI MEMORY
NC NC
จัมเปอรสําหรับการเลือกการเชื่อมตอสัญญาณ RA12, RD15 และ RA13
ของไมโครคอนโทรลเลอร กับขาสัญญาณ INT, RST และ WOL ของโมดูล
ET-MINI ENC28J60
DIS = Disable คือ ไมเชื่อมตอสัญญาณ
EN = Enable คือ เชื่อมตอสัญญาณ
• หมายเลข 15 ขั้วตอ DC-JACK สัญญาณไฟเลี้ยงบอรด รองรับแรงดันไฟจากภายนอก 7-12 VDC
• หมายเลข 16 สวิตชรีเซต (Reset Switch)
• หมายเลข 17 ไอซีไมโครคอนโทรเลอร dsPIC33FJ128GP708
• หมายเลข 18 หนวยความจํา EEPROM เบอร 25LCxxx ของ บริษัท Microchip เชือ่มตอแบบ SPI
• หมายเลข 19 ขั้วสัญญาณเชื่อมตอกับโมดูลสื่อสาร Ethernet รุน ET-MINI ENC28J60
คูมือการใชงาน ET-dsPIC33WEB V1.0
8
2-Pin CON10K
SW-Button
+3.3V
2-Pin CON10K
SW-Button
+3.3V
2-Pin CON10K
SW-Button
+3.3V
2-Pin CON10K
SW-Button
+3.3V
• หมายเลข 20 ชุด Test I/O LED ประกอบดวยหลอดไฟ LED จํานวน 8 ชุด ดังวงจรตอไปนี้
• หมายเลข 21 ชุดทดลองสัญญาณอินพุท จากสวิตช 4 ชุด สามารถสรางสัญญาณลอจิก 0 (0 โวลท) และ
ลอจิก 1 ( +3.3 โวลท) ดังวงจรตอไปนี้
• หมายเลข 22 ชุดทดลองแรงดันอนาลอก 4 ชุด สามารถปรับระดับแรงดันไฟไดตองแต 0 – 3.3 โวลท โดย
มีการตอวงจรดังตอไปนี้
• หมายเลข 23 พื้นที่อเนกประสงค สําหรับตอวงจรเพิ่มเติม
คูมือการใชงาน ET-dsPIC33WEB V1.0
9
โมดูล ET-MINI ENC28J60
ET-MINI ENC28J60 เปนโมดูลที่ออกแบบมาเพื่อเปนตัวกลางในการเชื่อมตอระบบการสื่อสารระหวาง
ไมโครคอนโทรลเลอร กับโครงขาย Ethernet รองรับการทํางานของโปรโตคอล TCP/IP โดยใชไอซี ENC28J60 ซึ่ง
เปนไอซี Ethernet Controller รองรับมาตรฐานการสื่อสาร IEEE 802.3 เชื่อมตอสัญญาณควบคุมผาน SPI Bus
ความเร็วสูงสุด 10 Mb/s ในการพัฒนาโปรแกรมทางบริษัท Microchip จะสนับสนุนตัว Microchip TCP/IP Stack
ซึ่งสามารถดาวนโหลด และ นําไปใชไดฟรีที่เว็ปไซตของ Microchip (www.microchip.com) โดยคุณสมบัติคราวๆ
ของ ENC28J60 จะเปนดังนี้
คุณสมบัติของ IC ENC28J60
General:
• IEEE 802.3 compatible Ethernet Controller
• Integrated MAC and 10BASE-T PHY
• 8 Kbyte Transmit/Receive Packet Dual Port Buffer SRAM
• Programmable Automatic Retransmit on Collision
• Programmable Padding and CRC Generation
• Programmable Automatic Rejection of Erroneous Packets
• SPI™ Interface with speeds up to 10 Mb/s
• Supports Full and Half-Duplex modes
Buffer:
• Configurable transmit/receive buffer size
• Hardware managed circular receive FIFO
• Byte-wide random and sequential access
• Internal DMA for fast memory copying
• Hardware assisted IP checksum calculation
PHY:
• Wave shaping output filter
• Loopback mode
คูมือการใชงาน ET-dsPIC33WEB V1.0
10
MAC:
• Support for Unicast, Multicast and Broadcast packets
• Programmable pattern matching of up to 64 bytes within packet at user defined offset
• Programmable wake-up on multiple packet formats,including Magic Packet®, Unicast,
Multicast, Broadcast,specific packet match or any packet
การเชื่อมตอกับไมโครคอนโทรลเลอร สามารถทําไดโดยงาย โดยจะใชการเชื่อมตอแบบ SPI Bus ซึ่งจะใช
ขาสัญญาณเพียงไมก่ีขา และ ในสวนของระบบไฟ เนื่องจาก ENC28J60 เปนไอซีที่ทํางานที่แรงดัน 3 โวลท ดังนั้น
เพื่อใหสามารถใชงานไดกับไมโครคอนโทรลเลอรที่ทํางาน 5 โวลท ทางทีมงานจึงไดออกแบบ วงจรบัฟเฟอร สําหรับ
รองรับการเชื่อมตอระบบไฟ ระหวาง 3 โวลท กับ 5 โวลท เอาไวภายในบอรด ET-MINI ENC28J60 ซึ่งสามารถ
เลือกระบบไฟไดโดยการเลือก จัมพเปอร 5V/3V3
รูปแสดงบล็อกไดอะแกรมการเชื่อมตอ ENC28J60 กับ ไมโครคอนโทรลเลอร
คูมือการใชงาน ET-dsPIC33WEB V1.0
11
+5V
+3.3V
VDD
รูปแสดงโครงสรางของบอรด ET-MINI ENC28J60
จากรูป HD1 และ HD2 ออกแบบไวสําหรับการเชื่อมตอกับบอรด ET-dsPIC33WEB V1.0 โดยสามารถ
เสียบบอรด ET-MINI ENC28J60 ซอนทับบนบอรด ET-dsPIC33WEB V1.0 เขากับขั้ว Connector ตัวเมียที่
จัดเตรียมไวใหไดทันที สวน HD3 ออกแบบไวสําหรับนําไปใชเชื่อมตอกับไมโครคอนโทรเลอรอ่ืนๆตามตองการ
คําเตือน : จะตองเลือกจัมเปอรใหถูกตองตามการใชงานจริงไมเชนนั้นอาจเกิดความเสียหายแกอุปกรณได
คูมือการใชงาน ET-dsPIC33WEB V1.0
12
ชื่อสัญญาณ ชนิดของสัญญาณ หนาท่ีการทํางาน
CS INPUT สัญญาณ Enable/Disable การเชื่อมตอ SPI Bus ของ ENC28J60
CS = 0 คือ Enable การเชื่อมตอ SPI ของ ENC28J60
CS = 1 คือ Disable การเชื่อมตอ SPI ของ ENC28J60
SDO OUTPUT สัญญาณ Serial Data Output
SCK INPUT สัญญาณนาฬิกา Serial Clock
SDI INPUT สัญญาณ Serial Data Input
INT OUTPUT สัญญาณอินเตอรรัพท แอคทีฟ ลอจิก 0
RST INPUT สัญญาณรีเซต แอคทีฟ ลอจิก 0
WOL OUTPUT สัญญาณ Wake-up on LAN interrupt แอคทีฟ ลอจิก 0
CLKO OUTPUT สัญญาณ Programmable clock output
LEDA OUTPUT แสดงสถานะของสัญญาณ LINK
LEDB OUTPUT แสดงสถานะของสัญญาณ ACT
ตาราง แสดงชื่อและหนาท่ีขาสัญญาณตางๆ ของ ENC28J60
ENC28J60 ET-dsPIC33WEB V1.0
(dsPIC33FJ128GP708)
CS RD14
SDO RF8
SCK RF6
SDI RF7
INT RA12 (เลือกใชโดยจัมเปอร)
RST RD15 (เลือกใชโดยจัมเปอร)
WOL RA13 (เลือกใชโดยจัมเปอร)
CLKO -
LEDA -
LEDB -
ตารางแสดง สัญญาณการเชื่อมตอระหวางบอรด ENC28J60 กับ ET-dsPIC33WEB V1.0
คูมือการใชงาน ET-dsPIC33WEB V1.0
13
สรุปการจัดสรรและใชงานทรัพยากรของบอรด ET-dsPIC33WEB V1.0
ตามปรกติแลว MCU เบอร dsPIC33FJ128GP708 ที่ใชกับบอรด ET-dsPIC33WEB V1.0 นั้น จะมี
ขาสัญญาณใหใชงานไดโดยอิสระมากถึง 69 I/O แตจะมีขาสัญญาณบางสวน ถูกออกแบบและเชื่อมตอไวกับ
อุปกรณ I/O เปนการเฉพาะไวเรียบรอยแลว ไมสามารถนํามาใชเปน I/O โดยทั่วไปได ซึ่งพอสรุปไดดังนี้
MCU Oscillator
• RC12 ใชเปน OSC1 ตอกับ Crystal คา 8.00MHz สําหรับใชเปนสัญญาณนาฬิกาของ MCU
• RC15 ใชเปน OSC2 ตอกับ Crystal คา 8.00MHz สําหรับใชเปนสัญญาณนาฬิกาของ MCU
RTC Oscillator
• RC13 ใชเปน OSC1 ตอกับ Crystal คา 32.768KHz สําหรับใชเปนสัญญาณนาฬิกาของ RTC
• RC14 ใชเปน OSC2 ตอกับ Crystal คา 32.768KHz สําหรับใชเปนสัญญาณนาฬิกาของ RTC
พอรตส่ือสารอนุกรม(UART) RS232-CH1
• RF2 ใชเปนขา RXD สําหรับรับขอมูลจาก RS232 ชอง-1
• RF3 ใชเปนขา TXD สําหรับสงขอมูลให RS232 ชอง-1
พอรตส่ือสารอนุกรม(UART) RS232-CH2
• RF4 ใชเปนขา RXD สําหรับรับขอมูลจาก RS232 ชอง-2
• RF5 ใชเปนขา TXD สําหรับสงขอมูลให RS232 ชอง-2
Ethernet Module (SPI-1)
• RF6 ใชเปน SCK ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
• RF7 ใชเปน SDI ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
• RF8 ใชเปน SDO ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
• RD14 ใชเปน CS ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
• RA12 ใชเปน INT1 ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60) โดยสามารถเลือกใช
หรือไมใชได โดยการกําหนดที่ Jumper INT(EN/DS) ซึ่งตามปรกติเลือกเปน DS(Disable:ไมใชงาน)
• RA13 ใชเปน WOL ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)โดยสามารถเลือกใช
หรือไมใชได โดยการกําหนดที่ Jumper WOL(EN/DS) ซึ่งตามปรกติเลือกเปน DS(Disable:ไมใชงาน)
• RD15 ใชเปน RST ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)โดยสามารถเลือกใช
หรือไมใชได โดยการกําหนดที่ Jumper RST(EN/DS) ซึ่งตามปรกติเลือกเปน DS(Disable:ไมใชงาน)
คูมือการใชงาน ET-dsPIC33WEB V1.0
14
SPI Memory Module (SPI-2)
• RG6 ใชเปน SCK ในการเชื่อมตอกับ SPI Memory
• RG7 ใชเปน SDI ในการเชื่อมตอกับ SPI Memory
• RG8 ใชเปน SDO ในการเชื่อมตอกับ SPI Memory
• RD12 ใชเปน CS ในการเชื่อมตอกับ SPI Memory
Character LCD Display
• RD0 ใชเปน LCD D4 ในการเชื่อมตอกับ Character LCD แบบ 4 Bit
• RD1 ใชเปน LCD D5 ในการเชื่อมตอกับ Character LCD แบบ 4 Bit
• RD2 ใชเปน LCD D6 ในการเชื่อมตอกับ Character LCD แบบ 4 Bit
• RD3 ใชเปน LCD D7 ในการเชื่อมตอกับ Character LCD แบบ 4 Bit
• RD4 ใชเปน LCD RS ในการเชื่อมตอกับ Character LCD แบบ 4 Bit
• RD5 ใชเปน LCD RW ในการเชื่อมตอกับ Character LCD แบบ 4 Bit
• RD6 ใชเปน LCD EN ในการเชื่อมตอกับ Character LCD แบบ 4 Bit
12
34
56
A B C D
65
43
21
DCBA
Title
Num
berRevision
Size
BDate:
21-Aug-2007
Sheet of File:
D:\ET-dsPIC33W
EB.Ddb
Draw
n By:
C12
10uF
C11
0.1uF
+3.3V
C60.1uF
C70.1uF
C80.1uF
C90.1uF
+3.3V
X1
8MH
z
C1422pF
C1522pF
12
34
56
78
910
CN3
PORTA
12
34
56
78
910
CN5
PORTB-L
12
34
56
78
910
CN8
PORTC
12
34
56
78
910
CN10
PORTD
-L
12
34
56
78
910
CN11
PORTD
-H
+3.3V
+3.3V
+3.3V
+3.3V
+3.3V
RA2
RA6
RA3
RA7
RB0RB2RB4RB6
RB8RB10RB12
RB1RB3RB5RB7
RB9RB11RB13RB15
RC1RC2RC4
RC3
RD0
RD2
RD4
RD6
RD8
RD10
RD12
RD14
RD9
RD11
RD13
RD15
RD1
RD3
RD5
RD7
12
34
56
78
910
CN13
PORTF-L
+3.3V
RF0RF2RF4RF6
RF1RF3RF5RF7
12
34
56
78
910
CN4
PORTG
-L
+3.3V
RG0
RG2
RG6
RG1
RG3
RG7
12
34
56
78
910
CN6
PORTG
-H
+3.3V
RG8
RG12
RG14
RG9
RG13
RG15
12
CN9
RF8
RF8
12
34
56
78
910
1112
1314
CN12
ET-CLCD
VR2
10K
+5V
RD4
RD6
RD1
RD3
RD2
RD0
RD5
+VG
ND
RSV
OEN
RWD0
D1
D2
D3
D4
D5
D6
D7
123456
CN14
ICD2
C130.1uF
R184K
7 +3.3V +3.3V
RB6
RB7
C1+1
C1-3
C2+4
C2-5
R1O12
T1I11
R2O9
T2I10
VCC
16
V+
2
V-
6
GN
D15
R1I13
T1O14
R2I8
T2O7
U1
ICL3232
1234
CN2
RS232-CH2
1234
CN1
RS232-CH1 +3.3V
+3.3V
C10.1uF
+3.3V
C20.1uF
C40.1uF
C30.1uF
C50.1uF
X2
32.768kHz
C1722pF
C1622pF
RC13
RC14
12
34
56
78
910
HD
3SPI M
EMO
RY
+3.3V
SW6
RESET
RG6
RG8
RG7
RD12
12345678
HD
1
12345678
HD
2+3.3VRF8
RF6RF7RD
14
RF2RF3
RF5RF4
JP1
JP2RD
15
RA12
ET-MIN
I ENC28J60
JP3RA
13
132
465
798
101211
SW5
MO
DE
RUN
PROG
LED9
PGM
LED10
RUN
R15
470
+3.3V
SDO
2/CN10/RG
88
SS2/CN11/RG
910
CSDI/RG
1279
IC8/U1RTS/CN
21/RD15
38IC7/U
1CTS/CN20/RD
1437
IC3/RD10
56
IC4/RD11
57
IC5/RD12
64
MCLR
9
VSS11
VDD 12CSD
O/RG
1380
CSCK/RG
1478
PGC3/EM
UC3/A
N1/CN
3/RB119
PGD
3/EMU
D3/A
N0/CN
2/RB020
TDO
/AN
21/INT2/RA
1314
TMS/A
N20/IN
T1/RA12
13V
REF+/RA10
24V
REF-/RA9
23
IC6/CN19/RD
1365
AN
2/SS1/CN4/RB2
18
AN
3/CN5/RB3
17
SCL2/INT3/RA
252
SDA
2/INT4/RA
353
AVDD 25
AVSS26
AN
4/CN6/RB4
16
AN
5/CN7/RB5
15
PGC1/EM
UC1/A
N6/O
CFA/RB6
21
PGD
1/EMU
D1/A
N7/RB7
22
VSS31
VDD 32
U2CTS/A
N8/RB8
27
AN
9/RB928
AN
10/RB1029
AN
11/RB1130
SCK1/IN
T0/RF645
SDI1/RF7
44
OC4/RD
363
OC5/CN
13/RD4
66
PGC2/EM
UC2/SO
SCO/T1CK
/CN0/RC14
60
PGD
2/EMU
D2/SO
SCI/CN1/RC13
59
TCK/A
N12/RB12
33
U1TX
/RF341
U1RX
/RF242
C1TX/RF1
73C1RX
/RF072
AN
23/CN23/RA
777
AN
22/CN22/RA
676
VSS51
OSC2/CLK
O/RC15
50
OSC1/CLK
I/RC1249
VDD 48
IC1/RD8
54
IC2/RD9
55
OC6/CN
14/RD5
67
OC7/CN
15/RD6
68
OC8/CN
16/RD7
69
OC2/RD
161
OC3/RD
262
TDI/A
N13/RB13
34
U2RTS/A
N14/RB14
35
AN
15/OCFB/CN
12/RB1536
U2RX
/CN17/RF4
39
U2TX
/CN18/RF5
40
AN
16/T2CK/T7CK
/RC12
AN
17/T3CK/T6CK
/RC23
AN
18/T4CK/T9CK
/RC34
AN
19/T5CK/T8CK
/RC45
VDDCORE 70
VDD 71
COFS/RG
151
OC1/RD
058
C2TX/RG
174
C2RX/RG
075
SDO
1/RF843
SCL1/RG2
47
SDA
1/RG3
46
SCK2/CN
8/RG6
6
SDI2/CN
9/RG7
7
U2
dsPIC33FJ128GP708
C100.1uF
RA2
RA3
RA6
RA7
RA9
RA10
RA12
RA13
RF0RF1RF2RF3RF4RF5RF6RF7RF8
RC1RC2RC3RC4
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7
RD8
RD9
RD10
RD11
RD12
RD13
RD14
RD15
RB0RB1RB2RB3RB4RB5PG
C1PG
D1
RB8RB9RB10RB11RB12RB13RB14RB15
RG0
RG1
RG2
RG3
RG6
RG7
RG8
RG9
RG12
RG13
RG14
RG15
PGC1
PGD
1
RA9
RA12
RA10
RA13
RC13RC14
R191M
IN3
GND1
OU
T2
U4
AP1117-5.0
C220.1uF
C240.1uF
C21220uF/25V
C2347uF/16V
J17-12V
DC
+5V
LED11
POW
ER
R22470
+3.3V
IN1
FB4
OU
T2
GND3
ON/OFF5
U3
LM2575-3.3
L1
220uH
D2
1N5819
C190.1uF/50V
D1
1N4001
C20100uF/16V
+3.3V
R20N
LR21N
L
R161K
R17100
R13470
R14470
C18
10uF/16V
12
34
56
78
910
CN7
PORTB-H
RB14
+3.3V
Circuit of ET-dsPIC33WE V
1.0
ETT CO.,LTD
(WW
W.ETT.CO
.TH)
1.0
12
12
34
A B C D
43
21
DCBATitle
Num
berRevision
Size
A4
Date:
21-Aug-2007
Sheet of File:
D:\ET-dsPIC33W
EB.Ddb
Draw
n By:
LED1
R1
470
+3.3V
SW2
R10
10K
LED2
R2
470
LED3
R3
470
LED4
R4
470
VR1
10K
SW1
R910K
SW3
R11
10K
SW4
R12
10K
LED5
R5
470
LED6
R6
470
LED7
R7
470
LED8
R8
470
+3.3V+3.3V
1 2
HD
6
HEA
DER 2
1 2
HD
9
HEA
DER 2
1 2
HD
8
HEA
DER 2
1 2
HD
7
HEA
DER 2
1 2
HD
5
HEA
DER 2
12345678
HD
4H
EAD
ER 8
Circuit of ET-dsPIC33WEB V
1.0
ETT CO.,LTD
(WW
W.ETT.CO
.TH)
1.0
22
12
34
A B C D
43
21
DCBATitle
Num
berRevision
Size
A4
Date:
3-Sep-2007 Sheet of
File:D
:\ET-MIN
I ENC28J60.ddb
Draw
n By:
8
142356
7
CHS G
ND
NC
1CT:1
TD+
TD-
CTRD+
CTRD-
TX+
TX-
RX+
RX-
6 3 2 14578
J1RJ45_PRJ-005
R11
2K7 1%
C11
10uF
VD
D
C30.1uF
C40.1uF
C50.1uF
C60.1uF
C70.1uF
VD
D
VD
D28
VD
DO
SC25
VD
DPLL
20
VD
DRX
19
VD
DTX
15
VCA
P1
TPOU
T+17
TPOU
T-16
TPIN+
13
TPIN-
12
LEDA
27
LEDB
26
RBIAS
14V
SSRX11
VSSTX
18V
SSPLL21
VSSO
SC22
VSS
2
WO
L5
INT
4
OSC1
23
OSC2
24CLK
OU
T3
RESET10
CS9
SCK8
SI7
SO6
U1
ENC28J60-SO
IC
X1
25MH
z
C1233pF
C1333pF
R6180
R5180
R7180
R8180
R250
R350
L1FB
C2
0.1uF
R150
R450
C1
0.1uF
VD
D
SDO
SCKCSRST
LINT
LWO
L
LSO
TPOU
T+
TPOU
T-
TPIN+
TPIN-
TPOU
T+TPO
UT-
TPIN+
TPIN-
LED2
LINK
LED1
ACT
R9180
R10180
LCLKO
UT
23
1
U2A
74AH
C125
56
4
U2B
74AH
C125
98
10
U2C
74AH
C125
1211
13
U2D
74AH
C125
LCLKO
UT
CLKO
LINT
LWO
LW
OL
INT
SDI
LCS
LSO
LCS
147
VCC
C80.1uF
VCC
IN
GND
OU
T
U3
LM3940-3.3
C90.1uF
C100.1uF
C1447uF/16V
JP1V
oltage Selection
VD
D
VCC
LED3
PWR
R12330
VD
D
12345678910
HD
3V
CC
CSSDO
SDI
SCK
RSTIN
T
WO
LCLK
O
VCC
RSTIN
T
WO
LCS SD
O
SDI
SCK
Circuit of ET-MIN
I ENC28J60
U2
12345678
HD
1
12345678
HD
2
CLKO
1-2=5V2-3=3.3V
1 2 3
ZD1
3V6
LEDA
LEDB
LEDB
LEDA
VD
D
11
WW
W.ETT.CO
.TH1.0
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -1- WWW.ETT.CO.TH
การพัฒนาโปรแกรมของบอรด
สําหรับการพัฒนาโปรแกรมของบอรด “ET-dsPIC33WEB V1.0” นั้น จะแบงออกเปน 2 สวน
ดวยกัน คือ สวนของการพัฒนาโปรแกรม และการ Download โปรแกรม โดยในสวนของการพัฒนา
โปรแกรมของบอรดนั้น จะเปนการเขียนโปรแกรมเพื่อควบคุมและสั่งงานให MCU สามารถทํางานตาม
จุดประสงคที่ไดออกแบบไว ซึ่งในสวนนี้เปนหนาที่ของผูพัฒนาโปรแกรม วาจะเลือกใชภาษาใดในการ
พัฒนาโปรแกรม รวมไปถึงการเลือกใชโปรแกรมสําหรับทําหนาที่แปลคําสั่งของภาษานั้นๆ ใหเปนรหัสคําสั่ง
ในรูปแบบของ HEX File สําหรับใช Download ใหกับหนวยความจําโปรแกรม (Flash Memory) ของ MCU
เพื่อสั่งงานให MCU ปฏิบัติตามคําสั่งในโปรแกรมที่ผูพัฒนาโปรแกรมเขียนขึ้นมา
สําหรับสวนของการ Download โปรแกรม หรือการ Download HEX File ที่ไดจากการพัฒนา
โปรแกรมใหกับหนวยความจําโปรแกรม (Flash Memory) ของ MCU นั้น จะตองอาศัยเครื่องมือทาง
ฮารดแวรเปนสวนประกอบในการพัฒนาโปรแกรมดวย ซึ่งในกรณีของบอรด “ET-dsPIC33WEV V1.0” นั้น
จะตองใช เครื่องมือสําหรับโปรแกรมขอมูลใหกับ MCU ภายในบอรดดวยวิธีการแบบ In-Circuit โดยตองใช
เครื่อง Programmer หรือใชชุดพัฒนาโปรแกรมจําพวก In-Circuit Debugger ที่สนับสนุนการใชงาน
รวมกับ MCU เบอร dsPIC33FJ128GP708 ซึ่งใชขั้วตอสัญญาณตรงตามมาตรฐาน “ICD2” ของ
Microchips เชน ICD2,Pickit2 ซึ่งทางบริษัท อีทีที ก็มีสนับสนุน คือ “ET-PGMPIC USB” ดังตัวอยาง
ET-dsPIC33WEB V1
ET-PGMPIC USB
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -2- WWW.ETT.CO.TH
การเขียนโปรแกรมใชงานกับบอรดโดยใช MPLAB C30 MPLAB C30 หรือ C30 Tools เปนโปรแกรมภาษาซี สําหรับใชแปลคําสั่งของ MCU ตระกูล dsPIC
ซึ่งไดรับการพัฒนาขึ้นโดย Microchips เอง โดยขอกําหนดและรายละเอียดของการเขียนโปรแกรมภาษาซี
นั้น จะไมกลาวถึงในที่นี้ดวย โดยถาผูใชตองการพัฒนาโปรแกรมใหกับ dsPIC ดวยภาษาซี แตยังไมมี
ความรูเรื่องการเขียนโปรแกรมภาษาซีเลยนั้นขอแนะนําให หาหนังสือที่อธิบายเกี่ยวกับการเขียนโปรแกรม
ภาษาซีในสวนที่เปนมาตรฐานตามขอกําหนดของ “ANSI C” มาศึกษาใหเขาใจเสียกอน และสําหรับสวน
ของขอกําหนดปลีกยอยอ่ืนๆที่เปนของ MPLAB C30 เองก็สามารถอานเพิ่มเติมไดจากเอกสารและคูมือการ
ใชงานของ MPLAB C30 ที่ทาง Microchips จัดทําไวได โดยสามารถ Download จาก Website ของ
Microchips หรือจาก Folder ของ “C:\Program Files\Microchip\MPLAB C30\docs” ที่ทําการติดต้ัง
โปรแกรม MPLAB C30 ไวก็ได โดยในที่นี้ จะขอกลาวแนะนําถึงเฉพาะสวนของการกําหนดคาตัวเลือกใน
โปรแกรมเพื่อใชงานรวมกับบอรด “ET-dsPIC33WEB V1.0” เทานั้น โดยในการที่จะใชงานโปรแกรม
MPLAB C30 ในการเขียนโปรแกรมนั้น ผูใชจําเปนตองทําการติดต้ังโปรแกรมของ Microchips จํานวน 2
โปรแกรมดังนี้คือ
MPLAB IDE ซึ่งเปนโปรแกรม Text Editor ของ Microchips ซึ่งในปจจุบัน (ตุลาคม 2548)
จะเปนรุน 7.21 แลวสามารถ Download มาใชงานไดฟรีจาก Web ของ Microchips
MPLAB C30 ซึ่งเปนตัวแปลภาษาซี (C Complier) ใหเปนรหัสคําสั่งของ dsPIC ซึ่งตาม
ปรกติแลวโปรแกรมชุดนี้จะตองซื้อมาใชงานเอง แตอยางไรก็ตามทาง Microchips เองมี
รุนทดลองใชงานใหผูใชสามารถ Download มาใชงานไดเชนเดียวกันกับ MPLAB IDE
โดยโปรแกรมทั้ง 2 ชุดนี้ ทางอีทีที ไดทําการ Download มาจัดเตรียมไวใหในแผน CD-ROM ที่แถม
ไปกับบอรดของ “ET-dsPIC33WEB V1.0” ดวยอยูแลว โดยในการติดต้ังโปรแกรมนั้นขอแนะนําใหผูใชทํา
การติดต้ังโปรแกรมในชุดของ MPLAB IDE กอนเปนอันดับแรก โดยขอแนะนําใหติดต้ังโปรแกรมของ
MPLAB IDE ไวตามคา Default ของโปรแกรมติดต้ังเลย คือ “C:\Program Files\Microchip\MPLAB IDE\"
จะสะดวกตอการใชงานมากกวา ซึ่งหลังจากทําการติดต้ังโปรแกรม MPLAB IDE เสร็จเรียบรอยแลวในครั้ง
แรกกอนการใชงานนั้นตองสั่ง Restart เครื่องคอมพิวเตอรกอน หลังจากนั้นแลว MPLAB IDE จึงจะ
สามารถทํางานไดโดยไมเกิดปญหา จากนั้นจึงทําการติดต้ังโปรแกรม MPLAB C30 เปนลําดับถัดไป โดยขอ
แนะนําใหทําการติดต้ังโปรแกรมชุดนี้ไวตามคา Default ของการติดต้ังโปรแกรม จะเกิดความสะดวกตอการ
ใชงานมากที่สุด โดยเฉพาะในขั้นตอนของการกําหนดการเชื่อมโยงการทํางานระหวาง MPLAB IDE และ
MPLAB C30 โดยในที่นี้จะขออธิบายโดยอางถึงตําแหนงการติดต้ังโปรแกรมดังที่กลาวไวแลวขางตนเทานั้น
ซึ่งถาผูใชทําการสั่งติดต้ังโปรแกรมไวยังตําแหนง Folder ที่แตกตางไปจากนี้แลวขอใหทําความเขาใจและ
ดัดแปลงวิธีการกําหนดคาเองตามที่ติดต้ังโปรแกรมไวจริงๆดวย
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -3- WWW.ETT.CO.TH
ตัวอยางการสรางโปรแกรมภาษาซีของ MPLAB C30
เมื่อทําการติดต้ังโปรแกรมกําหนดการเชื่อมโยงคําสั่งระหวาง MPLAB IDE และ MPLAB C30 เปน
ที่เรียบรอยแลว ตอจากนี้ไป ผูใชก็สามารถทําการเรียกใชงานโปรแกรม MPLAB C30 ผานทางโปรแกรม
MPLAB IDE ไดแลว โดยคาตัวเลือกตางๆที่ไดกําหนดไวแลวนั้นจะถูกเก็บไวใน Configuration ของ
โปรแกรมตลอดไป จนกวาจะมีการสั่งเปลี่ยนแปลงใหม ซึ่งในที่นี้จะขอยกตัวอยางการเขียนโปรแกรม
ภาษาซี ของ MPLAB C30 สัก 1 ตัวอยางพอเปนแนวทางใหผูใชทําความเขาใจ โดยมีลําดับขั้นตอนดังนี้
1. สั่ง Run Program ของ MPLAB IDE ขึ้นมา จากน้ันก็สั่งสรางไฟลใหมขึ้นมา 1 ไฟล สําหรับเขียน
Source Code ภาษาซี โดยใชคําสั่ง “File → New” จากนั้นใหทําการพิมพ Source Code ภาษาซี
ใน Work Sheet ของโปรแกรม MPLAB IDE ดังตัวอยาง
2. ทําการสั่งบันทึกไฟลที่เขียนขึ้นใหเปน Text File ภาษาซี โดยใหทดลองกําหนดชื่อเปน “main.c”
แลวสั่งบันทึกไวใน Folder ชื่อ “…\Microchip\MPLAB C30\examples\led_blink\main.c” โดยใน
ที่นี้ใหใชคําสั่ง “File → Save As…” แลวสราง Folder ชื่อ led_blink ไวภายใต Folder ของ
examples อีกชั้นหนึ่ง แลว กําหนดชื่อเปน “main.c” แลวเลือก “Save” ดังรูป
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -4- WWW.ETT.CO.TH
ซึ่งจะเห็นวาเมื่อทําการสั่งบันทึกไฟลเปน “main.c” ไปแลว กลุมของตัวอักษรตางๆที่ไดพิมพไว จะ
ถูกจัดแบงกลุม โดยใชสีในการแสดงผลที่แตกตางกันไปตามหนาที่ของกลุมตัวอักษร เชน กลุมตัวอักษรที่ใช
เปนคําอธิบาย (Comment) กลุมตัวอักษรที่เปนคําสั่ง และกลุมตัวอักษรที่เปนตัวแปรตางๆ ซึ่งจุดนี้เปนขอดี
ของ MPLAB IDE ที่สามารถแยกการแสดงผลกลุมตัวอักษรตามหนาที่การใชงานได ทําใหเราสามารถอาน
โปรแกรมไดงายและสะดวกมากยิ่งขึ้นดังรูป
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -5- WWW.ETT.CO.TH
#include "p33FJ128GP708.h" // dsPIC33FJ128GP708 MPU Register /* Setup Configuration For ET-dsPIC33WEB-V1 */ _FOSCSEL(FNOSC_PRIPLL & // Select Primary OSC = XT + PLL IESO_OFF ) // Startup With User Select OSC _FOSC(FCKSM_CSDCMD & // Clock Switch Disabled OSCIOFNC_OFF & // OSC2 Pin = Clock O/P POSCMD_XT) // Primary OSC = XT _FWDT(FWDTEN_OFF & // Disable Watchdog Timer WINDIS_OFF & // Disabled Windowed WDT WDTPRE_PR128 & // Watchdog prescaler=1:128 WDTPOST_PS32768) // Watchdog postscaler=1:32,768 _FPOR(FPWRT_PWR128) // Power-on Reset Value = 128ms _CONFIG3(JTAGEN_OFF); // Disable JTAG Interface /* End of Configuration For ET-dsPIC33WEB-V1 */ /* Pototype Section */ void delay(unsigned long int); // Delay Time Function int main(void) { /* Start of PLL Config Fcy = 40MIPS */ CLKDIV &= 0xFFE0; // PLLPRE[4..0] = 00000 (N1=2) CLKDIV &= 0xFF3F; // PLLPOST[1:0] = 00 (N2=2) PLLFBD = 0x26; // PLLDIV[8..0] = 000100110(M=40) while(!OSCCONbits.LOCK); // Wait PLL to Lock OSCCONbits.CLKLOCK = 1; // Disable PLL Modify /* End of PLL Config Fly = 40MIPS */ /* Start Config RB8 = Output */ AD1PCFGLbits.PCFG8 = 1; // AN8(RB8) = Digital Mode TRISBbits.TRISB8 = 0; // RB8 = Output LATBbits.LATB8 = 0; // Start = ON LED while(1) // Loop Continue { LATBbits.LATB8 = !LATBbits.LATB8; // Toggle Output RB8 delay(2000000); // Display LED Delay } } /***********************/ /* Delay Time Function */ /* 1-4294967296 */ /***********************/ void delay(unsigned long int count1) { while(count1 > 0) {count1--;} // Loop Decrease Counter }
แสดง ตัวอยาง Source Code สําหรับใชทดลองการทํางาน
สําหรับตัวอยางนี้จะเปนการสั่งใหใชพอรต RB8 ทําหนาที่เปน Output ขับ LED ใหติดและดับ
สลับกันไปไมรูจบในลักษณะของไฟกระพริบ ซึ่งวิธีการทดสอบการทํางานของโปรแกรมนี้ โดยใชกับบอรด
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -6- WWW.ETT.CO.TH
ET-dsPIC33WEB V1.0 นั้นทําไดโดยตอสัญญาณจาก RB8(PORTB-H) เขากับ LED1 Output ของบอรด
โดยจะเห็นผลการทํางานของโปรแกรมแกรม คือ LED1 จะกระพริบ ติดและดับอยางตอเนื่องตลอดเวลา
โดยสวนที่สําคัญและมีความจําเปนมากที่สุดของโปรแกรมก็คือสวนของคําสั่งที่ใชในการกําหนดคา
ของ Configuration Bit ใหกับ MCU โดยคานี้จะถูกแปลและใชกําหนดคาการทํางานของ Fuse Bit ในตัว
MCU ในขั้นตอนของการ Download Code ใหกับ MCU โดยในตัวอยางเปนการกําหนดให MCU ทํางาน
ดวยสัญญาณนาฬิกา 8MHz จากภายนอก รวมกับวงจรคูณความถี่ (Phase Lock Loop :PLL) ซึ่งตัวอยาง
โปรแกรมตางๆที่ทางอีทีที สรางขึ้น จะอางอิงจาก Configuration ดังตอไปนี้
• กําหนดให MCU ทํางานจากสัญญาณนาฬิกา : XTAL = 8MHz (XT+PLL)
• กําหนดคาการทํางานของวงจรคูณความถี่ Phase Lock Loop ดังนี้
o PLLPRE[4..0] = 00000 (N1=2)
o VCO Input = 8MHz / 2 = 4MHz
o PLLDIV[8..0] = 0x26(M=40)
o VCO Output = 4 x 40MHz = 160MHz
o PLLPOST[1:0] = 0:0 (N2=2)
o Fosc = 160MHz / 2 = 80MHz
o Fcy = Fosc/2 = 80MHz /2 = 40MHz
/* Setup Configuration For ET-dsPIC33WEB-V1 */ _FOSCSEL(FNOSC_PRIPLL & // Select Primary OSC = XT + PLL IESO_OFF ) // Startup With User Select OSC _FOSC(FCKSM_CSDCMD & // Clock Switch Disabled OSCIOFNC_OFF & // OSC2 Pin = Clock O/P POSCMD_XT) // Primary OSC = XT _FWDT(FWDTEN_OFF & // Disable Watchdog Timer WINDIS_OFF & // Disabled Windowed WDT WDTPRE_PR128 & // Watchdog prescaler=1:128 WDTPOST_PS32768) // Watchdog postscaler=1:32,768 _FPOR(FPWRT_PWR128) // Power-on Reset Value = 128ms _CONFIG3(JTAGEN_OFF); // Disable JTAG Interface /* End of Configuration For ET-dsPIC33WEB-V1 */
สวนของคําสั่งในการกําหนดคาการทํางานของ Phase Lock Loop เพื่อทําการคูณความถี่จาก
สัญญาณนาฬิกา 8.00MHz ที่ตอไวภายนอก เพื่อใหไดความถี่ Fosc เปน 80 MHz เพื่อให CPU สามารถ
ประมวลผลดวยความเร็วสูงสุดที่ 40MIPS (Fcy = 40MHz) ดังตัวอยาง
/* Start of PLL Config Fcy = 40MIPS */ CLKDIV &= 0xFFE0; // PLLPRE[4..0] = 00000 (N1=2) CLKDIV &= 0xFF3F; // PLLPOST[1:0] = 00 (N2=2) PLLFBD = 0x26; // PLLDIV[8..0] = 000100110(M=40) while(!OSCCONbits.LOCK); // Wait PLL to Lock OSCCONbits.CLKLOCK = 1; // Disable PLL Modify /* End of PLL Config Fly = 40MIPS */
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -7- WWW.ETT.CO.TH
3. ทําการสราง Project File เพื่อใชสั่งผนวกไฟลตางๆ ที่เกี่ยวของเขาดวยกัน ทั้งนี้เนื่องมาจากวา
ภาษาซีของ MPLAB C30 นั้น ถูกออกแบบใหมีความออนตัวในการใชงาน ดังนั้นจึงมีการจัดสราง
และแบงแยกไฟลออกเปนหลายๆไฟลตามหนาที่การใชงาน เพื่อใหผูใชสามารถเรียกไฟลตางๆ
เหลานั้นเขามาใชงานรวมกับ Source Code ที่เขียนขึ้นมาไดไดงาย โดยไมตองเสียเวลาเขียน
Source Code เองทั้งหมด ซึ่งจะทําใหผูใชสามารถลดเวลาในการเขียนโปรแกรมไปไดเปนอยาง
มากเนื่องจากเพียงแตทําการสั่งผนวกไฟลที่ทาง MPLAB C30 สรางเตรียมไวให เขากับ Source
Code ที่ผูใชเขียนขึ้นใหมแลวสั่งแปลโปรแกรมก็จะไดไฟลที่มีความสมบูรณตอการใชงานแลว โดย
จากตัวอยาง Source Code ที่ไดทดลองเขียนไปแลวในขางตน ก็เชนเดียวกัน จะเห็นไดวามีการสั่ง
ผนวกไฟลชื่อ “p33FJ128GP708.h” เขามาใชงานดวย ซึ่งทําใหไมตองเสียเวลาไปสั่งประกาศชื่อ
และตําแหนงรีจิสเตอรตางๆของ “dsPIC33FJ128GP708” ใหเสียเวลา แตสามารถอางถึงชื่อของ
รีจิสเตอรตางๆในโปรแกรมไดทันที โดยวิธีการกําหนดคุณสมบัติของ Project File มีดังนี้
สั่งกําหนดคุณสมบัติของ project File โดยใชคําสั่ง “Project → Project Wizard…” ซึ่ง
จะไดผลดังรูป จากนั้นใหเลือก “Next >” เพื่อไปยังขั้นตอนตอไป
หลังจากเลือก “Next >” แลว โปรแกรมจะรอใหกําหนดเบอรของ MCU ที่จะใชงานรวมกับ
โปรแกรมที่เขียนขึ้น ซึ่งใหเลือกกําหนดเปน “dsPIC33FJ128GP708” จากนั้นเลือก “Next >” เพื่อขามไป
ทํางานยังขั้นตอนตอไปดังรูป
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -8- WWW.ETT.CO.TH
ในขั้นตอนนี้จะเปนการเลือกวาจะใชโปรแกรมชุดใดในการแปลคําสั่ง เนื่องจาก MPLAB IDE
สามารถใชงานไดกับชุดโปรแกรมตางๆมากมายหลายโปรแกรม ซึ่งในที่นี้ใหเลือกกําหนดใชโปรแกรม ของ
MPLAB C30 โดยการเลือกกําหนดตัวเลือกของ “Active Toolsuite” ใหเปนของ MPLAB C30 โดยกําหนด
ตัวเลือกเปน “Microchip C30 Toolsuite” ดังรูป แลวเลือก “Next >”
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -9- WWW.ETT.CO.TH
ในขั้นตอนนี้จะเปนการ กําหนดชื่อ Project และตําแหนง Folder ที่จะใชเก็บไฟลตางๆที่ไดจากการ
ทํางานของ Project โดยใหกําหนดชื่อเปน “LED_BLINK” ดังรูป แลวเลือก “Next >”
↓
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -10- WWW.ETT.CO.TH
ในขั้นตอนนี้จะเปนการสั่งผนวกไฟลตางๆเขาไวดวยกันภายใตชื่อ Project ของ LED_BLINK โดย
ใหทําการสั่งผนวกไฟลทั้งหมด 3 ไฟลเขาไวใน Project ดังนี้
สั่งผนวกไฟลชื่อ “main.c” ซึ่งเปน Source Code ที่เราไดเขียนและสั่งบันทึกไวแลวใน
ขั้นตอนที่ผานมาโดยเก็บอยูใน …\LED_BLINK\main.c”
สั่งผนวกไฟลชื่อ “p33FJ128GP708.h” ซึ่งเปน Header ของภาษาซี ในการอางถึง
รีจิสเตอรตางๆของ MCU เบอร “dsPIC33FJ128GP708” โดยถาติดต้ังโปรแกรม C30
ตามคา Default ไฟลดังกลาวจะเก็บอยูใน “…\MPLAB C30\support\h\”
สั่งผนวกไฟลชื่อ “p33FJ128GP708.gld” ซึ่งเปน Script File ของ dsPIC33FJ128GP708
ที่ทาง MPLAB C30 สรางเตรียมไวให โดยถาติดต้ังโปรแกรมตาม C30 ตามคา Default
ไฟลดังกลาวจะเก็บอยูใน “…\MPLAB C30\support\gld\”
***หมายเหตุ*** คา Default มาตรฐานของการติดต้ังโปรแกรมคอมไพลเลอร C30 โดยปรกติแลวโปรแกรม
จะถูกติดต้ังไวที่ “C:\Program Files\Microchip\MPLAB C30“
โดยในการสั่งผนวกไฟลทั้ง 3 ดังกลาวใหทําการคลิกเมาสไปยัง “ICON” ของไฟลจากตําแหนง
Folder ที่กลาวไวในขางตนที่ผานมาแลวเลือก “Add >>” จนชื่อไฟลดังกลาวไปปรากฏอยูที่กรอบหนาตาง
ดานขวาของโปรแกรม ซึ่งใหเลือกทําตามวิธีการนี้จนสามารถสั่ง “Add” ไฟลไดครบทั้ง 3 ไฟล แลวเลือก
“Next >” เพื่อไปยังขั้นตอนตอไปดังรูป
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -11- WWW.ETT.CO.TH
เมื่อสั่งผนวกไฟลทั้งหมดเขากับ Project ไฟลที่สรางขึ้นเปนที่เรียบรอยแลว โปรแกรมจะรายงานผล
โดยแสดงคาพารามิเตอรตางๆที่ไดกําหนดไวแลวใหทราบดังรูป ใหเลือก “Finish” เปนอันเสร็จขั้นตอนของ
การสราง Project File ของ BLINK_LED
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -12- WWW.ETT.CO.TH
ซึ่งหลังจากกําหนดคาตางๆใหกับ Project File เปนที่เรียบรอยแลว ผูใชก็สามารถทําการสั่งแปล
คําสั่งของโปรแกรม “main.c” ที่เขียนขึ้นไดทันที โดยใชคําสั่ง “Project → Build All” ซึ่งจะทําใหไดไฟล
Output มีชื่อเดียวกับ Project File ที่สรางไวแตมีนามสกุลเปน HEX ซึ่งจากตัวอยาง Project นี้เมื่อสั่งแปล
โปรแกรมแลวถาไมเกิดขอผิดพลาดใดๆจะได Output ไฟลชื่อ “LED_BLINK.HEX” โดยไฟลดังกลาวจะถูก
สรางและเก็บไวในตําแหนง Folder ของ Project คือ “…\led_blink\led_blink.hex” โดยผูใชสามารถสั่ง
Download Hex File ชื่อ “LED_BLINK.HEX” นี้ใหกับบอรด “ET-dsPIC33WEB V1.0” เพื่อทดสอบการ
ทํางานไดทันที
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -13- WWW.ETT.CO.TH
การ Download Code ใหกับบอรด หลังจากทําการเขียนโปรแกรมและสั่งคอมไพลจนได HEX เรียบรอยแลว ขั้นตอนการพัฒนา
โปรแกรมของบอรดก็จะเหลือเพียงการ Download Code ใหกับ MCU ซึ่งในขั้นตอนนี้จะตองใชเครื่องมือใน
การ Download Code รวมดวย ซึ่งอาจเปน ICD2 หรือ Pickit2 ก็ได
สําหรับในกรณีที่ใช ICD2 นั้นจะสามารถสั่ง Download Code ไดจากโปรแกรม MPLAB โดยตรง
เลย โดยใหทําการเชื่อมตอสายสัญญาณจาก “ICD2” เขากับบอรด “ET-dsPIC33WEB V1.0” แลวเลือก
สวิตช Mode ใหอยูในตําแหนง PGM (สวิตชอยูในตําแหนงถูกกด LED PGM สีแดงติดสวาง) จากนั้นเลือก
กําหนดการเชื่อมตอกับ ICD2 โดยการคลิกเมาสที่เมนูคําสั่ง “Programmer → Select Program →
MPLAB ICD 2” จากนั้นใหสั่ง Download Code โดยคลิกเมาสที่เมนูคําสั่ง “Programmer → Program”
ซึ่งเครื่องก็จะทําการ Download Code ใหเองโดยอัตโนมัติ จนเมื่อเสร็จเรียบรอยแลว จะมีขอความแจงให
ทราบคือ “MPLAB ICD2 Ready” ดังรูป
ซึ่งหลังจากทําการ Download Code เรียบรอยแลวใหเลือกสวิตช Mode ไปไวในตําแหนง Run โดย
ใหตําแหนงของสวิตช Mode อยูในตําแหนงปลอย และ LED Run สีเขียวติดสวาง จากน้ันใหกดสวิตช
Reset 1 ครั้ง บอรดก็จะเริ่มตนทํางานตามคําสั่งที่ Download ใหแลวในทันที
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -14- WWW.ETT.CO.TH
การ Download Code ดวย “ET-PGMPIC USB” สําหรับในกรณีที่ผูใชเลือกใชเครื่องโปรแกรม Pickit2 หรือ ET-PGMPIC USB นั้น ในปจจุบัน
โปรแกรม MPLAB ยังไมไดสรางการเชื่อมตอคําสั่งกับเครื่องโปรแกรมดังกลาวไวให ดังนั้นผูใชจึงไมสามารถ
สั่ง Download Code ผานทางโปรแกรม MPLAB ไดเหมือน ICD2 แตจะตองสลับไปใหโปรแกรม Pickit2
เพื่อสั่ง Download Code เองดังนี้
1. ตอสายสัญญาณ ICD2 จาก ET-PGMPIC USB เขากับบอรด ET-dsPIC33WEB V1.0 โดยให
เลือกกําหนด Jumper “B/T” ของ ET-PGMPIC USB ไวในตําแหนง “B” (Target Board) พรอมกับ
กําหนดสวิตชเลือก Mode ของบอรด “ET-dsPIC33WEB V1.0” ไวในตําแหนง PGM (LED PGM สี
แดงติดสวาง)
2. สั่ง Run โปรแกรม Pickit2 ถาทุกอยางถูกตองจะไดผลดังรูป
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -15- WWW.ETT.CO.TH
3. ทําการคลิกเมาสที่เมนูคําสั่ง “Device Family → dsPIC33” ซึ่งเครื่องโปรแกรมจะทําการเชื่อมตอ
กับ MCU พรอมกับอานคา Configuration ตางๆของ MCU ขึ้นมาแสดงผลใหเห็นที่หนาจอของ
โปรแกรม ใหเห็นในทันที ซึ่งในกรณีของบอรด “ET-dsPIC33WEB V1.0” นั้น ถาทุกอยางถูกตองที่
หนาจอของโปรแกรมจะแสดงขอความ “dsPIC33 device found” พรอมกับมีการแสดงเบอรของ
MCU (Device) เปน “dsPIC33FJ128GP708” ดังรูป
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -16- WWW.ETT.CO.TH
4. ใหทําการสั่ง Load HEX File ที่ไดจากการแปลโปรแกรมของ C30 โดยใหทําการคลิกเมาสที่เมนู
คําสั่ง “File → Import Hex” แลวเลือก HEX File ที่ไดจากจากแปลคําสั่งของ C30 ซึ่งถาทุกอยาง
ถูกตอง จะปรากฏขอความ “Hex file successfully imported” ซึ่งหมายถึงการสั่ง Load Hex ไฟล
เรียบรอยแลว ซึ่งผูใชสามารถสั่ง Download Code จาก Hex File ใหกับหนวยความจําของ MCU
ไดทันที โดยการคลิกเมาสที่ปุมคําสั่ง “Write” ดังรูป
ตัวอยางการพัฒนาโปรแกรมของบอรด ET-dsPIC33WEB V1.0
ETT CO.,LTD -17- WWW.ETT.CO.TH
5. เครื่อง “ET-PGMPIC USB” จะเริ่มตนทําการ Download Code ใหกับ MCU ในทันที เมื่อการ
Download Code เสร็จเรียบรอยแลว จะมีขอความ “Programming Successful” ดังรูป
6. หลังจากทําการ Download Code เรียบรอยแลว ใหทําการเลือกกําหนดการทํางานของสวิตช
Mode ของบอรด ET-dsPIC33WEB V1.0 ไปไวในตําแหนง Run โดยใหตําแหนงของสวิตช Mode
อยูในตําแหนงปลอย และ LED Run สีเขียวติดสวาง จากนั้นใหกดสวิตช Reset 1 ครั้ง บอรดก็จะ
เริ่มตนทํางานตามคําสั่งที่ Download ใหแลวในทันที
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-1-
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
ความตองการทางดานฮารดแวร (Hardware Requirements)
อุปกรณที่ใช
- บอรดไมโครคอนโทรลเลอร ET-dsPIC33WEB V1.0
- โมดูล ET-MINI ENC28J60
- สายเชื่อมตอวงจร อยางนอย 13 เสน
- จอแสดงผล Character LCD ขนาด 16 ตัวอักษร 2 บรรทัด
- โมดูล EEPROM 25LC256
- เครื่องโปรแกรม PIC/dsPIC รุน ET-PGMPIC USB หรือรุนอ่ืนๆ พรอมสายเชื่อมตอ USB
- แหลงจายไฟสําหรับบอรด ET-dsPIC33WEB V1.0 (7-12V/850mA)
- เครื่องคอมพิวเตอร ซึ่งมีพอรตเชื่อมตอ Ethernet LAN
- สายเคเบิลของระบบแลนด ซึ่งมีอยูสองกรณี คือ
• กรณีที่ 1 คือ การเชื่อมตอเขากับคอมพิวเตอรโดยตรง สาย LAN จะตองเขาสายแบบ Cross
• กรณีที่ 2 คือ การเชื่อมตอผาน Hub ของเครื่องคอมพิวเตอร Server จะตองเขาสายแบบ Direct
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-2-
ความตองการทางดานซอรฟแวร (Software Requirements)
- ติดต้ังโปรแกรม MPLAB IDE v7.61 (เวอรชันลาสุด ณ ปจจุบัน กรกฎาคม 2550)
- โปรแกรมคอมไพลเลอร C30 เวอรชัน 3.01 Student Edition
- โปรแกรม TCPIP Stack 4.02 (เวอรชันลาสุด ณ ปจจุบัน กรกฎาคม 2550)
- โปรแกรม รับสงขอมูลอนุกรม RS232 เชน Procomm หรือ HyperTerminal ของวินโดว
- โปรแกรม Internet Explorer หรือ โปรแกรมที่เปด Webpage ทั่วไป
*** ใหทําการติดต้ังโปรแกรมเหลานี้ใหเรียบรอย
ขั้นตอนการทดลอง
1. ตอวงจรใหเรียบรอยดังนี้
รูปแสดงการเชื่อมตอสัญญาณตางๆ เพ่ือทําการทดลอง
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-3-
รูปแสดงบอรดทดลองหลังจากเชื่อมตอสัญญาณตางๆ
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-4-
สัญญาณการเชื่อมตอ
สําหรับตัวอยาง Code Program ที่เปน Web Server Control ที่ทาง อีทีที จัดทําขึ้น เพื่อเปนแนวทาง และ
ตัวอยางการใชงาน เพื่อใหผูใชนําไปทดสอบการทํางาน และแกไขพัฒนาตามความตองการนั้น จะเปนการปรับปรุง
มาจากตัวอยาง Code ของ Microchips โดยทางอีทีที ไดนํา Source Code ของ TCP/IP Stack V4.02 จากทาง
Microchips มาปรับปรุงแกไขใหสอดคลองกับ I/O ตางๆของบอรด ET-dsPIC33WEB V1.0 ซึ่งไดมีการปรับปรุง
และแกไขดัดแปลง Code เฉพาะในสวนของ Webpage และ HTML สวนของการ Process I/O Function เทานั้น
สวนรายละเอียดการใชงานฟงกชั่นตางๆที่เปนของ TCP/IP Stack นั้นจะยึดตามตนฉบับของ Microchips เปนหลัก
ซึ่งผูใชสามารถศึกษารายละเอียดตางๆเกี่ยวกับการใชงาน ฟงกชั่นตางๆของ TCP/IP Stack ไดจากเอกสารที่ทาง
Microchips จัดทําไวใหไดเอง โดยจะไมขอกลาวถึงในที่นี้ดวย
โดยในตัวอยางทาง อีทีที จะจัดทําเปนลักษณะของการประยุกตใชงาน Web Server Control ขนาดเล็ก
โดยแสดงใหเห็นวิธีการรับสงคําสั่งจากหนา Webpage สําหรับควบคุมการทํางานของอุปกรณ I/O ตางๆ ที่อยูใน
บอรด ET-dsPIC33WEB V1.0 ทั้ง Digital Output (LED), Digital Input (SW), Analog Input (ADC) และ LCD
Display โดยในการทดลองตามตัวอยางโปรแกรม ใหทําการเชื่อมตอสัญญาณ I/O ของ MCU กับวงจร I/O ตางๆ
ตามรายละเอียดดังตอไปนี้
• Ethernet Module สําหรับใชในการเชื่อมตอกับ Ethernet LAN จะใชโมดูล ET-MINI ENC28J60
ซึ่งสามารถรับสงขอมูลไดดวยความเร็วสูงสุด 10MB โดยฟงกชั่นในการเชื่อมตอจะใชสัญญาณ
SPI1 ของ MCU โดยใชสัญญาณตางๆดังนี้
RF6 ใชเปน SCK ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
RF7 ใชเปน SDI ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
RF8 ใชเปน SDO ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
RD14 ใชเปน CS ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60)
RA12 ใชเปน INT1 ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60) ซึ่งใน
ตัวอยางนี้จะไมไดใชงานใหกําหนด Jumper INT(EN/DS) เปน DS(Disable:ไมใชงาน)
RA13 ใชเปน WOL ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60) ซึ่งใน
ตัวอยางนี้จะไมไดใชงานใหกําหนด Jumper WOL(EN/DS) เปน DS(Disable:ไมใชงาน)
RD15 ใชเปน RST ในการเชื่อมตอกับ Ethernet Module (ET-MINI ENC28J60) ซึ่งใน
ตัวอยางนี้จะไมไดใชงานใหกําหนด Jumper RST(EN/DS) เปน DS(Disable:ไมใชงาน)
• SPI Memory Module สําหรับใชเก็บ Webpage File และ CGI Scrip ตางๆ จะใชโมดูล
25LC256 โดยฟงกชั่นการเชื่อมตอจะใชสัญญาณ SPI2 ของ MCU โดยใชสัญญาณตางๆดังนี้
RG6 ใชเปน SCK ในการเชื่อมตอกับ SPI Memory
RG7 ใชเปน SDI ในการเชื่อมตอกับ SPI Memory
RG8 ใชเปน SDO ในการเชื่อมตอกับ SPI Memory
RD12 ใชเปน CS ในการเชื่อมตอกับ SPI Memory
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-5-
• I/O Control Signal สําหรับใชควบคุมการทํางานและรับคา Input มาแสดงผลที่หนา
Webpage โดยจะมีอยูดวยกัน 4 กลุม คือ
8 Bit Digital Output โดยใช LED เปนตัวแสดงสถานะของการทํางาน
4 Bit Digital Input โดยใช Push-Button Switch เปน Input
1 ชอง Analog Input ขนาด 12 Bit โดยใชตัวตานทานปรับคาไดเปน Input
Character Display LCD 16x2 สําหรับแสดงผลขอความตางๆ
dsPIC33FJ128GP708 LED
RB8 LED1
RB9 LED2
RB10 LED3
RB11 LED4
RB12 LED5
RB13 LED6
RB14 LED7
RB15 LED8
dsPIC33FJ128GP708 SW
RD8 SW1
RD9 SW2
RD10 SW3
RD11 SW4
dsPIC33FJ128GP708 VR1 (0-3V3)
RB5 VR1
dsPIC33FJ128GP708 LCD
RD0 D4
RD1 D5
RD2 D6
RD3 D7
RD4 RS
RD5 RW
RD6 EN
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-6-
การกําหนดคา Configuration ใหบอรด ET-dsPIC33WEB V1.0
ตามปรกติแลวคา Configuration ตางๆของบอรด จะถูกกําหนดไวแลวในสวนของ Source Code ไมวาจะ
เปนคา IP Address, DHCP Name หรืออ่ืนๆ ซึ่งคา Configuration ตามคา Default ที่กําหนดไวภายใน Code นั้น
ตามตัวอยางที่ทาง อีทีที จัดทําขึ้นจะเปนดังนี้
Device IP Address คือ 192.168.1.200
Gateway IP Address คือ 192.168.1.255
Subnet mask คือ 255.255.255.0
DNS Server IP Address คือ 192.168.1.255
DCHP Protocol = Enable ,DHCP name = dspic33web
แตอยางไรก็ตามผูใชสามารถเขาไปแกไขคา Configuration ตางๆไดเอง โดยไมจําเปนตองกลับไปแกไขที่
Source Code ก็ได ซึ่งการแกไขจะกระทําผานพอรตสื่อสารอนุกรม RS232 ชอง 2 (RS232-CH2) โดยใชโปรแกรม
จําพวก Serial Terminal ตางๆ เชน Procomm หรือ Hyper Terminal ก็ได โดยใหสั่งเชื่อมตอดวยเงื่อนไขดังนี้
Baudrate = 19200BPS, Data Bit = 8 Bit, Parity Bit = None, Stop Bit = 1 Bit, Flow Control = None
ซึ่งหลังจากทําการเปดโปรแกรม Hyper Terminal และกําหนดการเชื่อมตอเรียบรอยแลว พรอมกับตอ
สายสัญญาณจาก RS232-CH2 ของบอรด ET-dsPIC33WEB V1.0 กับ Comport PC เปนที่เรียบรอยแลว ใหทํา
การกดสวิตช SW1 ที่ตอกับ Port-RD8 คางไว พรอมกับกดสวิตช RESET ของบอรดแลวปลอย โดยที่ SW1 ยัง
กดคางอยู โดยโปรแกรมมอนิเตอรจะตรวจสอบวา มีการกด SW1 ในตอนเริ่มตนการทํางานหรือไม ซึ่งถาพบวามี
การกดสวิตชคางไวเปนเวลาอยางนอย 4 วินาที ก็จะเขาสูโหมดการ Setup Configuration ของบอรด แตถาไมพบ
การกดสวิตชใดๆก็จะขามไปทํางานตามปรกติ โดยถามีการกด SW1 คางไวตอนเริ่มตนการทํางาน(หลังรีเซ็ต) จะมี
การสงขอความและเมนูคําสั่งกลับมาทางพอรต RS232-CH2 ซึ่งผูใชสามารถกดคีย เลือกตัวเลข ตามหัวขอตางๆ
เพื่อทําการเปลี่ยนแปลงแกไขคา Configuration ตางๆไดตามตองการ ดังตัวอยาง
BUTTON0 held for more than 4 seconds. EEPROM contents erased. Microchip TCP/IP Config Application (v4.02, Aug 22 2007) 1: Change serial number: 0 2: Change host name: DSPIC33WEB 3: Change static IP address: 192.168.1.200 4: Change static gateway address: 192.168.1.255 5: Change static subnet mask: 255.255.255.0 6: Change static primary DNS server: 192.168.1.255 7: Change static secondary DNS server: 192.168.1.255 8: Disable DHCP & IP Gleaning: DHCP is currently enabled 9: Download MPFS image. 0: Save & Quit. Enter a menu choice:
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-7-
192.168.1.200192.168.1.x
ขั้นตอนการทดสอบ Web Server Control
1. ทําการติดต้ัง โมดูล และ เชื่อมตอสัญญาณใหกับอุปกรณ I/O ตางๆดังกลาวขางตนใหเรียบรอย ดังตัวอยาง
รูปแสดงตัวอยางการเชื่อมตอฮารดแวร
2. เชื่อมตอสาย LAN ระหวางบอรด เขากับระบบเครือขาย LAN โดย กรณีที่เชื่อมตอผาน HUB จะตองใช
สาย แบบ Direct และ กรณีที่เชื่อมตอเขากับการด LAN ของเครื่องคอมพิวเตอรจะตองใชสายแบบ Cross
ดังรูปตอไปนี้
รูปแสดงการเชื่อมตอ ET-dsPIC33WEB เขากับการด LAN ของคอมพิวเตอรใชสายแบบ Cross
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-8-
ET-dsPIC33 WEB V1.0
HUB
Direct Line
Direct Line
Direct Line
192.168.1.200
192.168.1.x 192.168.1.x
รูปแสดงตัวอยางการตั้งคา IP Address ของคอมพิวเตอร
รูปแสดงการเชื่อมตอ ET-dsPIC33WEB เขากับ HUB ของระบบ LAN ใชสายแบบ Direct
3. ทําการดาวนโหลด Code ซึ่งอยูใน “\DEMO_WEB_TCPIP_V4\TCPIP Demo App\TCPIP Demo App.HEX”
ใหกับบอรด โดยสามารถศึกษาขั้นตอนการ Download Code ไดจากหัวขอ “การ Download Code ใหกับบอรด”
ในสวนของคูมือการใชงาน
4. ทําการเซตคา IP Address ของคอมพิวเตอรให Subnet mask: และ IP address ใหเปนคลาสเดียวกันกับ
บอรด ET-dsPIC33WEB V1.0 ในตัวอยางนี้ IP ของบอรด คือ 192.168.1.200 เราจะตองเซต IP ของเครื่อง
คอมพิวเตอรใหเปน 192.168.1.xxx (xxx = 0 ถึง 255 แตตองไมซ้ํากับ 200 ซึ่งเปน IP ของบอรด) สวน Subnet
mask: ต้ังเปน 255.255.255.0 ดังรูปตอไปนี้
→
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-9-
5. เปดโปรแกรม Command Prompt ซึ่งจะอยูในโฟลเดอร “…\DEMO_WEB_TCPIP_V4\TCPIP Demo App”
เมื่อดับเบิลคลิก ICON ดังกลาวจะปรากฏหนาตาง Command Prompt ดังตอไปนี้
C:\...\ DEMO_WEB_TCPIP_V4\TCPIP Demo App>
6. ลองทดสอบการเชื่อมตอโดยใชวิธีการ Ping ไปที่หมายเลข IP ของบอรดในตัวอยางนี้ คือ 192.168.1.200 โดยให
พิมพคําสั่ง ping 192.168.1.200 แลว Enter ดังรูปตอไปนี้
C:\...\ DEMO_WEB_TCPIP_V4\TCPIP Demo App>ping 192.168.1.200
โดยผลจากการ Ping หากการเชื่อมตอสมบูรณ ก็จะแสดงขอความ ดังตัวอยาง
C:\...\DEMO_WEB_TCPIP_V4\TCPIP Demo App>ping 192.168.1.200 Pinging 192.168.1.200 with 32 bytes of data: Reply from 192.168.1.200: bytes=32 time<1ms TTL=100 Reply from 192.168.1.200: bytes=32 time<1ms TTL=100 Reply from 192.168.1.200: bytes=32 time<1ms TTL=100 Reply from 192.168.1.200: bytes=32 time<1ms TTL=100 Ping statistics for 192.168.1.200: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-10-
การคอมไพล Webpage
ในเบ้ืองตนผูใชสามารถทําการแกไขเปลี่ยนแปลงรายละเอียดของหนา Webpage ใหมได โดยเขาไปใน
โฟลเดอร “…\Examples\DEMO_WEB_TCPIP_V4\TCPIP Demo App\Webpages” โดยอาจใชโปรแกรม
Notepad หรือ Text Editor ใดๆในการแกไขโคดเหลานี้ก็ได
โดยไฟลที่เปนหนา Webpage จะชื่อ index.html สวนอีก 10 ไฟลที่เหลือเปน CGI Scrip สําหรับใชรับสง
ขอมูลกันระหวางหนา Webpage และ บอรด ET-dsPIC33WEB V1.0 ซึ่งหลังจากทําการแกไขโคดตางๆตาม
ตองการเปนที่เรียบรอยแลว ผูใชจะตองทําการคอมไพลโคดเหลานี้ใหม ใหเปนไฟลแบบ Binary (.bin) เพื่อที่จะได
สั่ง Download ไฟลดังกลาวไปเก็บไวในหนวยความจํา SPI Memory Module (25LC256) ที่อยูในบอรด ซึ่งทาง
Microchips เองไดสรางเครื่องมือสําหรับอํานวยความสะดวกในการพัฒนาโปรแกรมสวนนี้เตรียมไวใหเราไดใชงาน
ดวย คือไฟล “MPFS.EXE” โดยไฟลตัวนี้เปนโปรแกรมที่ทํางานแบบ Command Line ใชสําหรับแปลงไฟลตางๆที่
อยูภายใน Folder ใหเปน Binary File โดยขั้นตอนในการคอมไพล Webpage File ใหทําดังนี้
เปดหนาตาง Command Prompt โดยคลิกเมาสที่ Shortcut ของ Command Prompt ที่เตรียมไวใหแลวใน
Folder “…\ET-dSPIC33WEB\Examples\DEMO_WEB_TCPIP_V4\TCPIP Demo App”
พิมพคําสั่ง MPFS Input Output
o Input หมายถึง ชื่อของ Folder ที่ใชเก็บไฟลทั้งหมดที่ตองการแปลงเปน Binary File ซึ่งในกรณีนี้
คือ Folder ชื่อ “Webpages”
o Output หมายถึง ชื่อ ไฟล Output ที่ไดจากการแปลง ซึ่งใหกําหนดนามสกุลเปน bin โดยในที่นี้จะ
กําหนดชื่อของ Output File เปน “dspic33web.bin”
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-11-
C:\...\TCPIP Demo App>mpfs Webpages dspic33web.bin Adding 'Webpages\BUILDDATE.CGI'... MPFS Size so far 247... Adding 'Webpages\BUTTON0.CGI'... MPFS Size so far 254... Adding 'Webpages\BUTTON1.CGI'... MPFS Size so far 261... Adding 'Webpages\BUTTON2.CGI'... MPFS Size so far 268... Adding 'Webpages\BUTTON3.CGI'... MPFS Size so far 275... Adding 'Webpages\INDEX.HTML'... MPFS Size so far 7056... Adding 'Webpages\LED0.CGI'... MPFS Size so far 7063... Adding 'Webpages\LED1.CGI'... MPFS Size so far 7070... Adding 'Webpages\POT0.CGI'... MPFS Size so far 7077... Adding 'Webpages\STATUS.CGI'... MPFS Size so far 7387... Adding 'Webpages\VERSION.CGI'... MPFS Size so far 7394...
รูปแสดง ผลการคอมไพล Webpage File
โดยไฟล “dspic33web.bin” ที่ถูกสรางจะอยูในโฟลเดอรเดียวกันกับ โปรแกรม MPFS ซึ่งในกรณีนี้จะอยูที่
“…\ET-dSPIC33WEB\Examples\DEMO_WEB_TCPIP_V4\TCPIP Demo App” ดังตอไปนี้
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-12-
การดาวนโหลด Webpage File ใหบอรด ET-dsPIC33WEB V1.0
ในตัวอยางการทดลอง Web Server Control นี้ ไฟลตางๆที่เปนของ Webpage นั้น จะตองนําไปเก็บไวใน
หนวยความจําแบบภายนอก ซึ่งก็คือ EEPROM ที่เปน SPI Memory Module เบอร 25LC256 ซึ่งไดทําการติดต้ังไว
ในบอรดเปนที่เรียบรอยแลว โดยใน Code Program ที่สรางขึ้นตามตัวอยางนี้ จะทําใหเราสามารถใช Protocol
ยอยของ TCP/IP ในการสงไฟลไปยังบอรดผานทางสายสัญญาณ Ethernet LAN ไดทันที โดยให FTP Protocol
โดยวิธีการนี้เราสามารถเรียกใช คําสั่ง FTP ใน Command Line เพื่อทําการ Login และสงไฟลไปใหกับบอรดได
โดยตรง โดยมีลําดับขั้นตอนดังนี้
เปดหนาตาง Command Prompt โดยคลิกเมาสที่ Shortcut ของ Command Prompt ที่เตรียมไวใหแลวใน
Folder “…\ET-dSPIC33WEB\Examples\DEMO_WEB_TCPIP_V4\TCPIP Demo App”
ใชคําสั่ง FTP เพื่อเชื่อมตอกับ IP Address ของบอรด ET-dsPIC33WEB ซึ่งในที่นี้ ก็คือ 192.168.1.200
เมื่อผลการ FTP ไดรับการเชื่อมตอ Connected เปนที่เรียบรอยแลวใหทําการ Login โดยใชชื่อ “ftp” และ
ใชรหัสผาน Password เปน “ett” (จะไมมีการ Echo ตัวอักษรของ Password ใหเห็น)
เมื่อสามารถทําการ Login ไดสําเร็จใหใชคําสั่ง PUT ในการสงไฟลชื่อ “dspic33web.bin” โดยพิมพคําสั่ง
เปน put dspic33web.bin แลว Enter
เพื่อการสงไฟลเสร็จเรียบรอยแลว ใหทําการพิมพคําสั่ง quit เพื่อออกจากการเชื่อมตอกับ FTP Protocol ซึ่ง
หลังจากนี้ก็สามารถใชงาน Web Server Control ของบอรด ET-dsPIC33WEB V1.0 ไดแลว
เปดโปรแกรม Internet Explorer แลว พิมพหมายเลข IP Address ของบอรด ซึ่งในที่นี้ คือ 192.168.1.200
หรือชื่อ DHCP ของบอรด ซึ่งก็คือ dspic33web ลงในชอง Address แลว Enter เพื่อทดสอบ \…\Examples\DEMO_WEB_TCPIP_V4\TCPIP Demo App>ftp 192.168.1.200 Connected to 192.168.1.200. 220 Ready User (192.168.1.200:(none)): ftp 331 Password required Password:ett 230 Logged in ftp> put dspic33web.bin 200 Ok 150 Transferring data... ###################################### 226 Transfer Complete ftp: 7595 bytes sent in 0.00Seconds 7595000.00Kbytes/sec. ftp> quit 221 Bye
รูปแสดง ตัวอยางการใชคําส่ัง FTP เพ่ือ Download ไฟล dspic33web.bin ใหบอรด
หมายเหตุ รหัส Password ที่ปอนใหกับคําสั่ง จะไมมีการ Echo กลับมาใหเห็นดวย ซึ่งผูใชตองพิมพให
ถูกตองตามลําดับทั้ง 3 หลัก (ett) ไมเชนนั้นจะไมสามารถ Login ได ซึ่งถาพิมพผิด และไมสามารถทําการ Login
ไดใหใชคําสั่ง quit กลับไปกอนแลวเริ่มตนกระบวนการใหม
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-13-
การทดสอบการทํางานของ Web Server Control
หลังจากทําการ Download Code ใหกับบอรด และ Download Webpage Files ตางๆใหกับบอรดเปนที่
เรียบรอยแลว ผูใชสามารถทําการทดสอบการทํางานของโปรแกรมตัวอยางของ Web Server Control ไดทันที โดย
ใหเปดโปรแกรม Internet Explorer แลวพิมพหมายเลข IP ของบอรดลงไปในชอง Address ในตัวอยางนี้คือ
192.168.1.200 ซึ่งจะปรากฏหนาตาง Webpage ดังแสดงในรูป
รูปแสดง ลักษณะ Web Server Control ของ ET-dsPIC33WEB V1.0
โดยจากตัวอยางโปรแกรมนี้ ผูใชสามารถทําการทดสอบการสงคําสั่งเพื่อควบคุมการทํางานของ I/O ภายในบอรด
ET-dsPIC33WEB V1.0 จากหนา Webpage ไดโดยตรง ดังนี้
• Toggle LEDs สามารถทําการทดสอบไดโดยคลิกเมาสที่ ปุม LED2 - LED8 ซึ่งผลการคลิกเมาส
แตละครั้งจะสงผลให LED กลับสถานะเปนตรงกันขาม คือ ดับ และ ติด สลับกันไป
• Write to LCD: สามารถพิมพขอความตามตองการแตไมเกนิ 32 อักขระ แลวคลิกเมาสที่ปุม
“Write” เพื่อสงขอความดังกลาวไปแสดงผลที่หนาจอ LCD บนบอรดได
ตัวอยางการพัฒนาโปรแกรม Web Server Control ของ ET-dsPIC33WEB V1.0
-14-
• Status จะแสดงผล อยู 3 สวน คือ
Analog[AN5:RB5]: จะแสดงผลจากการแปลงสัญญาณ Analog to Digital ที่ขา RB5
ซึ่งตออยูกับ VR 10K บนบอรด เมื่อทําการปรับคาของ VR1 ก็จะทําใหคา Status ของ
A/D เปลี่ยนแปลงตามคาการปรับ โดยมีคาระหวาง 0..4095
Switch[RD8..11]: จะแสดงคาสถานะของการกดสวิตช ของ SW1-SW4 ที่อยูบนบอรด
โดยเมื่อกดจะไดคาเปน “0” แตเมื่อปลอยจะไดคาเปน “1”
LED[RB8..15]: จะแสดงคาสถานะของพอรต RB8..15 ที่ตอกับ LED บนบอรดไว โดย
คาจะเปลี่ยนแปลงไปตามการคลิกเมาสที่ปุม LED2..LED8 โดยถามีคาเปน “1” จะทําให
LED ดับ แตถาเปน “0” จะทําให LED ติดสวาง สวน LED1 จะไมสามารถสั่งควบคุมการ
ทํางานจากปุมได เนื่องจาก LED1 จะสงวนไวใชแสดงการทํางานของ TCP/IP โดยจะ
กระพริบติดและดับสลับกันตลอดเวลา
การพัฒนาและปรับปรุง Code Program โดยรวมแลว Code ตางๆทั้งหมดที่อยูใน Project นี้จะเปนสวนของ Protocol TCP/IP มาตรฐานทั้งหมด ที่
ทาง Microchips ไดพัฒนาขึ้น ทําใหเราสามารถนํามาเรียกใชงานฟงกชั่นตางๆที่อยูในไฟลตางๆเหลานั้นไดทันท ี
โดยไมจําเปนตองไปแกไข Code ตางๆที่เปนสวนของ Protocol TCP/IP ใหเสียเวลา ซึ่ง Code ในสวนที่เรา
จําเปนตองแกไขนั้น จะเปนในสวนของ Application Layer ของ TCP/IP Stack เทานั้น ซึ่งใน Project นี้ไฟลตางๆที่
เปนของ Application นั้นจะถูกแยกเก็บไวใน Folder ชื่อ “..\DEMO_WEB_TCPIP_V4\TCPIP Demo App”
HardwareProfile.h เปนสวนของการกําหนดรายละเอียดของสัญญาณ I/O ตางๆ ที่จะใชในการเชื่อมตอกับ
อุปกรณภายนอก โดยตองกําหนดใหสอดคลองกับระบบฮารดแวรของบอรด ET-dsPIC33WEB V1.0 อัน
ไดแก Ethernet Driver (ET-MINI ENC28J60) ,SPI Memory Module(25LC256),LCD,LED,SW,ADC
TCPIPConfig.h เปนสวนของการกําหนดคา Default ตางๆเกี่ยวกับ TCP/IP Stack อันไดแก DHCP Name,
IP Address ของบอรด,MAC Address ของบอรด
MainDemo.c เปนสวนของ Main Program ซึ่งจะมีการเรียกใช TCP/IP Stack และนําขอมูลตางๆที่ไดการ
Stack มาประมวลผล และตัดสินใจ อันไดแกการแปลคําสั่งจาก CGI Scrip เพื่อนํารหัสคําสั่งไปสั่งงาน
LED Output และ LCD Display รวมทั้งการอานคาสถานะของ I/O ตางๆเพื่อสงออกไป Refresh Status
ของหนา Webpage เปนตน
Wabpage File ตางๆ เชน HTML และ CGI Scrip ใน Folder ชื่อ “Webpages” ซึ่งเปนสวนที่ผูใชสามารถทํา
การดัดแปลงแกไขไดเองตามตองการ แตถามีการแกไขคาใน CGI Scrip ใหมีคาตางจากที่กําหนดไวแลว
ผูใชจําเปนตองเขาไปแกไข Code ที่อยูในไฟล “MainDemo.c” ใหสัมพันธและสอดคลองกันดวย
Top Related