Wie kann man nach der Herstellung einen Fehler beim PCB-Design beheben?

19

Neuling 16 Jahre alt hier.

Mein Projekt ist ein Mini-Roboter mit der Platine als Chassis, Lipo-Akku mit Ladeschaltung und Infrarotsensoren. Ich habe LSM6DS33TR für meinen I2C-Beschleunigungsmesser und mein Gyroskop mit 10K "Pull-up-Widerstand" gemäß Datenblatt und ATMEGA328P als Mikrocontroller verwendet.

Es ist das erste Mal, dass ich meine eigene Industrieplatine entwerfe und herstelle. Ich habe die Leiterplatten mit JLCPCB hergestellt. Nachdem ich die Dateien gesendet und auf die Lieferung gewartet habe, habe ich einen Fehler in meinem Design entdeckt. Mir ist aufgefallen, dass ich die Pull-Up-Widerstände für meinen I2C-Bus nicht richtig verdrahtet habe, weil sie auf 3V3 hochgezogen werden sollten.

Meine Fragen sind:

  1. Wie kann ich Verbindungen umleiten oder Änderungen vornehmen, um den SDA- und SCL-Pull-up auf die Versorgungsspannung einzustellen, wenn die Leiterplatte bereits hergestellt wird?
  2. Sollte ich das Design ändern und eine andere Leiterplatte herstellen? (Pleite ):)

Hier ist der gesamte Schaltplan für das Projekt, das ich gemacht habe: (die i2c-Linien sind eingekreist) Bildbeschreibung hier eingeben

TOP LAYER: (GND Copper Plane) Bildbeschreibung hier eingeben

Unterschicht: (3V3 Copper Plane) Bildbeschreibung hier eingeben

Dave Benemerito
quelle
3
Gute Arbeit! Zum Glück für Sie haben wir alle solche Dinge getan und sie repariert. Ich wollte dasselbe vorschlagen wie @Oldfart. Viel Glück für Sie.
Elliot Alderson
10
Herzliche Glückwünsche! Willkommen im Land der Bodge! :) (Sie sind kein echter PCB-Designer, bis Sie die Spule des blauen Drahtes ausgebrochen haben? XD)
ThreePhaseEel
4
Für zukünftige Projekte empfehle ich Ihnen, einige der wichtigeren Leiterbahnen mit zusätzlichen Pads zu versehen, auch wenn diese nicht bestückt sind, damit Sie bei Bedarf Drähte daran anbringen können und sich keine Gedanken über das Anlöten eines Drahtes machen müssen ein Pin eines winzigen IC-Pakets.
Hearth
6
Was @Hearth sagte, kann in den meisten EDA / EDM-Programmen erreicht werden, indem eine Testpunktkomponente erstellt wird, die einen "Pin" aufweist, und dann ein Footprint für diesen Testpunkt erstellt wird, der nur ein kleines Pad für die Oberflächenmontage ist. Sie haben all diese Punkte auf Ihrem gesamten Board, die beschriftet sind und die Sie für Modifikationen oder zum Anschließen von Zielfernrohrsonden verwenden können. Die Chancen stehen gut, dass Ihr Tool bereits ähnliche Inhalte in den Bibliotheken hat.
TimWescott
8
Ich schlage vor, dass Sie die gekauften Boards zum Laufen bringen, auch wenn sie nicht so attraktiv aussehen. Dann, wenn Sie sich entscheiden, es erneut zu machen, werden Sie mit größerer Wahrscheinlichkeit 100% der Probleme gefunden haben.
Spehro Pefhany

Antworten:

19

Sie müssen Ihre Leiterplatte "patchen".

Ich würde tun, was ich versucht habe, um unten zu zeichnen: Platzieren Sie zwei Pull-up-Widerstände (10 K) auf den vorhandenen Pads, und schließen Sie sie kurz. Dann führt ein Draht von den anderen Enden zur nächsten 3V3-Verbindung.

Bildbeschreibung hier eingeben

Ich habe einen SMD-Widerstand gezeichnet, aber Sie können auch die "altmodischen" axialen verwenden.

Alter Furz
quelle
5
Ich wollte nur hinzufügen, dass ich für diese Korrekturen gerne Wire-Wrap-Draht verwende, aber jeder feine Massivdraht sollte das tun. Ich wäre auch geneigt, einen winzigen Tropfen Klebstoff unter die Widerstände zu geben, um sie an Ort und Stelle zu halten.
Elliot Alderson
3
Ein axialer THT-Widerstand kann geeigneter sein, da für den SMD-Widerstand keine zweite Kontaktstelle vorhanden ist. Das Hinzufügen von etwas Kleber kann helfen, ist aber nicht sicher, ob es die beste Lösung ist. Mit etwas Glück sind die Zuleitungen des THT-Widerstands lang genug, um die gewünschte Stelle zu erreichen, ohne dass zusätzliche Verkabelung erforderlich ist.
Fredled
Ich habe 0603-Widerstände verwendet. Ja, diese Widerstände sind möglicherweise gut, um Pads zu erreichen. Vielen Dank!
Dave Benemerito
9

Dein Board hat mehr Probleme. Zum Beispiel haben die Stromversorgungsstifte für U5 einen Kondensator in Reihe geschaltet, der vermutlich die Entkopplungskappen zwischen VCC und GND sein sollte. Ich sehe auch keine Entkopplungskappen für den AVR.

Am Ende könnte es besser sein, das Board korrekt zu wiederholen.

Unwichtig
quelle
1
Dieses spezielle Problem ist jedoch nicht schwer zu beheben. Dies sollte wahrscheinlich ein Kommentar sein, keine Antwort.
Hearth
2
Das VCC-Problem mit U5 kann mehr oder weniger auf die gleiche Weise wie das I2C-Widerstandsproblem behoben werden - insbesondere, weil das andere Ende auf Masse gelegt werden muss und in diesem Fall das OP nur eine Lötmaske von der Masseebene abkratzen kann Legen Sie die Kappe an der richtigen Stelle quer und löten Sie beide Enden nach unten.
TimWescott
2
Erwähnenswert ist, dass das Ersetzen dieser beiden Kappen durch 0-Ohm-Widerstände wahrscheinlich ausreichend ist. Außerdem sollte dieser Überbrückungsdraht nicht zum Anschließen von Entkopplungskondensatoren verwendet werden, da deren Induktivität die Kapazität aufhebt - Tims Ansatz, eine direkte Verbindung mit einer Erdungsebene herzustellen, funktioniert.
Ben Voigt
3
Einige Leute interessieren sich nicht für viel Ausweicharbeit auf einem Board und andere sehen mehrere Fehler als Grund genug, das Board zu wiederholen. Daher halte ich es für richtig, darauf hinzuweisen, dass es mehr Fehler auf dem Board gibt, die die Entscheidung des OP beeinflussen könnten.
Unwichtig
Dank dafür! Ich habe den Kappenfehler bis zu dieser Antwort nicht wirklich bemerkt. Ich weiß nicht, was ich dieses Mal XD gedacht habe. Es gibt wirklich viel zu tun für meinen Leiterplattenfehler. Vielen Dank!
Dave Benemerito
9

Der I2C-Bus kann ohne Änderungen an der Platine repariert werden (die anderen Probleme, die @Unwichtig sind, müssen weiterhin behoben werden).

Einfach:

  • Ersetzen Sie die Vorwiderstände (die seltsamerweise keine Bezeichnungen haben?) Durch einen niedrigen Wert, der für Vorwiderstände geeignet ist, z. B. 22 Ohm.
  • Aktivieren Sie die programmierbaren internen Pullup-Widerstände an den entsprechenden I2C-Pins des ATMEGA.

Beachten Sie, dass die programmierbaren Klimmzüge nicht genau den empfohlenen Werten für die I2C-Nutzung entsprechen. Sie sollten daher die maximale Geschwindigkeit basierend auf der neuen Klimmzugstärke neu berechnen.

Ben Voigt
quelle
Es ist erwähnenswert, wird aber wahrscheinlich nicht mit den Datenraten funktionieren, die eine IMU benötigt.
Matt Young
4
@MattYoung: Das "IMU" hat eine maximale Geschwindigkeit von 1,6 ksps, es benötigt keine ausgefallenen Datenraten (und Sensoren, die hohe Geschwindigkeiten benötigen, werden I2C nicht in erster Linie verwenden)
Ben Voigt
Ich habe die internen Pullup-Widerstände des atmega in Betracht gezogen und nach gründlicher Recherche herausgefunden, dass es nicht für I2C geeignet ist. Zumindest für diesen Chip braucht es keine ausgefallenen Raten. Danke für diese Info :)
Dave Benemerito