การป้องกันขาอินพุตของไมโครคอนโทรลเลอร์จากสวิตช์ไฟอ่อน


10

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

การวาดภาพวงจร

ฉันมีวงจรข้างต้นจนถึงตอนนี้ แต่ฉันไม่แน่ใจว่ามันจะเชื่อถือได้หรือไม่ ฉันใช้แบตเตอรี่ลิเธียมไอออน (3.7-4.2V) และตัวควบคุม TC1015 (เอาต์พุต 3.0V) แนวคิดคือเมื่อกดสวิตช์ตัวควบคุมจะเปิดขึ้นจากนั้นไมโครคอนโทรลเลอร์จะตั้งค่าuC Powerสูง เมื่อสวิตช์ถูกกดเป็นครั้งที่สองจะเป็นการขัดจังหวะuC Switchจะช่วยให้ไมโครคอนโทรลเลอร์ตั้งค่าuC Powerต่ำปิดตัวเอง

สิ่งที่ฉันไม่แน่ใจคือถ้าฉันต้องการปกป้องไมโครคอนโทรลเลอร์จากแรงดันไฟฟ้าของแบตเตอรี่ ไมโครคอนโทรลเลอร์ที่ฉันใช้มีแรงดันไฟฟ้าสูงสุดที่แน่นอนบนหมุด I / O ของ Vdd + 0.4V ดังนั้นฉันไม่แน่ใจว่าจะจัดการกับสิ่งที่ดีที่สุดได้อย่างไร

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

แก้ไข:ไมโครคอนโทรลเลอร์เป็นโหลดหลักที่จะเปลี่ยนดังนั้นการวางลงในโหมดพลังงานต่ำน่าเสียดายที่จะไม่ทำงานที่นี่

แก้ไข # 2 (หลังจากคำตอบถูกโพสต์):

ฉันสิ้นสุดการใช้วงจรด้านล่าง:

แผนภาพวงจรคงที่

วงจรที่โพสต์ก่อนหน้านี้ทำงานได้ไม่ดีนักและมีปัญหากับสายการเปิดใช้งานแบบลอยตัวเมื่อไมโครคอนโทรลเลอร์ไม่เปิดเครื่อง

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

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

ไมโครคอนโทรลเลอร์ไม่จำเป็นต้องได้รับการคุ้มครองจากแรงดันแบตเตอรี่ในบรรทัดนาฬิกา แต่เป็นปัญหา @Andy aka CLOCKที่สามารถทำได้ด้วยตัวต้านทานบน

คำตอบ:


4

R1 และ R2 จะ จำกัด กระแสไฟฟ้าเป็นพินบน uC ของคุณและนี่ก็เพียงพอสำหรับการปกป้องอุปกรณ์ของคุณ - คุณเพียงแค่ต้องตรวจสอบข้อมูลจำเพาะว่ากระแส "จำกัด " และเลือกค่าตัวต้านทานที่เหมาะสมตามที่จัดหา uC อาจอยู่ที่ 0V (ไม่มีไฟ) zeners สามารถปล่อยออกมาบนพื้นฐานนี้

ความน่าเชื่อถือเป็นปัญหาอื่น การตีกลับของสวิตช์อาจทำให้ uC ของคุณเปิดแล้วปิดสองสามครั้งดังนั้นให้เขียนรหัสของคุณให้ระวังสิ่งนี้

ฉันคิดว่ามันอาจจะแนะนำให้มีตัวต้านทานในการเปิดใช้งาน แต่อาจอยู่ในภูมิภาคของ + 10K และบางทีนี่อาจจะสูงกว่า 100k

แรงดันไฟฟ้าในพินการปิดจะต้องมีอย่างน้อย 45% ของ Vin ดังนั้นจึงไม่ควรเป็นปัญหา


3

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

ในการทดสอบโดยไม่เสี่ยงต่อไมโครคอนโทรลเลอร์คุณสามารถทำได้ เพิ่มโหลดจำลองเพื่อให้ตัวควบคุมมีความสุข (ไฟ LED บางดวงเพื่อให้คุณเห็นว่ามันทำงาน) แล้วผูกเอาต์พุตไปยังจุดที่ทำเครื่องหมายไว้uC Powerแล้วผูกออกไปยังจุดที่มันมีการทำเครื่องหมาย หลังจากที่คุณกดสวิตช์ตัวควบคุมควรเริ่มต้นเปิดไฟ led และพลังงาน uC ซึ่งในทางกลับกันควรให้เปิดใช้งานพินที่ตรรกะสูง (ปิดเครื่องตรรกะสูงเป็นขั้นต่ำ 45% ของ VIN ดังนั้น 1.89V ที่ 4.2V ใน )

ดังนั้นหากคุณกดปุ่มและไฟ LED จะติดอยู่หลังจากคุณปล่อยมันก็ใช้งานได้ หากไม่เป็นเช่นนั้นมันจะไม่ทำงานอย่างที่เป็นอยู่

คำเตือน:ฉันบอกว่าไม่แน่ใจว่าไดโอดซีเนอร์จะทำให้วงจรตอบสนองอย่างไร


0

วงจรที่เชื่อมต่อแบตเตอรี่สัญญาณไมโครคอนโทรลเลอร์และอินพุต SHDN * ของตัวควบคุม (เปลี่ยนชื่อ EN) ดูเหมือนว่าจะหลบ

วิธีการเกี่ยวกับการใช้สลัก (ใช้พลังงานแบตเตอรี) เพื่อบันทึกการปิดกุญแจ จากนั้นเอาท์พุทของสลักนี้จะถูก OR'ed ด้วยสัญญาณสัญญาณจาก MCU เพื่อขับเคลื่อนขา SHDN * ของตัวควบคุม (เปลี่ยนชื่อเป็น EN ในแผนผัง) เมื่อทำการบูท MCU ควรขับบรรทัดเปิดใช้งานก่อนจากนั้นจึงทำการล้างสลักเพื่อให้แน่ใจว่า EN ยังคงยืนยันอยู่

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

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


0

ดึง EN low ด้วยตัวต้านทานที่เหมาะสมและผูกเข้ากับ io pin ของ mcu สวิตช์ไปที่หมุดอินพุตของ mcu การกดปุ่มจะทำให้เกิดการขัดจังหวะบนพินอินพุต mcu ซึ่งจะสลับพินเอาต์พุตที่ควบคุมพิน EN ของ LDO ของคุณ

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


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