วิธีการใช้สวิตช์ไฟอ่อนที่ควบคุมโดยไมโครคอนโทรลเลอร์?


16

ฉันต้องการออกแบบวงจรที่ไมโครคอนโทรลเลอร์สามารถสลับพิน GPIO และปิดระบบทั้งหมด (รวมถึงไมโครคอนโทรลเลอร์ด้วยตัวเอง) ลง และเมื่อผู้ใช้กดปุ่มชั่วขณะพลังจะกลับมาอีกครั้ง

เป็นไปได้ไหม

คำตอบ:


11

ข้อความแสดงแทน

ตัวอย่างนี้ใช้ตัวควบคุมขั้นตอนMaxim MAX1835แต่สามารถนำไปใช้กับผู้อื่นเช่นกันที่มีพินการปิดระบบ

โดยปกติวงจรจะถูกปิดลง เมื่อผู้ใช้กดปุ่มกดแบตเตอรี่จะถูกป้อนเข้าไปในขา -SHDN ทำให้สามารถใช้งานเครื่องควบคุมและเปิด 3.3V ไปยังไมโครคอนโทรลเลอร์ จากนั้นไมโครคอนโทรลเลอร์จะวางลอจิกที่ 1 บนตะกั่ว POWER เปิดค้างไว้เปิดเครื่องหลังจากที่ผู้ใช้ปล่อยปุ่มกด เมื่อไมโครคอนโทรลเลอร์ต้องการปิดตัวเองมันจะตั้งค่าเปิด POWER เป็น 0


2
ฉันคิดว่าสำคัญมากที่จะเปิดใช้งานสวิตช์นั้น
Kortuk

2
@Kortuk จุดที่ดี ฉันคิดว่าไมโครเปิดเร็วพอที่จะแทนที่สวิตช์ก่อนที่จะเด้งครั้งแรกโดยสมมติว่าการขับรถพินสูงเป็นสิ่งแรกที่ไมโครทำ หากไม่เป็นเช่นนั้นเราสามารถเพิ่มตัวเก็บประจุบนตะกั่ว -SHDN เพื่อสร้างค่าคงที่เวลาสำหรับการเปิดใช้งาน (แม้ว่าจะทำให้เกิดความล่าช้าเล็กน้อยในการปิด) อาจต้องใช้ 10 nF เพื่อลดเสียงรบกวน (รวมอยู่ในแผนผังตัวอย่างแผ่นข้อมูล) หรืออาจเพิ่มวงจร RC เพิ่มเติมเพียงแค่เปลี่ยน
tcrosley

ฉันเคยเห็นการเด้งบนสวิตช์มาก่อน
Kortuk

ปัญหาที่ใหญ่กว่าที่การตีกลับของสวิตช์คือพฤติกรรมของตัวประมวลผลระหว่างการปิดเครื่อง โดยเฉพาะอย่างยิ่งมันอาจจะดีเพื่อให้แน่ใจว่าโปรเซสเซอร์สามารถเปิดแหล่งจ่ายไฟเมื่อ VDD ของมันอยู่เหนือจุดที่รับประกันการใช้งานที่ถูกต้อง ฉันต้องปรับแต่งวงจรไฟฟ้าอัตโนมัติลงบางครั้งซึ่งอาจล้มเหลวเนื่องจากโปรเซสเซอร์รันโค้ดแบบสุ่มเมื่อ VDD ต่ำกว่าแรงดันไฟฟ้าที่ใช้งานได้ รหัสแบบสุ่มสามารถตั้งค่าเอาท์พุท "เปิดเครื่อง" สูงซึ่งจะเป็นการเปิดเครื่องอุปกรณ์สำรองใช้รหัสในที่อยู่แบบสุ่ม
supercat

1

วิธีหนึ่งในการทำเช่นนี้คือเข้าสู่โหมดสลีปลึกบนไมโครคอนโทรลเลอร์

ไมโครคอนโทรลเลอร์หลายตัวรองรับการทำงานของอินเทอร์รัปต์ภายนอกเช่นขอบบนพิน IO


ถ้าอย่างนั้นฉันจะได้รับกระแสไฟฟ้านิ่งของการจ่ายกระแสไฟฟ้าให้กับไมโครใช่ไหม?
cksa361

ใช่. คุณจะ.
Toby Jaffey

@ cksa361, micros บางอันเป็น nano หรือ micro amps ฉันใช้ MSP430 และเราเก็บมันไว้ประมาณ 3-5 ไมโครแอมป์
Kortuk

0

ใช่มันเป็นไปได้อย่างแน่นอน แต่วิธีการที่คุณประสบความสำเร็จขึ้นอยู่กับว่าคุณจะเปิดและปิดการโหลดแบบไหน

มันอาจจะง่ายเหมือนการใช้รีเลย์ที่เชื่อมต่อกับเอาท์พุท PIN ของไมโครคอนโทรลเลอร์ (ผ่านทรานซิสเตอร์และไดโอดป้องกัน) และสวิตช์ปุ่มกดที่เชื่อมต่อกับพินที่กำหนดค่าเป็นอินพุต

นี่คือแผนภาพวงจรตัวอย่างง่ายๆ: แผนผังของรีเลย์ควบคุมโดยไมโครคอนโทรลเลอร์

เมื่อใช้สวิตช์ปุ่มกดชั่วขณะโปรดระวังการหักล้างแต่คุณจะต้องใช้ความล่าช้าในรหัสไมโครคอนโทรลเลอร์ของคุณเพื่อให้แน่ใจว่าคุณตรวจสอบสถานะของปุ่มกดในช่วงระยะเวลาหนึ่ง (เช่น 1ms) ก่อนที่จะสลับรีเลย์ของคุณ กลับมา หากคุณไม่ทำเช่นนั้นไมโครคอนโทรลเลอร์อาจรับสัญญาณหลาย ๆ ตัวและสลับรีเลย์ของคุณหลายครั้งในระยะเวลาสั้น ๆ และคุณจะพบว่าปุ่มของคุณทำงานเป็นระยะ ๆ

อัปเดต ฉันเพิ่งเห็นการแก้ไขของคุณเกี่ยวกับการเปิดไมโครคอนโทรลเลอร์ลง คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่คุณพยายามทำจริง ๆ ได้หรือไม่? เป็นการยากที่จะตอบคำถามของคุณโดยไม่เข้าใจระบบทั้งหมด

หากคุณต้องการปิดไมโครคอนโทรลเลอร์ลงด้วยเช่นกันคุณต้องใช้พลังงานกลับไปยังไมโครคอนโทรลเลอร์ บางทีคุณอาจใช้รีเลย์เพื่อจ่ายไฟทุกอย่างรวมถึงไมโครคอนโทรลเลอร์ด้วยวิธีนี้ไมโครคอนโทรลเลอร์สามารถปิดเองได้ แต่ไม่สามารถเปิดได้ จากนั้นกดปุ่มของคุณสามารถเชื่อมต่อผ่านสวิทช์รีเลย์เพื่อให้มันสั้นได้อย่างมีประสิทธิภาพให้เวลาพอที่จะเปิดและเปิดรีเลย์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.