| นาย สุรศักดิ์ พาณิชย์ |
36055812 |
| นาง |
36056869 |
ผลิตภัณฑ์ที่ใช้ชิพ PIC16C5X
จะมีคุณลักษณะพิเศษคือ
ช่วยลดต้นทุนของระบบและประหยัดไฟ
ทั้งยังมีเครื่องมือ (tool) มากมายคอยสนับสนุน ได้แก่ แอสเซมเบลอร์
(assembler), ซอฟแวร์ซิมูเลเตอร์ (software simulator),in-circuit emulator และ production quality
programmer โดยที่เครื่องมือเหล่านี้สามารถใช้ได้บนเครื่อง
IBM PC
PIC16C5X เหมาะสำหรับใช้งานในเครื่อง
จักรกลที่ต้องการความเร็วสูง (high-speed automotive) และ
เครื่องใช้
ที่ควบคุมด้วยมอเตอร์
เทคโนโลยี EPROM
ทำให้การใช้งานโปรแกรมประยุกต์ (transmitter codes, motor speeds,
receiver frequencies, etc.) เป็นไป
อย่างรวดเร็วและสะดวกสบาย
เนื่องจากแพ็คเก็จที่ใช้ชิพ PIC16C5X
มีขนาดเล็ก
จึงเหมาะสำหรับงานที่ต้องใช้เนื้อที่จำกัด
และด้วยราคาที่ถูก อีกทั้ง
ยังกินไฟน้อย จึงเป็นการง่ายที่จะใช้ ชิพ PIC16C5X
แม้ในงานที่ๆไม่เคยมีการใช้ไมโครคอนโทรลเลอร์
มาก่อนเลยก็ตาม
สามารถทำงานได้โดยอิสระแม้จะเป็นชิปที่
ใช้ออสซิลเลเตอร์แบบ RC
ก็ตามซึ่งไม่จำเป็นต้องต่ออุปกรณ์ภายนอกต่
อเพิ่มอีก นั่นหมายความว่าตัววอตช์ด็อกไทเมอร์
จะยังคงทำงานแม้ว่าสัญญาณนาฬิกาที่ป้อนเข้
าขา OSC1/OSC2 จะหมดไป เช่น ในการเอ็กซีคิวต์คำสั่ง SLEEP
สัญญาณที่บอกให้ตัววอตช์ด็อกไทเมอร์เกิดไทม์เอาต์
ขึ้นเมื่อชิปอยู่ในสภาวะรีเซต ตัววอตช์ด็อกไท
เมอร์
สามารถกำหนดให้ไม่ใช้งานเป็นการถาวรได้โดย
การโปรแกรมค่า "0" ลงในฟิวส์อีพรอมพิเศษ
ตัววอตช์ด็อกไทเมอร์
มีช่วงคาบเวลาโดยปกติอยู่ในช่วง 18 มิลลิวินาที
(โดยไม่ใช้ปรีสเกลเลอร์)
ปัจจัยที่มีผลต่อช่วงคาบเวลาดังกล่าว
ได้แก่
ถ้าต้องการช่วงคาบเวลาที่ยาวนานมากขึ้น
สามารถทำได้โดยการกำหนดค่าในปรีสเกลเลอร์
ให้มีอัตราส่วนเป็น 1:128 ซึ่งทำได้โดยใช้ซอฟแวร์
มาควบคุมตัววอตช์ด็อกไทเมอร์
ซึ่งจะเขียนค่าลงในรีจิสเตอร์ OPTION ดังนั้น
ช่วงคาบเวลาสูงสุดจะมีค่าได้ถึง 2.5 วินาที
คำสั่ง CLRWDT และ SLEEP จะลบค่าในวอตช์ด็อกไทเมอร์
และค่าในปรีสเกลเลอร์
การใช้คำสั่งนี้จะช่วยป้องกันไม่ให้เกิด
เราสามารถใช้ชิปตระกูล PIC16C5X ร่วมกับออสซิลเลเตอร์ต่างๆได้ 4 แบบ
ถ้าชิปนั้นมีอีพรอมอยู่ภายในตัวเอง
การเลือกใช้วงจรออสซิลเลเตอร์จะขึ้นกับ
อีพรอมนั้นว่าต้องการออสซิลเลเตอร์แบบใด
ถ้าเป็นชิปแบบ OTP และ QTP โรงงานจะเป็นผู้กำหนดออสซิลเล
เตอร์ที่จะใช้งานได้มาให้
การเลือกใช้ตัวเก็บประจุ (C1,C2)
สำหรับวงจรรีโซเนเตอร์แบบเซรามิก
จะคำนึงถึงความถี่ต่างๆที่ใช้ ดังแสดงในตาราง
ชิปแบบ XT เป็นออสซิลเลเตอร์คริสตอลแบบมาตรฐาน
ซึ่งอาจต้องการคริสตอลแบบสตริปคัต AT (AT strip-cut)
เพื่อหลีกเลี่ยงการโอเวอร์ไดรฟ์ (overdrive)
ส่วนชิปแบบ HS เป็นออสซิลเลเตอร์คริสตอลชนิดความเร็วสูง
ซึ่งอาจจะต้องใช้ตัวต้านทานต่อเชื่อมด้วยใ
นกรณีที่ต้องการให้เกิดความถี่ออสซิลเลชั่น
ที่น้อยกว่า 20 เมกกะเฮิร์ตซ์
PIC16C5X แบบ XT,HS หรือ LP จะต้องใช้วงจรรีโซเนเตอร์
แบบเซรามิกหรือคริสตอลต่อเข้าที่ขา OSC1 และ OSC2
เพื่อทำให้เกิดสัญญาณนาฬิกาดังรูป
การเลือกใช้ตัวเก็บประจุ (C1,C2)
สำหรับวงจรรีโซเนเตอร์แบบเซรามิก
จะคำนึงถึงความถี่ต่างๆที่ใช้
ดังแสดงในตาราง
ชิปแบบ XT เป็นออสซิลเลเตอร์คริสตอลแบบมาตรฐาน
ซึ่งอาจต้องการคริสตอลแบบสตริปคัต AT (AT strip-cut)
เพื่อหลีกเลี่ยงการโอเวอร์ไดรฟ์ (overdrive)
ส่วนชิปแบบ HS เป็นออสซิลเลเตอร์คริสตอลชนิดความเร็วสูง
ซึ่งอาจจะต้องใช้ตัวต้านทานต่อเชื่อมด้วยใ
นกรณีที่ต้องการให้เกิดความถี่ออสซิลเลชั่น
ที่น้อยกว่า 20 เมกกะเฮิร์ตซ
เหมาะกับ
งานที่ไม่ต้องการความเที่ยงตรงมากนัก
อีกทั้งราคาก็ถูกกว่าแบบอื่น
ความถี่จากวงจรออสซิลเลเตอร์แบบ RC จะขึ้นอยู่
กับ
จากรูปแสดงถึงวิธีการเชื่อมต่ออุ
ปกรณ์ R/C เข้ากับ PIC16C5X สำหรับค่า Rext ที่น้อยกว่า 2.2 กิโลโอห์ม
สัญญาณออสซิลเลเตอร์
ที่ได้อาจจะไม่คงที่หรือหยุดนิ่งสำหรับค่า
Rext ที่มีค่าสูงมากๆ (เช่น 1 เมกะโอห์ม) ออสซิลเตอร์
จะมีความไวต่อสัญญาณรบกวนความชื้นและสภาวะ
แวดล้อมภายนอก ดังนั้น เราจะต้องรักษาค่า Rext
ให้มีค่าอยู่ในช่วง 5 กิโลโอห์ม ถึง 100 กิโลโอห์ม
ถึงแม้ว่าออสซิลเลเตอร์
จะทำงานได้โดยไม่ต้องต่อตัวเก็บประจุภาย
การเลือกตัวเก็บประจุสำหรับออสซิลเล
เตอร์ชนิดคริสตอล สามารถพิจารณาได้ดังตาราง
วงจรออสซิลเลเตอร์สร้างจากวงจรรีโซแนนต์ชนิด
คริสตอลหรือเซรามิ
กซึ่งต้องการเวลาเริ่มต้นค่าหนึ่งหลังจากป
้อนไฟเข้าไปเพื่อทำให้เกิดการสร้างออสซิลเลชั่น
ที่คงที่ ช่วงเวลาเริ่มต้นของวงจรออสซิลเลเตอร์
ในชิปหนึ่งๆ
จะเป็นตัวกำหนดว่าอุปกรณ์นั้นจะอยู่ในสภาวะ
ช่วงเวลาเริ่มต้นของวงจรออสซิลเลเตอร์
จะไปกระตุ้นให้วอตช์ด็อกไทเมอร์เกิดไทเอาต์
ซึ่งเป็นสิ่งที่สำคัญมาก ไปปลุก PIC16C5X จากโหมด Sleep
โดยอัตโนมัติ
OST จะไม่สามารถใช้ได้กับวงจรคริสต
อลความถี่ต่ำๆที่ต้องการช่วงเวลานานกว่า 18 มิ
ลลิวินาที
ในการเริ่มต้นและทำให้ความถี่คงที่
PIC16C5X จะมีวงจรรีเซตขณะเปิดเครื่อง
รวมอยู่ในชิปด้วย
โดยวงจรรีเซตนี้จะช่วยให้เกิดการรีเซ
ตภายในเมื่อเริ่มป้อนไฟเลี้ยง
วิธีการใช้วงจรนี้ทำได้โดยการต่อขา MCLR
เข้ากับไฟเลี้ยง VDD เท่านั้น
แผนภาพข้างล่างนี้จะแสดงวงจรรี
เซตขณะเปิดเครื่องภายในชิปอย่างคร่าวๆ
วงจรรีเซตขณะเปิดเครื่อง
และวงจรเริ่มต้นออสซิลเลเตอร์
มีความสัมพันธ์กันอย่างใกล้ชิด
เมื่อเริ่มป้อนไฟเลี้ยงวงจรคงค่าการรีเซต<
wbr>จะได้รับการเซตและวงจรจับเวลาจะถูก
จากรูปข้างต้น แสดงการเริ่มป้อนไฟเลี้ยงซึ่งค่า
VDD จะมีค่าเพิ่มขึ้นอย่างรวดเร็ว ค่า VDD
จะมีค่าเพิ่มขึ้นจนกระทั่งคงที่ก่อนที่ค่า
ที่ขา MCLR จะมีค่าลอจิกชิปจะมีค่าช่วงเวลา OST
ตามจริง หลังจากที่ MCLR มีค่าลอจิกสูง
จากรูปเป็นการใช้วงจรรีเซตบนชิ
ป (ขา MCLR กับ VDD ต่อเข้าหากัน) ขา VDD
จะมีค่าคงที่ก่อนที่วงจรจับเวลาเริ่ม
ต้นจะเกิดไทม์เอาต์ ซึ่งจะทำให้ไม่มีปัญหาใดๆ
ในการรีเซตนี้
จากรูป แสดงให้เห็นถึงปัญหาเกี่ยวกับ
แรงดันไฟฟ้าในกรณีที่ VDD
มีค่าเพิ่มขึ้นช้าเกินไป
ในสถานะการณ์นี้เมื่อวงจรจับเวลาเริ่มต้นเ
กิดไทม์เอาต์ ค่า VDD จะมีค่าไม่ถึงค่า VDD
ต่ำสุดและเป็นผลให้ไม่สามารถรับประกันได้ว
่าฟังก์ชั่นต่างๆในชิปจะทำงานอย่างถูกต้อง
โดยสรุปวงจรรีเซตกำลังไฟฟ้าในช
ิปจะรับประกันได้ว่าทำงานได้อย่างถูกต้อง
ถ้าอัตราเร็วในการเพิ่มค่า VDD ไม่น้อยกว่า 0.05 โวลต์
ต่อมิลลิวินาที และมีความจำเป็นที่ค่า VDD
ควรจะมีค่าเริ่มจาก 0 โวลต์
วงจรรีเซตกำลังไฟฟ้าในชิปจะไม่สามารถใช้
กับคริสตอลความถี่ต่ำที่ต้องใช้เวลานานกว่า 18 มิ
ลลิวินาที
เพื่อใช้ในการเริ่มต้นและทำให้คงที่
ในกรณีดังกล่าวควรใช้วงจร RC ภายนอกเพื่อใช้กับ
วงจรรีเซตกำลังไฟฟ้าที่ใช้เวลานาน
โหมดสลีปนี้สามารถทำได้โดยเอ็กซีคิวต์คำสั่ง
SLEEP ในสภาวะสลีปโหมด ค่าในตัววอตช์ด็อกไทเมอร์เคลียร์
แต่ยังคงทำงานอยู่ บิต PD ในรีจิสเตอร์
สถานะจะถูกเคลียร์ บิต TO จะถูกเซต และตัวขับออสซิลเล
เตอร์จะปิด พอร์ตอินพุต/เอาต์พุตยังคงเก็บค่าสถานะเดิม
ที่เป็นอยู่ก่อนที่คำสั่ง SLEEP จะถูกเอ็ก
ซีคิวต์ (เป็นค่าสูง,ต่ำ หรือความต้านทานสูง)
ในสลีปโหมดนี้จะทำให้การกินไฟต่ำสุด
ขาอินพุต/เอาต์พุตทุกขาจะมีค่าเป็น VDD
หรือไม่ก็เป็น VSS หากไม่ได้ต่อเชื่อมกับ
วงจรภายนอกที่มีการดึงกระแสจากขา
อินพุต/เอาต์พุต ขาอินพุต/เอาต์พุตที่อยู่ในโหมด
ความต้านทานสูงควรต่อเข้ากับ
อุปกรณ์ภายนอกศักดาไฟฟ้าสูงหรือต่ำ
ก็ได้เพื่อกันการสวิตช์
ของกระแสที่เกิดจากการปล่อยขาอินพุตลอยไว้ ขาอินพุตของ
RTCC ควรจะมีค่าเป็น VDD หรือ VSS
เพื่อให้การกินกำลังไฟฟ้ามีค่าน้อยที่สุด<
P>
ขา MCLR จะต้องมีค่าเท่ากับ VIHMC
ชิปจะเข้าสู่โหมดปกติเมื่อตัววอตช์ด็อกไทเมอร์
เกิดไทม์เอาต์ (ถ้าถูกใช้) หรือจากการป้อนสัญญาณพัลส์
ค่าต่ำเข้าที่ขา MCLR ทั้ง 2 กรณีนี้จะช่วยทำให้
PIC16C5X อยู่ในโหมดรีเซตเป็นเวลานานเท่ากับ
ค่าช่วงเวลา OST (ช่วงคาบเวลาเริ่มต้นของออสซิลเลเตอร์
) สัญญาณกระตุ้นจะมาจากขอบขาขึ้นที่ขา MCLR หรือ
ตัววอตช์ด็อกไทเมอร์เกิดไทม์เอาต์
ก่อนที่โปรแกรมจะกลับเข้าสู่การเอ็กซีคิวต์
ตามปกติ
บิต PD ในรีจิสเตอร์สถานะจะถูกเซตเป็น 1
ในช่วงเปิดไฟเลี้ยงแต่จะถูกเคลียร์
เมื่อใช้คำสั่ง SLEEP
โดยสามารถใช้เพื่อดูว่าตัวโปรเซสเซอร์นั้นถูกสั
่งให้เริ่มต้นทำงาน หรือถูกทำให้ตื่นจากสลี
ปโหมด บิต TO ในรีจิสเตอร์
สถานะสามารถให้ดูวาการตื่นขึ้นนี้เกิดขึ้น
เนื่องจากสัญญาณ MCLR ภายนอกหรือจากการที่วอตช์ด็
อกไทเมอร์หมดเวลา
ข้อสังเกต การใช้งานบางอย่าง
อาจต้องการตัวต้านทานและตัวเก็บประจุภายนอ
กต่อเชื่อมเข้าที่ขา MCLR เพื่อช่วยให้ค่า<
wbr>เวลาเริ่มต้นของออสซิลเลเตอร์
มีค่านานกว่าช่วงเวลา OST ทั่วไป
ในกรณีนี้ไม่ควรใช้ตัววอตช์ด็อกไทเมอร์
เพื่อปลุกจากโหมดไฟดับ
เนื่องจากสัญญาณรีเซตที่เกิดขึ้นจากที่ตัว
วอตช์ด็อกไทเมอร์เกิดไทม์เอาต์
จะไม่ทำให้ตัวเก็บประจุภายนอกเกิดการคาย
รูปแบบของอีพรอมประกอบด้วยฟิวส์อีพร
2
แบบแรกเป็นฟิวส์สำหรับอนุญาตให้ตัววอตช์ด็อกไทเมอร์
ทำงานและอีกแบบเป็นฟิวส์ที่ใช้เพื่อ
ป้องกันค่ารหัส
ชิป OST, QTP จะมีการกำหนดออสซิลเลเตอร์
ที่ใช้จากโรงงานและจะมีการทดสอบส่วนต
่างๆเป็นที่เรียบร้อย ชิปจะถูกทำเครื่อง
หมายคำนำหน้าไว้ว่าเป็น XT, RC, HS หรือ LP
ตามชนิดของออสซิลเลเตอร์ภายในและช่วงการใช้งาน
ตระกูล PIC16C5X จะมีอีพรอมพิเศษ 16 บิต
ที่ไม่ใช่ส่วนหนึ่งของหน่วยความจำโปรแกรมปกติ
บิต
เหล่านี้จะมีไว้สำหรับให้ผู้ใช้เก็บค่ารหั
สประจำตัว, ตรวจสอบผลบวกหรือข้อมูลอื่นๆ
ซึ่งจะไม่สามารถเข้าถึงบิต
เหล่านี้ได้ในช่วงการเอ็กซีคิวต์
โปรแกรมตามปกติ
รหัสโปรแกรมจะเขียนเอาไว้ในอีพรอม
จากที่กล่าวมานี้ก็เป็นไปได้ที่
ข้อสังเกต รูปแบบของฟิวส์และบิต
รหัสประจำตัวสามารถอ่านได้
ถึงแม้ว่าจะมีการใช้การป้องกันรหัส
เมื่อมีการใช้การป้องกันรหัสตำแหน่ง
ต่างๆในหน่วยความจำโปรแกรมจะอ่านค่าเป็นค่าเอาต
์พุตที่มีค่าเท่ากับ "00000000XXXX" (ฐานสอง) โดย X มีค่าเป็น
1 หรือ 0 วิธีการตรวจสอบชิ
ปหลังจากใช้การป้องกันรหัสทำได้โดยกระบวนก
ารดังนี้
ก. เริ่ม
แรกโปรแกรมและตรวจสอบดูว่าอุปกรณ์นั้นดีและ
ข. ต่อไป
ใส่ฟิวส์ป้องกันรหัสลงไปและโหลด
ค่าข้อมูลในไฟล์หนึ่งๆลงไปเก็บ
ค
. ตรวจสอบการป้องกันรหัสว่าช่วยป้องกันไฟล์
คุณลักษณะที่สำคัญ
อุปกรณ์ จำนวน
ขา อินพุต/เอาท์พุต EPROM/ROM RAM
PIC16C54 18 12 512 25
PIC16CR54 18 12 512 25
PIC16C56 18 12 1K 25
PIC16C55 28 20 512 24
PIC16C57 28 20 2K 72
PIC16CR57A 28 20 2K 72
PIC16C58A 28 20 2K 73
PIC16CR58A 28 20 2K 73
รีจิสเตอร์พอร์ตอินพุต/เอาท์พุต
รีจิสเตอร์
นี้สามารถถูกเขียนและอ่านภายใต้การควบคุมข
องโปรแกรมเหมือนกันรีจิสเตอร์ไฟล์ คำสั่งอ่าน เช่น MOVE,
PORTB, W โดยปกติจะอ่านจากขาอินพุต/เอาต์พุต
โดยไม่สนใจว่าขานั้นจะกำหนดให้เป็นขา
อินพุตหรือเอาต์พุต
เมื่อเริ่มต้นรีเซตเครื่องใหม่พอร์ต
ทั้งหมดจะถูกกำหนดให้เป็นอินพุต (โหมด
ความต้านทานสูง) และรีจิสเตอร์ควบคุมอินพุต/เอาต์พุต (TRISA, TRISB,
TRISC) จะถูกเซ็ตค่าเป็น "1" ทั้งหมด
คำสั่ง TRISf จะนำค่าที่เก็บในรีจิ
สเตอร์ W ไปเซ็ตรีจิสเอตร์พอร์ตอินพุตเอาต์พุตทั้ง 3 พอร์ต ตัวกำหนดให้ W เป็น "0"
คำสั่ง TRISf จะทำให้ขาที่ถูกเซ็ตเป็นขาเอาต์พุตโดย f
คือค่าของพอร์ต A,B และ C
การอินเตอร์เฟสกับพอร์ตอินพุต/เอาท์พุต
วงจรสำหรับบิตบิตหนึ่งของพอร์ต
อินพุต/เอาต์พุต แสดงในรูปข้างล่างนี้
สามารถกำหนดได้ว่าพอร์ตไหนจะเป็นอินพุตหรือเอาต์พุต
การใช้งานเป็นพอร์ตอินพุตสัญญาณจะไม่ถูกแลตซ์เอาไว้
การป้อนสัญญาณอินพุต
ต้องคงค่าจนกระทั่งทำการอ่านโดยคำสั่งอินพุต
จนครบ (เช่น MOV PORTB, W) แต่สำหรับการใช้งานเป็นพอร์ตเอาต์พุ
ตนั้นข้อมูลจะถูกแลตซ์เอาไว้
และจะไม่มีการเปลี่ยนค่าจนกว่าจะมีการรีจิสเตอร์ใช้งานทั่วไป
f08h-f1Fh :รีจิสเตอร์ใช้งานทั่วไป (เฉพาะ PIC16C57
ถูกเลือกใช้งานโดยไม่ขึ้นกับแบงค์ที่ถูกเลือก)
f10h-f1Fh :รีจิสเตอร์
ใช้งานทั่วไปในหน่วยความจำแบงค์ 0
f20h-f2Fh :เหมือนกับ f00h-f0Fh
f30h-f3Fh :รีจิสเตอร์
ใช้งานทั่วไปในหน่วยความจำแบงค์ 1
f40h-f4Fh :เหมือนกับ f00h-f0Fh
f50h-f5Fh :รีจิสเตอร์
ใช้งานทั่วไปในหน่วยความจำแบงค์ 2
f60h-f6Fh :เหมือนกับ f00h-f0Fh
f70h-f7Fh :รีจิสเตอร์
ใช้งานทั่วไปในหน่วยความจำแบงค์ 3
รีจิสเตอร์ใช้งานพิเศษ
รีจิสเตอร์ข้างต้นนี้สามารถเขียนได้อย่างเดียว
และจะถูกเซตให้เป็น "1" ทั้งหมดเมื่อทำการรีเซ็
ต
สภาวะรีเซต
สภาวะรีเซตอาจเกิดจาก

-
การที่เริ่มป้อนไฟเลี้ยงให้แก่ชิป

- ป้อนค่าลอจิก "0" เข้าที่ขา


- เกิดจากตัว WDT เกิดไทม์เอาต์
ชิ
ปจะอยู่ในสภาวะรีเซตตราบเท่าที่ขา
ยังคงมีค่าลอจิก "0" หรือตัว OST (oscillator start up timer)
แอกทีฟ
ตัว OST จะแอกทีฟทันทีที่ขา
มีค่าลอจิกเป็น "1" สรุปได้ว่า
ในกรณีการรีเซตเนื่องจากการป้อนไฟเลี้ยง
ทำให้โดยการผูกขา
เข้ากับขา VDD และตัว OST
จะเริ่มทำงานหลังจากป้อนไฟเลี้ยง ในกรณีที่ WDT
เกิดไทม์เอาต์ ตัว OST เริ่มทำงานเมื่อตัว WDT เกิดไทม์เอาต์
(ในขณะที่ขา
มีค่าลอจิก "1"
ในกรณีที่รีเซตขา
ตัว OST
จะเริ่มทำงานอีกครั้ง เมื่อขา
มีค่าลอจิก
"1" ) โดยปกติตัว OST จะมีช่วงคาบเวลาเท่ากับ 18 มิ
ลลิวินาที ซึ่งจะกล่าวถึงรายละเอียดของ OST
อีกครั้งในตอนหลังในสภาวะรีเซต PIC16C5X
จะมีสถานะดังนี้
- ออสซิลเลเตอร์จะทำงานหรือเริ่มต้นทำงาน
(ป้อนไฟเลี้ยงหรือตื่นจากโหมด SLEEP)
- ขาของพอร์ตอินพุต/เอาพุตทุกขา (RA0-RA3, RB0-RB7,
RC0-RC7) จะอยู่ในสถานะความต้านทานสูง
โดยจะรีเซตให้รีจิสเตอร์ "TRIS" มีค่าเป็น "1" ทั้งหมด
(โหมดอินพุต)
- โปรแกรมเคาน์เตอร์ถูกเซตเป็น "1" ทั้งหมด (1FFh ใน
PIC16C54/55, 3FFh ใน PIC16C56 และ 3FFh ใน PIC16C57)
- รีจิสเตอร์ออปชั่นถูกเซตเป็น "1" ทั้งหมด
- ตัว WDT และปรีสเกลเลอร์ จะถูกเคลีย
- 3 บิตบน (บิตเลือกเพจ) ในรี่จิสเตอร์
สถานะถูกเคลียเป็น "0"
- เฉพาะชิปที่ใช้ออสซิลเลเตอร์แบบ RC สัญญาณ CLKOUT ที่ขา
OSC2 จะมีค่าเป็นลอจิก "0"
ปรีสเกลเลอร์
ปรีสเกลเลอร์จะใช้เคาน์เตอร์ขนาด 8 บิต
คอยทำหน้าที่เป็นปรีสเกลเลอร์ให้กับตัว RTCC หรือเป็นปรี
สเกลเลอร์ให้กับตัว WDT บล็อกไดอะแกรมแสดงการทำงานของปรี
สเกลเลอร์แสดงดังรูปที่ข้างล่างนี้

รูปที่ 10 บล็อกไดอะแกรมแสดงการทำงานของวอตช์ด็
อกไทเมอร์ และปรีสเกลเลอร์
ซึ่งจะเห็นว่าปรีสเกลเลอร์
ตัวเดียวสามารถใช้ร่วมกันได้ระหว่างตัว RTCC กับตัว WDT
ดังนั้นเมื่อนำปรีสเกลเลอร์มาใช้กับ RTCC
ก็หมายความว่าจะไม่มีปรีสเกลเลอร์ที่จะใช้กับตัว WDT
และในทางกลับกันถ้าถูกใช้ด้วย WDT RTCC
ก็ไม่สามารถจะใช้ปรีสเกลเลอร์ ได้อีก
บิต PSA และบิต PS0-PS2 ในรีจิสเตอร์ออปชั่น
จะใช้กำหนดค่าในปรีสเกลเลอร์และค่าอัตราส่วนในปรี
สเกลเลอร์
การสับเปลี่ยนการใช้งานปรีสเกลเลอร์
การเปลี่ยนการใช้งานปรีสเกลเลอร์ที่ใช้กับ RTCC
ให้ไปใช้กับตัว WDT
การสับเปลี่ยนการใช้งานปรีสเกลเลอร์
ภายใต้การควบคุมของซอฟต์แวร์ เช่น
กาสับเปลี่ยนในช่วงที่โปรแกรมกำลังเอ็กซีคิวต์
อยู่
เพื่อหลีกเลี่ยนการที่ต้องรีเซตอุปกรณ์โดยไม่
จะทำขั้นตอนที่ 1 และ 2 ในขณะที่ RTCC
ใช้สัญญาณนาฬิกาจากภายนอกในขั้นตอนที่ 7 และ 8
จะต้องทำก็ต่อเมื่อค่าในปรีสเกลเลอร์
ที่ต้องการเป็น "000" หรือ "001"
การเปลี่ยนปรีสเกลเลอร์ที่ใช้งานกับ WDT ให้ไปใช้กับ RTCC
การเปลี่ยนปรีสเกลเลอร์ที่ใช้กับ WDT ให้ไปใช้
กับ RTCC ต้องใช้ขั้นตอนดังนี้
สรุปชุดคำสั่งพื้นฐาน
วอตช์ด็อกไทเมอร์
คาบเวลาของวอตช์ด็อกไทเมอร์
วงจรออสซิลเลเตอร์
ออสซิลเลเตอร์แบบ ความถี่รีโซเนเตอร์
ช่วงของค่าตัวเก็บประจุ (pF) XT 445 kHz 150-330 2.0 MHz 20-330 4.0 MHz 20-330 HS 8.0 MHz 20-200 ออสซิลเลเตอร์แบบคริสตอล
ออสซิลเลเตอร์แบบ
ความถี่รีโซเนเตอร์ ช่วงของค่าตัวเก็บประจุ
(pF) XT 445 kHz 150-330 2.0 MHz 20-330 4.0 MHz 20-330 HS 8.0 MHz 20-200 ออสซิลเลเตอร์แบบ RC
ออสซิลเลเตอร์
ความถี่ C1 C2 LP 32
kHz 15 pF 15 pF
XT 100
kHz 15-30 pF 200-300 pF 200
kHz 15-30 pF 100-200 pF 455
kHz 15-30 pF 15-100 pF 1
MHz 15-30pF 15-30 pF 2
MHz 15 pF 15 pF 4
MHz 15 pF 15 pF
HS 4
MHz 15 pF 15 pF
8 MHz
15 pF 15 pF
20 MHz
15pF 15 pF
ช่วงเวลาเริ่มต้นของวงจรออสซิลเลเตอร์ : OST (Oscillator Start-up Timer)
สลีปโหมด
การเข้าสู่โหมดปกติ
รูปแบบของฟิวส์
รหัสประจำตัวของลูกค้า
การป้องกันรหัส
การตรวจสอบในส่วนการป้องกันรหัส
เอกสารอ้างอิง
โชคชัย ลอรัตนเรืองกิต
วารสารเซมิคอนดักเตอร์ ฉบับที่166 ธันวาคม 2539
โชคชัย ลอรัตนเรืองกิต
วารสารเซมิคอนดักเตอร์ ฉบับที่167 มกราคม 2540
[ บทเรียน ]
[ 204421 ]
[ รายวิชา ]
[ ภาควิชาวิศวกรรมคอมพิวเตอร์ ]
[ คณะวิศวกรรมศาสตร์ ]
[ มหาวิทยาลัยเกษตรศาสตร์ ]