วิธีแก้ไขข้อผิดพลาดในการออกแบบ PCB หลังจากผลิตแล้ว


19

Newbie อายุ 16 ปีที่นี่

โปรเจคของฉันคือหุ่นยนต์ขนาดเล็กที่มี pcb ในฐานะแชสซี, แบตเตอรี่ lipo พร้อมวงจรชาร์จและเซ็นเซอร์อินฟราเรด ฉันใช้ LSM6DS33TR สำหรับ I2C accelerometer และไจโรสโคปของฉันที่มี 10K "ตัวต้านทานดึงขึ้น" ตามแผ่นข้อมูลและ ATMEGA328P เป็นไมโครคอนโทรลเลอร์

นี่เป็นครั้งแรกของฉันที่จะออกแบบบอร์ด PCB อุตสาหกรรมของฉันเองและผลิตมัน ฉันผลิต PCB กับ JLCPCB หลังจากส่งไฟล์และรอส่งเมื่อฉันเห็นข้อผิดพลาดจากการออกแบบของฉัน ฉันสังเกตเห็นว่าฉันไม่ได้ต่อสายตัวต้านทานแบบพูลอัพสำหรับบัส I2C ของฉันอย่างถูกต้องเพราะพวกเขาควรถูกดึงไปที่ 3V3

คำถามของฉันคือ:

  1. ฉันจะเปลี่ยนเส้นทางการเชื่อมต่อหรือทำการปรับเปลี่ยนเพื่อให้ SDA และ SCL ดึงขึ้นเพื่อจ่ายแรงดันไฟฟ้าด้วย PCB ที่กำลังผลิตอยู่แล้ว?
  2. ฉันควรเปลี่ยนการออกแบบและผลิต PCB อื่นหรือไม่ (ยากจน) :)

นี่คือแผนผังทั้งหมดของโครงการที่ฉันทำ: (เส้น i2c ล้อมรอบ) ป้อนคำอธิบายรูปภาพที่นี่

ชั้นบนสุด: (ระนาบทองแดง GND) ป้อนคำอธิบายรูปภาพที่นี่

ชั้นล่าง: (เครื่องบินทองแดง 3V3) ป้อนคำอธิบายรูปภาพที่นี่


3
เยี่ยมมาก! โชคดีสำหรับคุณเราทุกคนทำสิ่งนี้และผ่านกระบวนการแก้ไข ฉันกำลังจะแนะนำสิ่งเดียวกันกับ @Oldfart ขอให้คุณโชคดี
Elliot Alderson

10
ขอแสดงความยินดี! ยินดีต้อนรับสู่ดินแดนแห่ง bodge! :) (คุณไม่ใช่นักออกแบบ PCB ตัวจริงจนกว่าคุณจะแยกสปูลของสายสีน้ำเงิน? XD)
ThreePhaseEel

4
สำหรับโครงการในอนาคตฉันแนะนำให้คุณเพิ่มแผ่นอิเล็กโทรดลงบนร่องรอยสำคัญบางอย่างแม้ว่ามันจะไม่ได้รับประชากรดังนั้นคุณสามารถติดสายไฟเข้ากับพวกเขาได้หากจำเป็นและคุณไม่ต้องกังวลเกี่ยวกับการบัดกรีลวด พินของแพ็คเกจ IC ขนาดเล็ก
ครอบครัว

6
สิ่งที่ @Hearth บอกว่าสามารถทำได้ในซอฟต์แวร์ EDA / EDM ส่วนใหญ่โดยการทำส่วนประกอบจุดทดสอบที่มี "พิน" หนึ่งตัวจากนั้นสร้างรอยสำหรับจุดทดสอบนั้นซึ่งเป็นเพียงแผ่นยึดพื้นผิวเล็ก ๆ น้อย ๆ คุณจะมีจุดเหล่านี้ทั้งหมดทั่วกระดานของคุณติดป้ายกำกับว่าคุณสามารถใช้สำหรับ mods หรือสำหรับเชื่อมต่อโพรบขอบเขต โอกาสสูงที่เครื่องมือของคุณมีบางอย่างที่คล้ายกันในไลบรารี
TimWescott

8
ฉันขอแนะนำให้คุณนำกระดานที่คุณซื้อมาใช้งานแม้ว่ามันจะดูไม่น่าดึงดูดเท่าไหร่ จากนั้นหากคุณตัดสินใจที่จะทำซ้ำคุณจะพบปัญหาได้ 100%
Spehro Pefhany

คำตอบ:


19

คุณต้อง 'แก้ไข' PCB ของคุณ

ฉันจะทำตามที่ฉันพยายามวาดด้านล่าง: วางตัวต้านทานแบบดึงขึ้นสองตัว (10K) ลงบนแผ่นอิเล็กโทรดที่มีอยู่ทำให้พวกมันสั้นลง จากนั้นลวดจากปลายอีกด้านหนึ่งไปยังการเชื่อมต่อ 3V3 ที่ใกล้ที่สุด

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

ฉันได้วาดตัวต้านทาน SMD แต่คุณสามารถใช้แกนแนวแกน "แบบเก่า" ได้เช่นกัน


5
แค่อยากจะเพิ่มว่าฉันชอบที่จะใช้ลวดห่อลวดสำหรับการแก้ไขเหล่านี้ แต่ลวดแข็งใด ๆ ที่ควรทำ ฉันยังอยากจะวางกาวเล็ก ๆ ไว้ใต้ตัวต้านทานเพื่อยึดมันไว้กับที่
Elliot Alderson

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

ฉันใช้ตัวต้านทาน 0603 .. ตัวต้านทานใช่นั่นอาจจะดีในการเข้าถึงแผ่น ขอบคุณ!
Dave Benemerito

9

บอร์ดของคุณมีปัญหามากขึ้น ตัวอย่างเช่นหมุดแหล่งจ่ายไฟสำหรับ U5 มีตัวเก็บประจุเป็นอนุกรมซึ่งฉันเดาว่าควรจะเป็นตัวแยกแคประหว่าง VCC และ GND ฉันยังไม่เห็นตัวแยกสัญญาณใด ๆ สำหรับ AVR

ในท้ายที่สุดมันอาจจะดีกว่าที่จะทำซ้ำกระดานอย่างถูกต้อง


1
ปัญหานั้นไม่ใช่เรื่องยากที่จะแก้ไข นี่น่าจะเป็นความเห็นไม่ใช่คำตอบ
ครอบครัว

2
ปัญหา VCC กับ U5 สามารถแก้ไขได้ในลักษณะเดียวกับปัญหาตัวต้านทาน I2C มากขึ้นหรือน้อยลงโดยเฉพาะอย่างยิ่งเนื่องจากปลายอีกด้านจำเป็นต้องกราวด์และในกรณีนั้น OP สามารถขูดหน้ากากบัดกรีออกจากระนาบกราวน์ได้ ในจุดที่ถูกต้องวางหมวกขวางและประสานปลายทั้งสองด้านลง
TimWescott

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

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

ขอบคุณสำหรับสิ่งนั้น! ฉันไม่ได้สังเกตเห็นความผิดพลาดจริง ๆ ของหมวกจนกระทั่งคำตอบนี้ ฉันไม่คิดว่าฉันจะคิดอะไรในเวลานั้น XD มีหลายอย่างที่ต้องทำสำหรับความผิดพลาดของ pcb ขอบคุณ!
Dave Benemerito

9

สามารถแก้ไขบัส I2C ได้โดยไม่มีการเปลี่ยนแปลง PCB (ปัญหาอื่นที่ @ Unimportant ยังคงต้องให้ความสนใจ)

เพียง:

  • แทนที่ตัวต้านทานแบบอนุกรม (ซึ่งไม่มีตัวออกแบบแปลก ๆ ?) ด้วยค่าต่ำที่เหมาะสมสำหรับตัวต้านทานแบบอนุกรมเช่น 22 โอห์ม
  • เปิดใช้งานตัวต้านทานแบบดึงขึ้นภายในที่ตั้งโปรแกรมได้บนหมุด I2C ที่สอดคล้องกันของ ATMEGA

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


น่าสังเกต แต่อาจไม่สามารถทำงานกับอัตราข้อมูลที่ IMU ต้องการ
Matt Young

4
@MattYoung: นั่น "IMU" มีอัตราสูงสุด 1.6ksps ก็ไม่จำเป็นต้องมีอัตราการส่งข้อมูลแฟนซี (และเซ็นเซอร์ที่ไม่ต้องด้วยความเร็วสูงจะไม่ได้ใช้ I2C ในสถานที่แรก)
เบนยต์

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