MICROCHIP DMT เดดแมนไทม์เมอร์

บันทึก: ส่วนคู่มืออ้างอิงสำหรับครอบครัวนี้มีขึ้นเพื่อใช้เป็นส่วนเสริมของเอกสารข้อมูลอุปกรณ์ ส่วนคู่มือนี้อาจใช้ไม่ได้กับอุปกรณ์ dsPIC33/PIC24 ทั้งหมด ทั้งนี้ขึ้นอยู่กับรุ่นของอุปกรณ์
- โปรดดูหมายเหตุที่จุดเริ่มต้นของบท "Deadman Timer (DMT)" ในเอกสารข้อมูลอุปกรณ์ปัจจุบันเพื่อตรวจสอบว่าเอกสารนี้รองรับอุปกรณ์ที่คุณใช้อยู่หรือไม่
- เอกสารข้อมูลอุปกรณ์และส่วนคู่มืออ้างอิงสำหรับครอบครัวสามารถดาวน์โหลดได้จาก Microchip Worldwide Webเว็บไซต์ที่: http://www.microchip.com
การแนะนำ
โมดูล Deadman Timer (DMT) ได้รับการออกแบบมาเพื่อให้ผู้ใช้สามารถตรวจสอบความสมบูรณ์ของซอฟต์แวร์แอปพลิเคชันของตนโดยกำหนดให้ตัวจับเวลาขัดจังหวะเป็นระยะภายในหน้าต่างเวลาที่ผู้ใช้ระบุ โมดูล DMT เป็นตัวนับแบบซิงโครนัส และเมื่อเปิดใช้งาน จะนับการดึงคำสั่ง และสามารถทำให้เกิดซอฟต์แทรป/อินเตอร์รัปต์ โปรดดูบท "ตัวควบคุมการขัดจังหวะ" ในแผ่นข้อมูลอุปกรณ์ปัจจุบันเพื่อตรวจสอบว่าเหตุการณ์ DMT เป็นซอฟต์แทรปหรือการขัดจังหวะหรือไม่ หากตัวนับ DMT ไม่ได้รับการล้างภายในจำนวนคำสั่งที่ตั้งไว้ โดยทั่วไปแล้ว DMT จะเชื่อมต่อกับนาฬิการะบบที่ขับเคลื่อนโปรเซสเซอร์ (TCY) ผู้ใช้ระบุค่าการหมดเวลาของตัวจับเวลาและค่ามาสก์ที่ระบุช่วงของหน้าต่าง ซึ่งเป็นช่วงของการนับที่ไม่ได้รับการพิจารณาสำหรับเหตุการณ์การเปรียบเทียบ
คุณสมบัติหลักบางประการของโมดูลนี้คือ:
- การกำหนดค่าหรือซอฟต์แวร์เปิดใช้งานการควบคุม
- ระยะเวลาหมดเวลาที่กำหนดโดยผู้ใช้หรือจำนวนคำสั่ง
- สองลำดับคำสั่งเพื่อล้างตัวจับเวลา
- หน้าต่างที่กำหนดค่าได้ 32 บิตเพื่อล้างตัวจับเวลา
แสดงบล็อกไดอะแกรมของโมดูล Deadman Timer
ไดอะแกรมบล็อกโมดูล Deadman Timer

บันทึก:
- สามารถเปิดใช้ DMT ได้ใน Configuration register, FDMT หรือใน Special Function Register (SFR), DMTCON
- DMT จะถูกโอเวอร์คล็อกเมื่อใดก็ตามที่โปรเซสเซอร์ดึงคำสั่งโดยใช้นาฬิการะบบ สำหรับอดีตample หลังจากดำเนินการตามคำสั่ง GOTO (ซึ่งใช้รอบคำสั่งสี่รอบ) ตัวนับ DMT จะเพิ่มขึ้นเพียงครั้งเดียว
- BAD1 และ BAD2 เป็นแฟล็กลำดับที่ไม่เหมาะสม สำหรับข้อมูลเพิ่มเติม โปรดดูหัวข้อ 3.5 “การรีเซ็ต DMT”
- DMT Max Count ถูกควบคุมโดยค่าเริ่มต้นของการลงทะเบียน FDMTCNL และ FDMTCNH
- เหตุการณ์ DMT เป็นซอฟต์แทรปหรืออินเทอร์รัปต์ที่ไม่สามารถปิดบังได้
แสดงแผนภาพเวลาของเหตุการณ์ Deadman Timer
เหตุการณ์จับเวลา Deadman

การลงทะเบียน DMT
บันทึก: อุปกรณ์ในตระกูล dsPIC33/PIC24 แต่ละรุ่นอาจมีโมดูล DMT หนึ่งโมดูลขึ้นไป โปรดดูเอกสารข้อมูลเฉพาะของอุปกรณ์สำหรับรายละเอียดเพิ่มเติม
- โมดูล DMT ประกอบด้วย Special Function Registers (SFRs):
- ดีเอ็มทีคอน: การลงทะเบียนการควบคุม Deadman Timer
- การลงทะเบียนนี้ใช้เพื่อเปิดหรือปิดใช้งาน Deadman Timer
- DMTPECLR: Deadman Timer Preclear ลงทะเบียน
- การลงทะเบียนนี้ใช้เพื่อเขียนคีย์เวิร์ดที่ชัดเจนเพื่อล้าง Deadman Timer ในที่สุด
- DMTCLR: Deadman Timer ล้างการลงทะเบียน
- การลงทะเบียนนี้ใช้เพื่อเขียนคำหลักที่ชัดเจนหลังจากที่มีการเขียนคำนำหน้าที่ชัดเจนแล้ว
- การลงทะเบียน DMTPRECLR Deadman Timer จะถูกล้างหลังจากเขียนคีย์เวิร์ดที่ชัดเจน
- DMSTAT: ลงทะเบียนสถานะ Deadman Timer
- การลงทะเบียนนี้แสดงสถานะสำหรับค่าคีย์เวิร์ดหรือลำดับที่ไม่ถูกต้อง หรือเหตุการณ์ Deadman Timer และหน้าต่างเคลียร์ DMT เปิดอยู่หรือไม่
- DMCTTL: Deadman Timer Count ลงทะเบียนต่ำและ
- DMTCTH: Deadman Timer นับการลงทะเบียนสูง
- การลงทะเบียนจำนวนที่ต่ำกว่าและสูงกว่าเหล่านี้ เมื่อรวมกันเป็นการลงทะเบียนตัวนับ 32 บิต ทำให้ซอฟต์แวร์ผู้ใช้สามารถอ่านเนื้อหาของตัวนับ DMT ได้
- DMPSCNTL: โพสต์สถานะ กำหนดค่าสถานะการนับ DMT ลงทะเบียนต่ำและ
- DMTPCNTH: โพสต์สถานะ กำหนดค่าสถานะการนับ DMT ลงทะเบียนสูง
- รีจิสเตอร์ที่ต่ำกว่าและสูงกว่าเหล่านี้ให้ค่าของบิตการกำหนดค่า DMTCNTx ในรีจิสเตอร์ FDMTCNTL และ FDMTCNTH ตามลำดับ
- DMTPSITVL: โพสต์สถานะ กำหนดค่าสถานะช่วง DMT ลงทะเบียนต่ำและ
- DMTPSITVH: โพสต์สถานะ กำหนดค่าสถานะช่วงเวลา DMT ลงทะเบียนสูง
- รีจิสเตอร์ที่ต่ำกว่าและสูงกว่าเหล่านี้ให้ค่าของบิตการกำหนดค่า DMTIVTx ในรีจิสเตอร์ FDMTIVTL และ FDMTIVTH ตามลำดับ
- DMTHOLDREG: DMT ระงับการลงทะเบียน
- รีจิสเตอร์นี้เก็บค่าที่อ่านล่าสุดของรีจิสเตอร์ DMTCNTH เมื่ออ่านรีจิสเตอร์ DMTCNTH และ DMTCNTL
การลงทะเบียนการกำหนดค่าฟิวส์ที่ส่งผลต่อโมดูลตัวจับเวลา Deadman
| ชื่อลงทะเบียน | คำอธิบาย |
| เอฟดีเอ็มที | การตั้งค่าบิต DMTEN ในรีจิสเตอร์นี้จะเปิดใช้งานโมดูล DMT และหากบิตนี้ชัดเจน ก็สามารถเปิดใช้งาน DMT ในซอฟต์แวร์ผ่านรีจิสเตอร์ DMTCON |
| FDMTCNTL และ FDMTCNTH | ตอนล่าง (DMTCNT[15:0]) และตอนบน (DMTCNT[31:16])
16 บิตกำหนดค่าการหมดเวลานับคำสั่ง DMT 32 บิต ค่าที่เขียนไปยังรีจิสเตอร์เหล่านี้คือจำนวนคำสั่งทั้งหมดที่จำเป็นสำหรับเหตุการณ์ DMT |
| FDMTIVTL และ FDMTIVTH | ตอนล่าง (DMTIVT[15:0]) และตอนบน (DMTIVT[31:16])
16 บิตกำหนดค่าช่วงเวลาหน้าต่าง DMT 32 บิต ค่าที่เขียนไปยังรีจิสเตอร์เหล่านี้คือจำนวนคำสั่งขั้นต่ำที่จำเป็นในการล้าง DMT |
ลงทะเบียนแผนที่
ข้อมูลสรุปของการลงทะเบียนที่เกี่ยวข้องกับโมดูล Deadman Timer (DMT) มีอยู่ในตารางที่ 2-2
| ชื่อ SFR | บิต 15 | บิต 14 | บิต 13 | บิต 12 | บิต 11 | บิต 10 | บิต 9 | บิต 8 | บิต 7 | บิต 6 | บิต 5 | บิต 4 | บิต 3 | บิต 2 | บิต 1 | บิต 0 |
| ดีเอ็มทีคอน | ON | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| DMTPECLR | ขั้นตอนที่ 1[7:0] | - | - | - | - | - | - | - | - | |||||||
| DMTCLR | - | - | - | - | - | - | - | - | ขั้นตอนที่ 2[7:0] | |||||||
| DMSTAT | - | - | - | - | - | - | - | - | แย่1 | แย่2 | ดีเอ็มทีเวนท์ | - | - | - | - | วินอพน |
| ดีเอ็มซีเอ็นทีแอล | เคาน์เตอร์[15:0] | |||||||||||||||
| ดีเอ็มทีซีเอ็นที | เคาน์เตอร์[31:16] | |||||||||||||||
| DMTHOLDREG | ขึ้น[15:0] | |||||||||||||||
| DMTPCNTL | PSCNT[15:0] | |||||||||||||||
| DMTPCNTH | PSCNT[31:16] | |||||||||||||||
| DMTPSITVL | พีเอสไอทีวี[15:0] | |||||||||||||||
| ดีเอ็มทีพีซินทีวีเอช | พีเอสไอทีวี[31:16] | |||||||||||||||
ตำนาน: ไม่ได้ใช้งาน อ่านเป็น '0' ค่ารีเซ็ตจะแสดงเป็นเลขฐานสิบหก
ทะเบียนควบคุม DMT
ดีเอ็มทีคอน: การลงทะเบียนการควบคุม Deadman Timer
| อาร์/ดับบลิว-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 |
| ON(1,2) | - | - | - | - | - | - | - |
| บิต15 | บิต8 |
| ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 |
| - | - | - | - | - | - | - | - |
| บิต7 | บิต0 |
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |

บันทึก
- บิตนี้มีการควบคุมเฉพาะเมื่อ DMTEN = 0 ในการลงทะเบียน FDMT
- ไม่สามารถปิดใช้งาน DMT ในซอฟต์แวร์ได้ การเขียน '0' ในบิตนี้ไม่มีผลใดๆ
DMTPRECLR: การลงทะเบียนล่วงหน้า Deadman Timer
| อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 |
| ขั้นตอนที่ 1[7:0](1) | |||||||
| บิต15 | บิต8 | ||||||
| ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 |
| - | - | - | - | - | - | - | - |
| บิต7 | บิต0 |
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |

หมายเหตุ 1: บิต[15:8] จะถูกล้างเมื่อตัวนับ DMT ถูกรีเซ็ตโดยการเขียนลำดับที่ถูกต้องของ STEP1 และ STEP2
DMTCLR: Deadman Timer ล้างการลงทะเบียน
| ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 |
| - | - | - | - | - | - | - | - |
| บิต15 | บิต8 |
| อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 | อาร์/ดับบลิว-0 |
| ขั้นตอนที่ 2[7:0](1) | |||||||
| บิต7 | บิต0 | ||||||
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |

หมายเหตุ 1: บิต[7:0] จะถูกล้างเมื่อตัวนับ DMT ถูกรีเซ็ตโดยการเขียนลำดับที่ถูกต้องของ STEP1 และ STEP2
DMTSTAT: การลงทะเบียนสถานะ Deadman Timer
| ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 |
| - | - | - | - | - | - | - | - |
| บิต15 | บิต8 |
| อาร์-0 | อาร์-0 | อาร์-0 | ยู-0 | ยู-0 | ยู-0 | ยู-0 | อาร์-0 |
| แย่1(1) | แย่2(1) | ดีเอ็มทีเวนท์(1) | - | - | - | - | วินอพน |
| บิต7 | บิต0 | ||||||
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |

โน๊ต1: บิต BAD1, BAD2 และ DMTEVENT จะถูกล้างในการรีเซ็ตเท่านั้น
DMCTNTL: Deadman Timer Count Register ต่ำ
| R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 |
| เคาน์เตอร์[15:8] |
| บิต 15 บิต 8 |
| R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 |
| เคาน์เตอร์[7:0] |
| บิต 7 บิต 0 |
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |
บิต 15-0: COUNTER[15:0]: อ่านเนื้อหาปัจจุบันของบิตตัวนับ DMT ที่ต่ำกว่า
DMTCNTH: Deadman Timer นับการลงทะเบียนสูง
| R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 |
| เคาน์เตอร์[31:24] |
| บิต 15 บิต 8 |
| R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 |
| เคาน์เตอร์[23:16] |
| บิต 7 บิต 0 |
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |
บิต 15-0: COUNTER[31:16]: อ่านเนื้อหาปัจจุบันของบิตตัวนับ DMT ที่สูงขึ้น
DMTPSCNTL: สถานะการโพสต์ กำหนดค่าสถานะการนับ DMT ที่ลงทะเบียนต่ำ
| อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 |
| PSCNT[15:8] | |||||||
| บิต15 | บิต8 | ||||||
| R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 |
| PSCNT[7:0] |
| บิต 7 บิต 0 |
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |
บิต 15-0: PSCNT[15:0]: ค่าจำนวนคำสั่ง DMT ที่ต่ำกว่า บิตสถานะการกำหนดค่า ค่านี้เป็นค่าของการลงทะเบียนการกำหนดค่า FDMTCNTL เสมอ
DMTPSCNTH: สถานะการโพสต์ กำหนดค่าสถานะการนับ DMT ลงทะเบียนสูง
| อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 |
| PSCNT[31:24] | |||||||
| บิต15 | บิต8 | ||||||
| อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 |
| PSCNT[23:16] | |||||||
| บิต7 | บิต0 | ||||||
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |
บิต 15-0: PSCNT[31:16]: บิตค่าสถานะการกำหนดค่าจำนวนคำสั่ง DMT ที่สูงขึ้น นี่คือค่าของการลงทะเบียนการกำหนดค่า FDMTCNTH เสมอ
DMPSINTVL: โพสต์สถานะ กำหนดค่าสถานะช่วงเวลา DMT ลงทะเบียนต่ำ
| R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 |
| พีเอสไอทีวี[15:8] |
| บิต 15 บิต 8 |
| R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 |
| พีเอสไอทีวี[7:0] |
| บิต 7 บิต 0 |
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |
บิต 15-0: PSINTV[15:0]: บิตสถานะการกำหนดค่าช่วงเวลาหน้าต่าง DMT ที่ต่ำกว่า นี่คือค่าของการลงทะเบียนการกำหนดค่า FDMTIVTL เสมอ
DMPSINTVH: โพสต์สถานะ กำหนดค่าสถานะช่วง DMT ลงทะเบียนสูง
| อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 |
| พีเอสไอทีวี[31:24] | |||||||
| บิต15 | บิต8 | ||||||
| อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 |
| พีเอสไอทีวี[23:16] | |||||||
| บิต7 | บิต0 | ||||||
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |
บิต 15-0: PSINTV[31:16]: บิตสถานะการกำหนดค่าช่วงเวลาหน้าต่าง DMT ที่สูงขึ้น นี่คือค่าของการลงทะเบียนการกำหนดค่า FDMTIVTH เสมอ
DMTHOLDREG: DMT ระงับการลงทะเบียน
| อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 |
| ขึ้น[15:8](1) | |||||||
| บิต15 | บิต8 | ||||||
| อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 | อาร์-0 |
| ขึ้น[7:0](1) | |||||||
| บิต7 | บิต0 | ||||||
| ตำนาน:
R = บิตที่อ่านได้ W = บิตที่เขียนได้ U = บิตที่ไม่ได้ใช้งาน อ่านเป็น '0' -n = ค่าที่ POR '1' = บิตถูกตั้งค่า '0' = บิตถูกล้าง x = ไม่ทราบบิต |
บิต 15-0: UPRCNT[15:0]: มีค่าของการลงทะเบียน DMTCNTH เมื่อการลงทะเบียน DMTCNTL และ DMTCNTH เป็นบิตที่อ่านล่าสุด (1)
หมายเหตุ 1: รีจิสเตอร์ DMTHOLDREG เริ่มต้นเป็น '0' เมื่อรีเซ็ต และจะโหลดเมื่อรีจิสเตอร์ DMTCNTL และ DMTCNTH ถูกอ่านเท่านั้น
ปฏิบัติการดีเอ็มที
โหมดการทำงาน Aof
หน้าที่หลักของโมดูล Deadman Timer (DMT) คือการขัดจังหวะโปรเซสเซอร์ในกรณีที่ซอฟต์แวร์ทำงานผิดปกติ โมดูล DMT ซึ่งทำงานบนนาฬิการะบบ เป็นตัวจับเวลาการดึงคำสั่งที่ทำงานฟรี ซึ่งจะโอเวอร์คล็อกเมื่อใดก็ตามที่การดึงคำสั่งเกิดขึ้นจนกว่าจะมีการนับที่ตรงกัน ไม่ดึงคำแนะนำเมื่อโปรเซสเซอร์อยู่ในโหมดสลีป
โมดูล DMT ประกอบด้วยตัวนับ 32 บิต รีจิสเตอร์ DMTCNTL และ DMTCNTH แบบอ่านอย่างเดียวที่มีค่าการจับคู่การนับการหมดเวลา ตามที่ระบุโดยรีจิสเตอร์ฟิวส์การกำหนดค่าภายนอก 16 บิตสองตัว FDMTCNTL และ FDMTCNTH เมื่อใดก็ตามที่การจับคู่นับเกิดขึ้น เหตุการณ์ DMT จะเกิดขึ้น ซึ่งไม่ใช่อะไรนอกจากซอฟต์แทรป/อินเตอร์รัปต์ โปรดดูที่บท "ตัวควบคุมการขัดจังหวะ" ในแผ่นข้อมูลอุปกรณ์ปัจจุบันเพื่อตรวจสอบว่าเหตุการณ์ DMT เป็นซอฟต์แทรปหรือการขัดจังหวะหรือไม่ โดยทั่วไปแล้วโมดูล DMT จะใช้ในแอปพลิเคชันที่สำคัญต่อภารกิจและสำคัญต่อความปลอดภัย ซึ่งต้องตรวจพบความล้มเหลวของฟังก์ชันการทำงานและการจัดลำดับของซอฟต์แวร์
การเปิดใช้งาน A และการปิดใช้งานโมดูล DMT
โมดูล DMT สามารถเปิดใช้งานหรือปิดใช้งานโดยการกำหนดค่าอุปกรณ์ หรือสามารถเปิดใช้งานผ่านซอฟต์แวร์โดยการเขียนไปยังเครื่องบันทึก DMTCON
หากมีการตั้งค่าบิตการกำหนดค่า DMTEN ในรีจิสเตอร์ FDMT ไว้ DMT จะถูกเปิดใช้งานเสมอ บิตควบคุม ON (DMTCON[15]) จะแสดงสิ่งนี้โดยการอ่าน '1' ในโหมดนี้ ไม่สามารถล้างบิต ON ในซอฟต์แวร์ได้ หากต้องการปิดใช้งาน DMT จะต้องเขียนการกำหนดค่าใหม่ลงในอุปกรณ์ หาก DMTEN ถูกตั้งค่าเป็น '0' ในฟิวส์ แสดงว่า DMT นั้นถูกปิดใช้งานในฮาร์ดแวร์
ซอฟต์แวร์สามารถเปิดใช้งาน DMT ได้โดยการตั้งค่าบิต ON ในการลงทะเบียน Deadman Timer Control (DMTCON) อย่างไรก็ตาม สำหรับการควบคุมซอฟต์แวร์ บิตการกำหนดค่า DMTEN ในการลงทะเบียน FDMT ควรตั้งค่าเป็น '0' เมื่อเปิดใช้งานแล้ว การปิดใช้งาน DMT ในซอฟต์แวร์จะไม่สามารถทำได้
DMT นับช่วงเวลาที่มีหน้าต่าง
โมดูล DMT มีโหมดการทำงานแบบหน้าต่าง บิตการกำหนดค่า DMTIVT[15:0] และ DMTIVT[31:16] ในรีจิสเตอร์ FDMTIVTL และ FDMTIVTH ตามลำดับ ตั้งค่าระหว่างช่วงหน้าต่าง ในโหมด Windowed ซอฟต์แวร์สามารถล้าง DMT ได้ก็ต่อเมื่อตัวนับอยู่ในหน้าต่างสุดท้ายก่อนที่จะมีการจับคู่การนับ นั่นคือ ถ้าค่าตัวนับ DMT มากกว่าหรือเท่ากับค่าที่เขียนไปยังค่าช่วงเวลาของหน้าต่าง เฉพาะลำดับที่ชัดเจนเท่านั้นที่สามารถแทรกลงในโมดูล DMT ได้ หาก DMT ถูกล้างก่อนหน้าต่างที่อนุญาต ซอฟต์แทรปหรือการขัดจังหวะ Deadman Timer จะถูกสร้างขึ้นทันที
การทำงาน DMT ในโหมดประหยัดพลังงาน
เนื่องจากโมดูล DMT เพิ่มขึ้นโดยการดึงคำสั่งเท่านั้น ค่าการนับจะไม่เปลี่ยนแปลงเมื่อคอร์ไม่ได้ใช้งาน โมดูล DMT ยังคงไม่ทำงานในโหมดสลีปและโหมดว่าง ทันทีที่อุปกรณ์ตื่นขึ้นจากโหมดสลีปหรือไม่ได้ใช้งาน ตัวนับ DMT จะเริ่มเพิ่มขึ้นอีกครั้ง
การรีเซ็ต DMT
DMT สามารถรีเซ็ตได้สองวิธี: วิธีหนึ่งใช้การรีเซ็ตระบบ และอีกวิธีคือเขียนลำดับที่สั่งไปยังรีจิสเตอร์ DMTPRECLR และ DMTCLR การล้างค่าตัวนับ DMT ต้องมีลำดับการดำเนินการพิเศษ:
- บิต STEP1[7:0] ในรีจิสเตอร์ DMTPRECLR จะต้องเขียนเป็น '01000000' (0x40):
- หากมีการเขียนค่าอื่นที่ไม่ใช่ 0x40 ลงในบิต STEP1x บิต BAD1 ในรีจิสเตอร์ DMTSTAT จะถูกตั้งค่าและทำให้เหตุการณ์ DMT เกิดขึ้น
- หากขั้นตอนที่ 2 ไม่ได้นำหน้าด้วยขั้นตอนที่ 1 จะมีการตั้งค่าสถานะ BAD1 และ DMTEVENT แฟล็ก BAD1 และ DMTEVENT จะถูกล้างบนอุปกรณ์รีเซ็ตเท่านั้น
- บิต STEP2[7:0] ในการลงทะเบียน DMTCLR จะต้องเขียนเป็น '00001000' (0x08) สิ่งนี้สามารถทำได้ก็ต่อเมื่อนำหน้าด้วยขั้นตอนที่ 1 และ DMT อยู่ในช่วงเวลาหน้าต่างที่เปิดอยู่ เมื่อเขียนค่าที่ถูกต้องแล้ว ตัวนับ DMT จะถูกล้างเป็นศูนย์ ค่ารีจิสเตอร์ DMTPRECLR, DMTCLR และ DMTSTAT จะถูกหักล้างเป็นศูนย์เช่นกัน
- หากมีการเขียนค่าอื่นที่ไม่ใช่ 0x08 ลงในบิต STEP2x บิต BAD2 ในรีจิสเตอร์ DMTSTAT จะถูกตั้งค่าและทำให้เหตุการณ์ DMT เกิดขึ้น
- ขั้นตอนที่ 2 ไม่ได้ดำเนินการในช่วงเวลาหน้าต่างที่เปิดอยู่ มันทำให้ตั้งค่าสถานะ BAD2 เหตุการณ์ DMT เกิดขึ้นทันที
- การเขียนลำดับ preclear แบบ back-to-back (0x40) ยังทำให้ตั้งค่าสถานะ BAD2 และทำให้เกิดเหตุการณ์ DMT
บันทึก: หลังจากลำดับ preclear/clear ที่ไม่ถูกต้อง จะใช้เวลาอย่างน้อยสองรอบในการตั้งค่าแฟล็ก BAD1/BAD2 และสามรอบเป็นอย่างน้อยเพื่อตั้งค่า DMTEVENT
แฟล็ก BAD2 และ DMTEVENT จะถูกล้างบนอุปกรณ์รีเซ็ตเท่านั้น อ้างอิงผังงานดังรูปที่ 3-1
ผังงานสำหรับเหตุการณ์ DMT
หมายเหตุ 1
- DMT ถูกเปิดใช้งาน (ON (DMTCON[15]) ตามคุณสมบัติโดย FDMT ใน Configuration Fuses
- ตัวนับ DMT สามารถรีเซ็ตได้หลังจากตัวนับหมดอายุหรือ BAD1/BAD2 เกิดขึ้นโดยการรีเซ็ตอุปกรณ์เท่านั้น
- STEP2x ก่อน STEP1x (DMTCLEAR เขียนก่อน DMTPRECLEAR) หรือ BAD_STEP1 (DMTPRECLEAR เขียนโดยมีค่าไม่เท่ากับ 0x40)
- STEP1x (DMTPRECLEAR เขียนอีกครั้งหลังจาก STEP1x) หรือ BAD_STEP2 (DMTCLR เขียนด้วยค่าไม่เท่ากับ 0x08) หรือช่วงเวลาหน้าต่างไม่เปิด
การเลือกนับ DMT
จำนวน Deadman Timer ถูกกำหนดโดยบิตรีจิสเตอร์ DMTCNTL[15:0] และ DMTCNTH[31:16] ในรีจิสเตอร์ FDMTCNTL และ FDMTCNTH ตามลำดับ สามารถรับค่าการนับ DMT ปัจจุบันได้โดยการอ่านการลงทะเบียน Deadman Timer Count ที่ต่ำกว่าและสูงกว่า DMTCNTL และ DMTCNTH
บิต PSCNT[15:0] และ PSCNT[31:16] ในการลงทะเบียน DMTPSCNTL และ DMTPSCNTH ตามลำดับ ทำให้ซอฟต์แวร์สามารถอ่านจำนวนสูงสุดที่เลือกไว้สำหรับ Deadman Timer นั่นหมายถึงค่าบิต PSCNTx เหล่านี้ไม่ใช่ค่าอื่นใด แต่เป็นค่าที่เริ่มต้นเขียนไปยังบิต DMTCNTx ในรีจิสเตอร์ Configuration Fuse, FDMTCNTL และ FDMTCNTH เมื่อใดก็ตามที่เหตุการณ์ DMT เกิดขึ้น ผู้ใช้สามารถเปรียบเทียบได้ตลอดเวลาเพื่อดูว่าค่าตัวนับปัจจุบันในรีจิสเตอร์ DMTCNTL และ DMTCNTH เท่ากับค่าของรีจิสเตอร์ DMTPSCNTL และ DMTPSCNTH ซึ่งมีค่าจำนวนสูงสุดหรือไม่
บิต PSINTV[15:0] และ PSINTV[31:16] ในรีจิสเตอร์ DMPSINTVL และ DMPSINTVH ตามลำดับ อนุญาตให้ซอฟต์แวร์อ่านค่าช่วงเวลาหน้าต่าง DMT นั่นหมายความว่ารีจิสเตอร์เหล่านี้อ่านค่าที่เขียนไปยังรีจิสเตอร์ FDMTIVTL และ FDMTIVTH ดังนั้นเมื่อใดก็ตามที่ค่าตัวนับปัจจุบัน DMT ใน DMTCNTL และ DMTCNTH ถึงค่าของการลงทะเบียน DMTPSINTVL และ DMTPSINTVH ช่วงเวลาของหน้าต่างจะเปิดขึ้นเพื่อให้ผู้ใช้สามารถแทรกลำดับที่ชัดเจนไปยังบิต STEP2x ซึ่งทำให้ DMT รีเซ็ต
บิต UPRCNT[15:0] ในรีจิสเตอร์ DMTHOLDREG เก็บค่าการอ่านล่าสุดของค่าจำนวนบน DMT (DMTCNTH) ทุกครั้งที่อ่าน DMTCNTL และ DMTCNTH
ส่วนนี้แสดงรายการบันทึกการใช้งานที่เกี่ยวข้องกับส่วนนี้ของคู่มือ บันทึกการใช้งานเหล่านี้อาจไม่ได้เขียนขึ้นโดยเฉพาะสำหรับตระกูลผลิตภัณฑ์ dsPIC33/PIC24 แต่แนวคิดมีความเกี่ยวข้องและสามารถใช้กับการปรับเปลี่ยนและข้อจำกัดที่เป็นไปได้ บันทึกการใช้งานปัจจุบันที่เกี่ยวข้องกับ Deadman Timer (DMT) คือ:
ชื่อ: ไม่มีบันทึกการใช้งานที่เกี่ยวข้องในขณะนี้
บันทึก: กรุณาเยี่ยมชมไมโครชิป webเว็บไซต์ (www.microchip.com) เพื่อดูหมายเหตุและรหัสการใช้งานเพิ่มเติม เช่นampสำหรับอุปกรณ์ตระกูล dsPIC33/PIC24
ประวัติการแก้ไข
แก้ไข A (กุมภาพันธ์ 2014)
- เอกสารนี้เป็นเวอร์ชันเริ่มต้นของเอกสารนี้
การแก้ไข B (มีนาคม 2022)
- อัพเดตรูปที่ 1-1 และรูปที่ 3-1
- อัพเดท ลงทะเบียน 2-1, ลงทะเบียน 2-2, ลงทะเบียน 2-3, ลงทะเบียน 2-4, ลงทะเบียน 2-9 และลงทะเบียน 2-10 อัปเดตตาราง 2-1 และตาราง 2-2
- อัปเดตหัวข้อ 1.0 “บทนำ”, หัวข้อ 2.0 “การลงทะเบียน DMT”, หัวข้อ 3.1 “โหมดการทำงาน”, หัวข้อ 3.2 “การเปิดใช้งานและปิดใช้งานโมดูล DMT”, หัวข้อ 3.3
- “DMT Count Windowed Interval”, Section 3.5 “Reset the DMT” and Section 3.6 “DMT Count Selection”.
- ย้าย Register Map ไปที่ Section 2.0 “DMT Registers”
โปรดทราบรายละเอียดต่อไปนี้เกี่ยวกับคุณลักษณะการป้องกันรหัสบนผลิตภัณฑ์ Microchip:
- ผลิตภัณฑ์ Microchip ตรงตามข้อกำหนดที่ระบุไว้ในแผ่นข้อมูล Microchip เฉพาะของตน
- Microchip เชื่อว่ากลุ่มผลิตภัณฑ์ของตนจะปลอดภัยเมื่อใช้ตามลักษณะที่ต้องการ ภายใต้ข้อกำหนดการทำงาน และภายใต้เงื่อนไขปกติ
- คุณค่าของไมโครชิปและปกป้องสิทธิ์ในทรัพย์สินทางปัญญาอย่างจริงจัง การพยายามละเมิดคุณสมบัติการป้องกันโค้ดของผลิตภัณฑ์ไมโครชิปถือเป็นสิ่งต้องห้ามโดยเด็ดขาด และอาจละเมิดกฎหมาย Digital Millennium Copyright Act
- ทั้ง Microchip และผู้ผลิตเซมิคอนดักเตอร์รายอื่นไม่สามารถรับประกันความปลอดภัยของโค้ดได้ การปกป้องโค้ดไม่ได้หมายความว่าเรารับประกันว่าผลิตภัณฑ์นั้น “ไม่แตกหัก” การปกป้องโค้ดนั้นได้รับการพัฒนาอย่างต่อเนื่อง Microchip มุ่งมั่นที่จะปรับปรุงคุณสมบัติการปกป้องโค้ดของผลิตภัณฑ์ของเราอย่างต่อเนื่อง
เอกสารเผยแพร่นี้และข้อมูลในที่นี้อาจใช้กับผลิตภัณฑ์ของ Microchip เท่านั้น ซึ่งรวมถึงการออกแบบ ทดสอบ และรวมผลิตภัณฑ์ของ Microchip เข้ากับแอปพลิเคชันของคุณ การใช้ข้อมูลนี้ในลักษณะอื่นใดถือเป็นการละเมิดข้อกำหนดเหล่านี้ ข้อมูลเกี่ยวกับแอปพลิเคชันของอุปกรณ์มีไว้เพื่อความสะดวกของคุณเท่านั้น และอาจถูกแทนที่ด้วยการอัปเดต เป็นความรับผิดชอบของคุณที่จะต้องแน่ใจว่าแอปพลิเคชันของคุณตรงตามข้อกำหนดของคุณ ติดต่อสำนักงานขาย Microchip ในพื้นที่ของคุณเพื่อรับการสนับสนุนเพิ่มเติม หรือขอรับการสนับสนุนเพิ่มเติมได้ที่ https://www.microchip.com/en-us/support/design-help/client-support-services.
ข้อมูลนี้จัดทำโดยไมโครชิป “ตามที่เป็น” MICROCHIP ไม่รับรองหรือรับประกันใด ๆ ไม่ว่าจะโดยชัดแจ้งหรือโดยนัย เป็นลายลักษณ์อักษรหรือปากเปล่า ตามกฎหมายหรืออื่น ๆ ที่เกี่ยวข้องกับข้อมูล รวมถึงแต่ไม่จำกัดเพียงการรับประกันโดยนัยใด ๆ ของการไม่ละเมิด ความสามารถในเชิงพาณิชย์ และความเหมาะสมสำหรับส่วนใดส่วนหนึ่ง วัตถุประสงค์ของอูลาร์, หรือการรับประกันที่เกี่ยวข้องกับสภาพ คุณภาพ หรือประสิทธิภาพของมัน
ไม่ว่าในกรณีใดก็ตาม MICROCHIP จะไม่รับผิดต่อความสูญเสีย ความเสียหาย ต้นทุน หรือค่าใช้จ่ายใดๆ ที่เกี่ยวข้องกับข้อมูลหรือการใช้งาน ไม่ว่าจะเกิดจากสิ่งใด แม้ว่า MICROCHIP จะมีก็ตาม ได้รับคำแนะนำถึงความเป็นไปได้หรือความเสียหายที่สามารถคาดการณ์ได้ ภายในขอบเขตสูงสุดที่กฎหมายอนุญาต ความรับผิดทั้งหมดของไมโครชิปต่อการเรียกร้องใดๆ ที่เกี่ยวข้องกับข้อมูลหรือการใช้งานจะไม่เกินจำนวนค่าธรรมเนียม (ถ้ามี) ที่คุณได้จ่ายโดยตรงให้กับไมโครชิพสำหรับข้อมูลดังกล่าว
การใช้อุปกรณ์ Microchip ในการช่วยชีวิตและ/หรือการใช้งานด้านความปลอดภัยถือเป็นความเสี่ยงของผู้ซื้อทั้งหมด และผู้ซื้อตกลงที่จะปกป้อง ชดใช้ค่าเสียหาย และปกป้อง Microchip จากความเสียหาย การเรียกร้อง การฟ้องร้อง หรือค่าใช้จ่ายใดๆ ที่เกิดจากการใช้งานดังกล่าว ไม่มีการถ่ายทอดใบอนุญาต ไม่ว่าโดยปริยายหรืออย่างอื่น ภายใต้สิทธิ์ในทรัพย์สินทางปัญญาของไมโครชิป เว้นแต่จะระบุไว้เป็นอย่างอื่น
เครื่องหมายการค้า
ชื่อและโลโก้ของ Microchip, โลโก้ Microchip, Adaptec, AnyRate, AVR, โลโก้ AVR, AVR Freaks, BesTime, BitCloud, CryptoMemory, CryptoRF, dsPIC, flexPWR, HELDO, IGLOO, JukeBlox, KeeLoq, Kleer, LANCheck, LinkMD, maXStylus, maXTouch, MediaLB, megaAVR, Microsemi, โลโก้ Microsemi, MOST, โลโก้ MOST, MPLAB, OptoLyzer, PIC, picoPower, PICSTART, โลโก้ PIC32, PolarFire, Prochip Designer, QTouch, SAM-BA, SenGenuity, SpyNIC, SST, โลโก้ SST, SuperFlash , Symmetricom, SyncServer, Tachyon, TimeSource, tinyAVR, UNI/O, Vectron และ XMEGA เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Incorporated ในสหรัฐอเมริกาและประเทศอื่นๆ
AgileSwitch, APT, ClockWorks, บริษัท Embedded Control Solutions, EtherSynch, Flashtec, การควบคุมความเร็ว Hyper, HyperLight Load, IntelliMOS, Libero, motorBench, mTouch, Powermite 3, Precision Edge, ProASIC, ProASIC Plus, โลโก้ ProASIC Plus, Quiet- Wire, SmartFusion, SyncWorld, Temux, TimeCesium, TimeHub, TimePictra, TimeProvider, TrueTime, WinPath และ ZL เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Incorporated ในสหรัฐอเมริกา
การปราบปรามคีย์ที่อยู่ติดกัน, AKS, ยุคอนาล็อกสำหรับดิจิตอล, ตัวเก็บประจุใดๆ, AnyIn, AnyOut, Augmented Switching, BlueSky, BodyCom, CodeGuard, CryptoAuthentication, CryptoAutomotive, CryptoCompanion, CryptoController, dsPICDEM, dsPICDEM.net, การจับคู่ค่าเฉลี่ยแบบไดนามิก, DAM , ECAN, Espresso T1S, EtherGREEN, GridTime, IdealBridge, การเขียนโปรแกรมอนุกรมในวงจร, ICSP, INICnet, การขนานอัจฉริยะ, การเชื่อมต่อระหว่างชิป, JitterBlocker, ปุ่มบนจอแสดงผล, maxCrypto, สูงสุดView, memBrain, Mindi, MiWi, MPASM, MPF, MPLAB โลโก้ที่ผ่านการรับรอง, MPLIB, MPLINK, MultiTRAK, NetDetach, NVM Express, NVMe, การสร้างรหัสรอบรู้, PICDEM, PICDEM.net, PICkit, PICtail, PowerSmart, PureSilicon, QMatrix, REAL ICE , Ripple Blocker, RTAX, RTG4, SAM-ICE, Serial Quad I/O, simpleMAP, SimpliPHY, SmartBuffer, SmartHLS, SMART-IS, storClad, SQI, SuperSwitcher, SuperSwitcher II, Switchtec, SynchroPHY, Total Endurance, TSHARC, USBCheck, VariSense, VectorBlox, VeriPHY, ViewSpan, WiperLock, XpressConnect และ ZENA เป็นเครื่องหมายการค้าของ Microchip Technology Incorporated ในสหรัฐอเมริกาและประเทศอื่นๆ
SQTP เป็นเครื่องหมายบริการของ Microchip Technology Incorporated ในสหรัฐอเมริกา
โลโก้ Adaptec, Frequency on Demand, Silicon Storage Technology, Symmcom และ Trusted Time เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Inc. ในประเทศอื่นๆ
GestIC เป็นเครื่องหมายการค้าจดทะเบียนของ Microchip Technology Germany II GmbH & Co. KG ซึ่งเป็นบริษัทในเครือของ Microchip Technology Inc. ในประเทศอื่นๆ
เครื่องหมายการค้าอื่น ๆ ทั้งหมดที่กล่าวถึงในที่นี้เป็นทรัพย์สินของบริษัทที่เกี่ยวข้อง
© 2014-2022, Microchip Technology Incorporated และบริษัทในเครือ สงวนลิขสิทธิ์.
หมายเลข ISBN: 978-1-6683-0063-3
สำหรับข้อมูลเกี่ยวกับระบบการจัดการคุณภาพของ Microchip โปรดไปที่ www.microchip.com/quality.
2014-2022 Microchip Technology Inc. และบริษัทสาขา
การขายและบริการทั่วโลก
อเมริกา
สำนักงานใหญ่
- ที่อยู่: 2355 เวสต์แชนด์เลอร์แอลวี แชนด์เลอร์, แอริโซนา 85224-6199 โทรศัพท์: 480-792-7200
- โทรสาร: 480-792-7277
- การสนับสนุนด้านเทคนิค: http://www.microchip.com/support
- Web ที่อยู่: www.ไมโครชิป.คอม
แอตแลนตา
- ดูลูธ, จอร์เจีย
- โทร: 678-957-9614
- โทรสาร: 678-957-1455
ออสติน, เท็กซัส
- โทร: 512-257-3370
บอสตัน
- เวสต์โบโรห์, แมสซาชูเซตส์
- โทร: 774-760-0087
- โทรสาร: 774-760-0088
จีน – เซียะเหมิน
- โทร: 86-592-2388138
เนเธอร์แลนด์ – ดรูเนน
- โทร: 31-416-690399
- โทรสาร: 31-416-690340
นอร์เวย์ – ทรอนด์เฮม
- โทร: 47-7288-4388
โปแลนด์ – วอร์ซอ
- โทร: 48-22-3325737
เอกสาร / แหล่งข้อมูล
![]() |
MICROCHIP DMT เดดแมนไทม์เมอร์ [พีดีเอฟ] คู่มือการใช้งาน DMT เดดแมน ไทม์เมอร์, DMT, เดดแมน ไทม์เมอร์, ไทม์เมอร์ |





