มาเรียนรู้กันว่าตัวต้านทานแบบดึงขึ้นและดึงลงช่วยหยุดวงจรดิจิทัลจากการสับสนจากอินพุต "ลอย" ที่คาดเดาไม่ได้ได้อย่างไร
ตัวต้านทานแบบดึงขึ้นคือตัวต้านทานที่ใช้ในวงจรตรรกะเพื่อให้แน่ใจว่าระดับตรรกะที่กำหนดไว้อย่างชัดเจนที่ขาภายใต้ทุกสภาวะ ขอเตือนว่าวงจรตรรกะดิจิทัลมีสถานะตรรกะสามสถานะ ได้แก่ สูง ต่ำ และลอยตัว (หรืออิมพีแดนซ์สูง) สถานะอิมพีแดนซ์สูงเกิดขึ้นเมื่อขาไม่ได้ถูกดึงไปที่ระดับตรรกะสูงหรือต่ำ แต่ถูกปล่อยให้ "ลอยตัว" แทน ตัวอย่างที่ดีของปัญหานี้คือขาอินพุตที่ไม่ได้เชื่อมต่อของไมโครคอนโทรลเลอร์ ซึ่งไม่ได้อยู่ในสถานะตรรกะสูงหรือต่ำ และไมโครคอนโทรลเลอร์อาจตีความค่าอินพุตอย่างไม่คาดคิดว่าเป็นค่าตรรกะสูงหรือต่ำ ตัวต้านทานแบบดึงขึ้นใช้เพื่อแก้ปัญหาของไมโครคอนโทรลเลอร์โดยการดึงค่าไปยังสถานะตรรกะสูง ดังที่แสดงในภาพต่อไปนี้
หากไม่มีตัวต้านทานดึงขึ้น อินพุตของ MCU จะลอยเมื่อสวิตช์เปิด และดึงลงมาที่ค่าต่ำเชิงตรรกะเมื่อสวิตช์ปิดเท่านั้น
ตัวต้านทานแบบดึงขึ้นไม่ใช่ตัวต้านทานชนิดพิเศษ แต่เป็นเพียงตัวต้านทานค่าคงที่ที่เชื่อมต่อระหว่างแหล่งจ่ายแรงดันไฟฟ้า (โดยทั่วไปคือ +5 V, +3.3 V หรือ +2.5 V) และขาที่เหมาะสม ซึ่งส่งผลให้สามารถกำหนดแรงดันไฟฟ้าขาเข้าหรือขาออกได้แม้ไม่มีสัญญาณขับ ค่าตัวต้านทานแบบดึงขึ้นโดยทั่วไปคือ 4.7 kΩ แต่อาจแตกต่างกันไปขึ้นอยู่กับการใช้งาน ดังที่จะกล่าวถึงในบทความนี้ต่อไป
ตัวต้านทานดึงขึ้นคือตัวต้านทานที่ใช้เพื่อให้แน่ใจว่าสายถูกดึงไปที่ระดับลอจิกสูงในกรณีที่ไม่มีสัญญาณอินพุต
ตัวต้านทานแบบดึงลงทำงานในลักษณะเดียวกับตัวต้านทานแบบดึงขึ้น ยกเว้นว่าตัวต้านทานแบบดึงลงจะดึงพินให้มีค่าต่ำตามตรรกะ ตัวต้านทานจะเชื่อมต่อระหว่างกราวด์และพินที่เหมาะสมบนอุปกรณ์ ตัวอย่างของตัวต้านทานแบบดึงลงในวงจรดิจิทัลสามารถดูได้จากรูปต่อไปนี้
ในภาพนี้ สวิตช์ปุ่มกดเชื่อมต่อระหว่างแรงดันไฟฟ้ากับขาของไมโครคอนโทรลเลอร์ ในวงจรเช่นนี้ เมื่อสวิตช์ปิด อินพุตของไมโครคอนโทรลเลอร์จะมีค่าลอจิกสูง แต่เมื่อสวิตช์เปิด ตัวต้านทานแบบดึงลงจะดึงแรงดันไฟฟ้าขาเข้าลงกราวด์ (ค่าลอจิกศูนย์) เพื่อป้องกันสถานะที่ไม่แน่นอนที่อินพุต ตัวต้านทานแบบดึงลงต้องมีความต้านทานมากกว่าอิมพีแดนซ์ของวงจรลอจิก มิฉะนั้นอาจดึงแรงดันไฟฟ้าลงมากเกินไป และแรงดันไฟฟ้าขาเข้าที่ขาจะคงอยู่ที่ค่าลอจิกต่ำคงที่ โดยไม่คำนึงถึงตำแหน่งของสวิตช์
ค่าที่เหมาะสมสำหรับตัวต้านทานแบบดึงขึ้น (หรือแบบดึงลง) ถูกจำกัดด้วยปัจจัยสองประการ ปัจจัยแรกคือการสูญเสียพลังงาน หากค่าความต้านทานต่ำเกินไป กระแสไฟฟ้าสูงจะไหลผ่านตัวต้านทานแบบดึงขึ้น ทำให้อุปกรณ์ร้อนขึ้นและใช้พลังงานที่ไม่จำเป็นเมื่อปิดสวิตช์ สภาวะนี้เรียกว่าการดึงขึ้นอย่างแรง และควรหลีกเลี่ยงเมื่อต้องการการใช้พลังงานต่ำ ปัจจัยที่สองคือแรงดันไฟฟ้าที่ขาเมื่อสวิตช์เปิด หากค่าความต้านทานแบบดึงขึ้นสูงเกินไป ประกอบกับกระแสไฟฟ้ารั่วที่ขาอินพุตจำนวนมาก แรงดันไฟฟ้าขาเข้าอาจไม่เพียงพอเมื่อสวิตช์เปิด สภาวะนี้เรียกว่าการดึงขึ้นอย่างอ่อน ค่าความต้านทานที่แท้จริงของการดึงขึ้นขึ้นอยู่กับอิมพีแดนซ์ของขาอินพุต ซึ่งสัมพันธ์อย่างใกล้ชิดกับกระแสไฟฟ้ารั่วที่ขา
หลักการง่ายๆ คือการใช้ตัวต้านทานที่มีค่าน้อยกว่าค่าอิมพีแดนซ์ของขาอินพุตอย่างน้อย 10 เท่า ในวงจรลอจิกแบบไบโพลาร์ที่ทำงานที่แรงดัน 5 โวลต์ ค่าตัวต้านทานแบบดึงขึ้นโดยทั่วไปคือ 1-5 kΩ สำหรับการใช้งานสวิตช์และเซ็นเซอร์แบบต้านทาน ค่าตัวต้านทานแบบดึงขึ้นโดยทั่วไปคือ 1-10 kΩ หากไม่แน่ใจ จุดเริ่มต้นที่ดีเมื่อใช้สวิตช์คือ 4.7 kΩ วงจรดิจิทัลบางวงจร เช่น วงจร CMOS มีกระแสรั่วไหลขาเข้าเล็กน้อย ทำให้ค่าความต้านทานสูงขึ้นมาก ตั้งแต่ประมาณ 10 kΩ ถึง 1 MΩ ข้อเสียเมื่อใช้ค่าความต้านทานที่สูงขึ้นคือ ขาอินพุตจะตอบสนองต่อการเปลี่ยนแปลงแรงดันไฟฟ้าช้า ซึ่งเป็นผลมาจากการเชื่อมต่อระหว่างตัวต้านทานแบบดึงขึ้นและความจุรวมของขาและสายที่โหนดสวิตช์ ซึ่งประกอบกันเป็นวงจร RC ยิ่งผลคูณของ R และ C มีค่ามากเท่าใด ก็ยิ่งต้องใช้เวลามากขึ้นในการชาร์จและคายประจุความจุ ส่งผลให้วงจรทำงานช้าลง ในวงจรความเร็วสูง ตัวต้านทานดึงขึ้นขนาดใหญ่บางครั้งอาจจำกัดความเร็วที่พินสามารถเปลี่ยนสถานะได้อย่างน่าเชื่อถือ
ตัวต้านทานแบบพูลอัพและพูลดาวน์มักใช้เมื่อเชื่อมต่อสวิตช์หรืออินพุตอื่นๆ เข้ากับไมโครคอนโทรลเลอร์หรือเกตดิจิทัลอื่นๆ ไมโครคอนโทรลเลอร์ส่วนใหญ่มีตัวต้านทานแบบพูลอัพและ/หรือพูลดาวน์ที่สามารถตั้งโปรแกรมได้ในตัว จึงจำเป็นต้องใช้ส่วนประกอบภายนอกน้อยกว่า สามารถเชื่อมต่อสวิตช์กับไมโครคอนโทรลเลอร์เหล่านี้ได้โดยตรง โดยทั่วไปแล้วตัวต้านทานแบบพูลอัพมักถูกใช้มากกว่าตัวต้านทานแบบพูลดาวน์ แม้ว่าไมโครคอนโทรลเลอร์บางตระกูลจะมีทั้งแบบพูลอัพและพูลดาวน์ให้เลือกใช้ก็ตาม
มักใช้เพื่อควบคุมการไหลของกระแสไฟฟ้าเข้าไปในเซนเซอร์แบบต้านทานก่อนการแปลงสัญญาณแรงดันเอาต์พุตของเซนเซอร์จากอนาล็อกเป็นดิจิทัล
อีกหนึ่งการประยุกต์ใช้คือบัสโปรโตคอล I2C ซึ่งใช้ตัวต้านทานแบบดึงขึ้นเพื่อให้พินเดียวทำหน้าที่เป็นอินพุตหรือเอาต์พุต เมื่อไม่ได้เชื่อมต่อกับบัส พินจะลอยตัวอยู่ในสถานะอิมพีแดนซ์สูง
ตัวต้านทานดึงลงยังใช้กับเอาต์พุตเพื่อให้ได้ค่าอิมพีแดนซ์เอาต์พุตที่ทราบ