ข้อควรพิจารณาเมื่อใช้ตัวต้านทานแบบดึงขึ้น / ลงภายใน


11

ฉันทำงานกับ STM32 ไมโครคอนโทรลเลอร์ ไมโครคอนโทรลเลอร์เหล่านี้มีตัวเลือกในการตั้งค่าพินอินพุตเป็นแบบดึงขึ้นหรือดึงลง:

ป้อนคำอธิบายรูปภาพที่นี่

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

มันจะเป็นสิ่งที่ดีที่จะทำ?

มีบางกรณีที่ฉันควรใช้ความระมัดระวังเป็นพิเศษหรือไม่ใช้คุณสมบัตินี้เลย?


2
ฉันใช้ pu / pd ภายในทุกครั้งที่ทำได้และไม่มีปัญหาใด ๆ ดังนั้นถ้าคุณไม่มีเหตุผลที่ถูกต้องที่จะไม่ใช้ pull-in build-in คุณก็สามารถใช้มันได้ เหตุผลที่จะไม่พึ่งพา pu / pd ภายในอาจเป็นได้ว่าอินพุตมีสายยาวที่เชื่อมต่อกับมันซึ่งอาจเชื่อมโยงกับสายอื่นทำให้เกิดพฤติกรรมที่ไม่คาดคิด pu / pd ภายในค่อนข้างอ่อนแอ (เพื่อประหยัดกระแส) และถูกรบกวนได้ง่ายกว่าตัวอย่างเช่นตัวต้านทาน 10 kohm
Bimpelrekkie

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

1
@ pjc50 คุณควรโพสต์สิ่งนั้นเป็นคำตอบฉันไม่ได้สังเกตเห็นความคิดเห็นของคุณจนกว่าหลังจากที่ฉันโพสต์คำตอบของฉัน
Jason S

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

1
@Whjackjack: คุณควรพิจารณาเปลี่ยนชื่อคำถาม อาจเป็น "ข้อควรพิจารณาเมื่อใช้ตัวต้านทานแบบดึงขึ้น / ลงภายใน" หรืออะไรทำนองนั้น
Rev1.0

คำตอบ:


15

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

โครงสร้างขา STM32

หากสิ่งนี้ตรงกับความต้องการของคุณคุณสามารถทำได้ด้วยส่วนประกอบภายนอก

แก้ไข โปรดจำไว้ว่าเมื่อเปิดเครื่องหมุดจะถูกตรึง ถ้ามันไม่ขัดขวางแอปพลิเคชันของคุณมันก็ดี! นั่นเป็นเหตุผลว่าทำไมจึงควรฝึกหัดเพื่อเริ่มต้นส่วน IO ก่อนจากนั้นจึงก้าวไปข้างหน้ากับอุปกรณ์ต่อพ่วงอื่น ๆ


1
ใช่ แต่ยังคงอยู่ในระหว่างการรีเซ็ตมันจะถูก tristated ใช่ไหม
seetharaman

1
ฉันตอบคำถาม "ฉันควรเชื่อถือฟีเจอร์แบบดึงลงของไมโครคอนโทรลเลอร์หรือไม่" และตอนนี้คำถามเปลี่ยนไป: - / และด้วยคำถามใหม่คำตอบของ Bence Kaulics นั้นแม่นยำกว่า!
Swanand

คำถาม: การใช้ตัวต้านทานแบบดึงขึ้น / ลงภายในจะทำให้ชิปร้อนขึ้นหรือไม่
Caleb Reister

16

โดยทั่วไปแล้วมันเป็นเรื่องที่ดีมากที่จะใช้ตัวต้านทานภายในแบบดึงขึ้นหรือลง

ข้อเสียคือคุณสามารถลืมเปิดใช้งานจากซอฟต์แวร์ซึ่งอาจทำให้เกิดอาการปวดหัวเล็กน้อย pull-ups ภายนอกจะอยู่ที่นั่นเสมอ ดังนั้นอย่าลืมเปิดใช้งานภายในและบันทึกพื้นที่ PCB จำนวนมากโดยการลดจำนวนองค์ประกอบ

30 kΩ50 kΩ

ป้อนคำอธิบายรูปภาพที่นี่

คุณควรตรวจสอบทุกครั้งว่าแอปพลิเคชันของคุณต้องการค่าตัวต้านทานแบบดึงขึ้นหรือลงก่อนที่จะใช้ตัวต้านทานภายใน ตัวอย่างเช่นอย่าใช้กับI 2 Cเนื่องจากค่าเหล่านี้จะสูงเกินไปสำหรับสิ่งนั้น


12

ยกเว้นว่าตัวต้านทาน pullup และ pulldown นั้นทำงานในระหว่างการรีเซ็ต (ฉันสงสัยว่าไม่ได้ แต่ฉันไม่คุ้นเคยกับอุปกรณ์ STM32) มีสถานะพินที่ไม่ได้กำหนดไว้ที่การรีเซ็ต นี่คือเหตุผลสำคัญอย่างหนึ่งในการใช้ตัวดึงภายนอกหรือตัวต้านทานแบบเลื่อนลง


10

อย่างที่คนอื่น ๆ พูดกันการดึงและดึงภายในก็ใช้ได้ตราบใดที่:

  • คุณจำที่จะกำหนดค่าพวกเขา
  • พวกเขาแข็งแกร่งพอ
  • คุณไม่ได้ต่อสู้กับพวกมันด้วยการดึงจากภายนอกและ
  • แรงดันไฟฟ้าที่เริ่มต้นขึ้นและรีเซ็ตไม่สำคัญ

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

โดยทั่วไปตัวต้านทานแรงดึงภายนอกจะทำให้การออกแบบมีความระมัดระวังมากขึ้น


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

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

3

นอกจากข้อยกเว้นแบบละเอียดอื่น ๆ ที่ระบุไว้ในคำตอบทั้งหมดแล้วตัวต้านทานแบบดึงขึ้นภายในอ่อนแอเกินไปสำหรับI²Cในหลาย ๆ กรณี



แน่นอนว่าไมโครคอนโทรลเลอร์ (หลายตัว) บางตัวมีพินแบบ open-drain โดยเฉพาะสำหรับ I2C ที่คุณสามารถกำหนดค่าได้
Thomas

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