ไมโครคอนโทรลเลอร์ส่วนใหญ่ (เช่น AVR, MSP430s, PICs และอื่น ๆ ) สนับสนุนโหมดสลีปจำนวนหนึ่ง โหมดสลีป "ที่ลึกที่สุด" เป็นโหมดที่ให้พลังงานต่ำที่สุด (เช่น "ปิดเครื่อง", "ปิดเครื่อง") แต่โดยทั่วไประบบนาฬิกาจะหยุดในโหมดเหล่านี้และดูเหมือนว่าฉันจะเป็นวิธีเดียวที่จะ " ตื่นขึ้น "จากพวกเขาคือผ่านการกระตุ้นภายนอก (เช่นการขัดจังหวะการเปลี่ยนพินการรีเซ็ตชิป) ฉันพลาดอะไรไปรึเปล่า? มีวิธีพลังงานต่ำอย่างไม่น่าเชื่อในการสร้างสัญญาณปลุกเป็นระยะสำหรับ MCU หรือไม่
สมมติว่าเป้าหมายของฉันคือลดการใช้พลังงานให้น้อยที่สุด (เช่นนอนหลับให้ลึกที่สุดเท่าที่จะเป็นไปได้ตื่นตัวให้สั้นที่สุดเท่าที่จะทำได้) ในขณะที่ตื่นขึ้นมาทำงานฟังก์ชั่นเป็นระยะ ๆ เพื่อให้เรื่องต่าง ๆ ง่ายขึ้นสมมติว่าหน้าที่ของฉันไร้สัญชาติ (ฉันไม่ต้องจำอะไรจากอดีตเพื่อที่จะทำมัน)
ฉันประสบความสำเร็จในการใช้ WDT ใน MSP430 เพื่อรับผลกระทบนี้ ฉันเพิ่งทำกิจวัตรหลักของฉันเป็นหน้าที่ของฉันด้วยบรรทัดสุดท้ายที่ทำให้ตัวจับเวลาจ้องจับผิดจะหมดอายุหลังจากระยะเวลาหนึ่งและเข้าสู่ LPM4.5 หรืออะไรก็ตามที่เรียกว่าโหมด "Deep sleep" ผลลัพธ์สุทธิคือการใช้งานฟังก์ชั่น, MCU หลับ, WDT หมดอายุและชิปรีเซ็ต, คลื่นไส้โฆษณา ดูเหมือนว่าจะทำงานแค่สงสัยว่ามีวิธี "ดีกว่า" หรือ "หรูหรามากขึ้น" หรือ "ใช้พลังงานอย่างมีประสิทธิภาพ" ในการทำให้เกิดพฤติกรรมแบบนี้
ฉันยังไม่ได้ลองใช้วิธีนี้กับ AVR แต่ฉันคิดว่า WDT นั้น“ มีพลังมากขึ้น” ใน AVR มากกว่าใน MSP430 ดังนั้นมันอาจน่าสนใจน้อยกว่าสำหรับงานที่ใช้พลังงานต่ำ บางทีอาจไม่มีวิธีการ "เป็นสากล" สำหรับการใช้พลังงานต่ำและคุณต้องใช้เครื่องมือที่สายผลิตภัณฑ์กำหนดให้ ฉันรู้ว่าสาย picoPower ใหม่มีคุณสมบัติที่น่าสนใจมากมายเช่น Event System และ Sleep Walking ซึ่งในบางกรณีแทบจะไม่ต้องการให้ CPU ตื่นตัวเลยถ้าคุณสามารถทำให้แอปพลิเคชันของคุณเหมาะกับโครงสร้างนั้น ...
ตกลงพอหลงทางของฉันให้ที่นี่สิ่งที่คุณจะต้องพูด :)
แก้ไข ตัวอย่างที่เป็นรูปธรรมที่แสดงให้เห็นถึงเทคนิคที่น่าสนใจ