วิธีจัดการกับตัวต้านทานแบบดึงขึ้นหลายตัวในโมดูล


9

ฉันกำลังคิดที่จะทำโมดูลสำหรับคณะกรรมการพัฒนาที่ฉันทำเมื่อไม่กี่วันที่ผ่านมาซึ่งจะรวมถึงอินเตอร์เฟส spi / i2c

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

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

แต่ถ้าฉันเพิ่มตัวต้านทานแบบดึงขึ้นลงในกระดานหลักฉันจะมีหมุดเหล่านั้นใน MCU อยู่ตลอดเวลาที่ใช้งานต่ำ

ดังนั้นคำถามหลักคือ:

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

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

Thanks.-


สร้างโมดูลแยกต่างหากซึ่งจะมีตัวต้านทานแบบดึงขึ้นเท่านั้น :)
Alexandr Zarubkin

คำตอบ:


14

ฉันจะสมมติว่าความยาวทั้งหมดของรถเมล์แต่ละคันของคุณต่ำกว่า 1 เมตรซึ่งเป็นเรื่องธรรมดาสำหรับฉันธรรมดา2 C และ SPI นอกจากนี้ความจุบัสยังอยู่ในข้อมูลจำเพาะ

ควรมีชุดตัวต้านทานแบบดึงขึ้นหนึ่งชุดเท่านั้น เป็นผลให้สถานที่ที่ดีที่สุดสำหรับพวกเขาอยู่บนกระดานควบคุมหลัก อย่าวาง pull-ups บนโมดูล

หากคุณต้องการดึงขึ้นมาในบางกรณีและไม่มีในกรณีอื่น

  • อย่าใส่ตัวต้านทานแบบดึงขึ้นเมื่อคุณไม่ต้องการตัวต้านทาน
  • ออกแบบบอร์ดควบคุมหลักเพื่อให้พูลอัพเชื่อมต่อกับสายสัญญาณผ่านจัมเปอร์ ลบ shorting blocks เมื่อคุณไม่ต้องการ pull-ups

แก้ไข: ตรงไปตรงมาฉันคิดว่ามันเป็นความผิดพลาดที่ Sparkfun วาง pull-ups บน I 2 C โมดูลทาส น่าเสียดายที่ไม่ใช่ทุกคนที่ซื้อโมดูลตระหนักว่าการดึงมากเกินไปอาจเป็นปัญหาได้ มันจะดีกว่าถ้าแผงควบคุม (แทนที่จะเป็นแผงวงจรต่อพ่วงของทาส) นั้นมีการดึงพร้อมกับจัมเปอร์ประสาน โอ้ ... เดี๋ยวก่อน ... Arduino ไม่ได้พกพาตัวเลือก (อาจเป็นไปได้) งั้นเรามาดูที่ pull-ups ทุกที่ ง่ายขึ้นประสบการณ์เริ่มต้นนอกกล่อง แต่เพิ่มโมดูลทาสไม่กี่และรถบัสจะหยุดทำงาน

ปรับปรุง (พฤษภาคม 2015):
- การสนทนาที่เกี่ยวข้องในความคิดเห็นในหัวข้ออื่น
- ในโมดูลล่าสุดของพวกเขา SparkFun เริ่มเพิ่มจัมเปอร์ blob ประสานระหว่าง Vcc และ I 2 C ตัวต้านทานแบบดึงขึ้น ( ตัวอย่าง ) ที่ช่วยให้สามารถปลด pull-ups ได้ง่ายขึ้น

อัปเดต (ธันวาคม 2558):
คำถามที่คล้ายกันเกี่ยวกับการแก้ไขปัญหา I 2 C พร้อมโมดูลหลาย ๆ ตัวโผล่ขึ้นมาบนกระดานข้อความ พยายามตอบสนองทั่วไปเพิ่มเติม


ใช่จริง ๆ แล้วกรณีของฉันดูเป็นตัวอย่าง ตัวอย่างเช่นโมดูล rtc ทั้งหมดที่ขายในร้านค้าบางแห่งรวมถึงตัวต้านทาน pullup ดังนั้น ... วิธีจัดการกับโมดูลเหล่านั้นในกรณีนั้น นั่นเป็นเหตุผลที่ฉันทำเครื่องหมายคำถามตัวหนาอย่างเด่นชัด :)
Sein Oxygen

1
@SeinOxygen หากคุณมีโมดูลที่มีตัวต้านทานแบบ pull-up รวมถึงคอนโทรลเลอร์ที่มี pull-ups ของตัวเองแล้วตัวต้านทานเหล่านี้ทั้งหมดจะปรากฏในแบบขนานและนำเสนอแบบดึงขึ้นแข็ง (ความต้านทานน้อยกว่า) สมมติว่าคุณมีตัวต้านทาน 3x (สาม) 2.2kΩทั้งหมดเป็นแบบพูลอัพ ความต้านทานการดึงขึ้นทั้งหมดคือ733Ω ที่ละเมิดข้อกำหนด I2C จะทำอย่างไร? ลบ pull-ups พิเศษออกจากโมดูล (บางทีอาจไม่ได้มาตั้งแต่แรก)
Nick Alexeev

@SeinOxygen เพิ่มเติมเกี่ยวกับค่าการดึงขึ้น I2C ในชุดข้อความนี้
Nick Alexeev

4

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

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

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