Wie greift man ein neues Board an?

24

Sie erhalten Ihre Leiterplatte vom Hersteller zurück. Es ist ein neues Design, Sie haben natürlich alle wichtigen Teile mit Brot bestückt, aber Sie wissen, dass es Probleme geben wird. Es gibt einfach zu viele Dinge, die Probleme verursachen können, zB:

  • Fehler im Schaltplan
  • Fehler im Layout, vom ERC / DRC nicht gefunden
  • Versetzte Teile beim Löten
  • Shorts und ähnliches beim Löten
  • eine beliebige Kombination der oben genannten

Ich hatte in letzter Zeit zwei relativ komplexe Platinen, bei denen ich nach dem Zusammenbau im Grunde genommen die gesamten Platinen entvölkern musste, um den Fehler zu lokalisieren. Ich habe die Fehler gefunden, aber die Bretter waren Schrott.

Ich habe versucht, mit dem Nötigsten an Teilen und den Teilen zu beginnen, die nicht von Hand gelötet werden können (ich verwende Paste, Schablone und Toaster). In der Regel sind dies die MCU, der JTAG-Anschluss und einige Kondensatoren. Dann bevölkere ich nach und nach andere Gebiete und überprüfe sie auf Probleme.

Dieser Ansatz funktioniert, ist aber sehr langsam. Ich muss auch jeden Code auskommentieren / kommentieren, der das Vorhandensein einer bestimmten Hardware voraussetzt.

Hat jemand Tipps / Vorschläge, wie man sich neu gestalteten Leiterplatten nähert?

EDIT: Ich denke hauptsächlich an die Art von Problemen, die Ihr Board tot lassen, wie versteckte Power-Rail-Shorts oder alles, was die MCU kaputt macht.

morten
quelle
2
Möglicherweise ist es eine gute Idee, die Stromversorgung und -verteilung, einschließlich der Bulk- und Bypass-Kappen, zu füllen und dann die Platine mit Strom zu versorgen. Wenn Sie eine Tantalkappe auf der Rückseite haben, werden Sie es in Eile wissen. Überprüfen Sie dann, ob die MCU (und usw.) die richtigen Versorgungsspannungen an den richtigen Pins hat, bevor Sie mit dem Bestücken dieser Geräte fortfahren.
JustJeff
1
Als Nebenbemerkung halte ich es für eine gute Praxis, Ihren Code so modular zu halten, wie Sie es getan haben (Entfernen der Funktionalität für fehlende Peripheriegeräte). Ich schreibe meinen Code immer so, dass er in einem 'Demo'-Modus funktioniert, der fehlende Peripheriegeräte ignoriert, aber die Programmlogik weiterhin durchläuft, bis ich sicher bin, dass die Peripheriegeräte korrekt getestet wurden. Dann läuft Ihr Programm zumindest so, dass Sie feststellen können, ob es programmiert wurde.
AngryEE
2
Beginnen Sie mit einer niedrigen Strombegrenzung, wenn Sie Eingangsleistung anlegen.
Starblue
1
Sollte Community-Wiki sein.
Brian Carlton
1
@Morten - Ah, macht Sinn. Sie haben recht, es ist unwahrscheinlich, dass Caps Probleme verursachen.
Kevin Vermeer

Antworten:

10

Ich habe entschieden, dass das vorzeitige Breadboarden Zeitverschwendung ist, es sei denn, es gibt Aspekte der Leistung eines Teils, die Sie selbst messen müssen.

Ich denke sogar, dass es Zeitverschwendung ist, das Board in Stücke zu bauen. Das erste Hardwaredebug dauert nur ein oder zwei Tage. Alle subtilen Probleme werden ohnehin erst bei der Software-Integration angezeigt. Ich würde lieber eine Schaltung (die komplette) debuggen als mehrere Ad-hoc-Reduzierungen der Schaltung.

Bauen Sie einfach das Ding! Bauen Sie die gesamte Platine zusammen und schalten Sie sie ein. Schauen Sie sich die Versorgungsspannung an. Wie viele mA zieht es? Welcher Teil brennt heiß? Welcher Teil ist warm? Versuchen Sie dann, die Firmware auf einen beliebigen Mikrocontroller auf der Platine zu brennen. Beginnen Sie dann mit dem Schreiben der Firmware. Bring die Uhr zum Laufen und schalte eine Stecknadel um. Holen Sie sich serielle (oder was auch immer) Kommunikation auf. Schreiben Sie nun Testprogramme für jedes Peripheriegerät. Bauen Sie dann die Produktionstestvorrichtung und schreiben Sie die "echte" Firmware.


Bearbeiten:

Auf der Suche nach stecken gebliebenen Schienen

Wenn eine Versorgungsschiene an Masse klebt (misst 0 Ohm mit einem Ohmmeter), schalten Sie sie an einer Tischversorgung ein. Stellen Sie die Spannung normal und die Strombegrenzung auf einige hundert mA ein. Drucken Sie das PCB-Design auf Papier aus und suchen Sie ein DMM, das Mikrovolt misst. Messen Sie die Mikrovolt beginnend an den Versorgungsanschlüssen und notieren Sie die Spannungsabfälle auf dem PCB-Ausdruck. Durch Betrachten der Mikrovolt-Unterschiede können Sie genau verfolgen, wohin der Strom fließt, ohne die Leiterplatte zu entvölkern oder zu zerlegen. Diese Technik ist besser als die Verwendung eines Ohmmeters, da Sie viel Strom durch den Stromkreis pumpen können, mehr als jedes normale Ohmmeter liefern kann.

Eine ähnliche Technik funktioniert zum Auffinden von Kurzschlussspuren auf einer ansonsten bestückten Platine. Führen Sie die Karte aus, und verwenden Sie ein Oszilloskop, um "digitale" Spuren zu finden, die sich in einem Spannungszwischenbereich befinden.

Markrages
quelle
Ich habe den gleichen Ansatz verwendet. Normalerweise funktioniert es, aber ein paar Mal ist es zurückgekommen, um mich ziemlich schlecht zu beißen. Diesmal war es ein scheinbar unschuldiger Schlitz unter einem Stecker, der während der Herstellung durchkontaktiert worden war und die Erdungs- und Stromversorgungsebenen kurzgeschlossen hatte. Ganz meine Schuld, aber es war ein frustrierender und schwer zu findender Fehler.
Morten
1
Um den "Just build the thing" -Ansatz zu verwenden, muss ich wahrscheinlich mehr als eine einzelne Leiterplatte bestellen.
Morten
Ich habe "Quietsch" -Sonden gesehen, die für einen ähnlichen Zweck verwendet wurden - um den Kurzschluss herauszufinden. Leider kann ich keinen Link zum Produkt finden.
Toybuilder
20

Dazu bevölkere ich die Platine zunächst mit dem Nötigsten, versorge zuerst die Stromversorgung und dann die MCU, füge dann die verschiedenen Subsysteme nacheinander hinzu und teste sie, bevor ich fortfahre. Ich finde den Prozess überhaupt nicht langsam.

Ich habe Boards jeglicher Komplexität blank-board getestet. Es kostet extra, aber es lohnt sich.

Leon Heller
quelle
3
Es braucht nur einen großen Fehler, der auf diese Weise gefunden wurde, um es viel schneller zu machen
Kortuk,
11

Ich habe nur sehr kleine Schaltkreise Steckbrett. Dann löte ich die kleinen Schaltkreise auf Protoboards. Wenn Sie mit SMD-Chips arbeiten, ist es hilfreich, die SMD-> Thru-Hole-Adapter zu erwerben.

Dies gibt Ihnen im Grunde "Bausteine". Ich löte diese Schaltungsblöcke dann auf ein Entwicklungskit oder eine alte Platine mit der MCU, die ich verwenden möchte. Es sieht grausam aus, mit vier oder fünf verschiedenen kleinen Leiterplatten, die von einer größeren abhängen, aber es funktioniert.

Sobald ich die Bausteine ​​auf einer Entwicklungsplatine habe, gehe ich zu einer Leiterplatte. Wenn die schematischen Änderungen an alle , während die PCB zu machen, gehe ich zurück und die Bausteine überarbeite und sie wieder auf dem dev Bord testen.


Anstatt Code zu kommentieren, sollten Sie die Verwendung der Präprozessor-Direktiven #define und #ifdef in Betracht ziehen. Es erleichtert das Hinzufügen und Entfernen von Funktionscodes in einer MCU erheblich.

ajs410
quelle
Klingt so, als ob ich es mache, was meiner Meinung nach eine sehr schöne Art ist, ein Design zu entwickeln. Es ermöglicht auch die spätere Wiederverwendung von Teilen.
Trygve Laugstøl
9

Bei Boards jeglicher Komplexität ist es fast genauso wichtig, einen Testplan zu entwickeln, wie das Board selbst zu entwickeln. Selbst zu Beginn des Board-Designs ist es eine gute Idee zu wissen, was Sie testen werden, obwohl die Implementierung noch nicht existiert. "Design for Test", wie sie sagen. Stellen Sie sicher, dass die Tastensignale an den Testpunkt-Pads anliegen. Versuchen Sie, das Design so zu partitionieren, dass einzelne Subsysteme unabhängig voneinander oder so weit wie möglich unabhängig voneinander aufgerufen werden können.

JustJeff
quelle
Hmm, toller Vorschlag! Aus irgendeinem Grund habe ich in diesem Zusammenhang noch nie über "Design for Test" nachgedacht.
Morten
2
Sie können die nächste Stufe erreichen, indem Sie die Selbsttestfunktion verwenden. Dies erhöht die Komplexität Ihres Boards, erleichtert jedoch die Designüberprüfung und bietet Ihnen sogar die Möglichkeit, Selbsttests beim Einschalten in Ihr Feldprodukt einzubeziehen.
JustJeff
8

Ich nehme an, eine Schlüsselfrage lautet: Was ist die Checkliste vor dem Flug, bevor Sie ein Board für die Produktion freigeben? Meine Vorflugliste ist:

  1. Entwurfsprüfung
    1. Netznamen und Off-Sheet-Ports
    2. Stromversorgungsstifte angeschlossen
  2. Schema DRC
  3. Fußabdruck-Peeling
    1. Komplette Herstellerteilenummer
    2. Die Teilenummer entspricht der Grundfläche auf der Leiterplatte und der Anschlussbelegung im Schaltplan
    3. Die Footprint-Pin-Nummer ist "richtig herum" und korrekt
    4. Stellflächenmaße werden doppelt auf Lochgröße, Abstand, Aussparungen usw. überprüft.
    5. Gegenstecker sind richtig ausgerichtet; Stifte 1-zu-1, 2-zu-2 usw.
  4. Leiterplattenabmessungen und Bohrungen
  5. PCB DRC
  6. Fab Drawings hat alle Ebenen und Beschriftungen.

Diese Antwort wurde Wiki-Community.

Spielzeugbauer
quelle
5

Was die anderen Jungs gesagt haben, ist alles gültig, aber ich möchte meine 2 Cent Wert hinzufügen.

Das absolut Beste, was zu tun ist, ist, die Fehler nicht an erster Stelle zu machen. Es scheint albern, das zu erwähnen, aber allzu oft wird das übersehen. Führen Sie eine Überprüfung des Schaltplans und des PCB-Designs durch. Lassen Sie Ihr Design von mehreren Personen betrachten - auch von Anfängern. Verwenden Sie die Entwurfsregelprüfungen in Ihrer Software. Verwenden Sie alle verfügbaren Ressourcen, um sicherzustellen, dass Ihr Design gut ist. Verfügen Sie über gute technische Methoden, um die Wahrscheinlichkeit zu erhöhen, dass Sie einen Fehler bemerken.

In den letzten 20 Jahren hatte ich nach dem Design von Dutzenden von Leiterplatten (einige mit 14 Schichten und 2.000 Bauteilen) nur ZWEI Leiterplatten, die in der ersten Runde der Prototypen unbrauchbar waren. Natürlich hatte ich Bugs, aber nur zwei Boards waren "gemauert".

In jedem Fall waren die Prototypen voll besetzt, bevor ich mit dem Debuggen begann. Ich würde die Stromschienen ausschalten, um sicherzustellen, dass es keine Shorts gibt. Führen Sie dann eine Sichtprüfung mit einem Mikroskop durch. Schalten Sie es dann ein. Danach beginne ich eine methodische Test- und Debugsitzung - und arbeite an kleinen Abschnitten der Schaltung, bis alles getestet ist und funktioniert. In den meisten Fällen würde ich einige Änderungen vornehmen und mit der nächsten Überarbeitung der Leiterplatte in die Serienproduktion gehen.

All dies wäre nicht möglich gewesen, ohne große Anstrengungen, um die Fehler im Vorfeld zu reduzieren.

user3624
quelle
Einige Hersteller (wie 4pcb) bieten sogar kostenlose DFM-Tests für Ihre Gerber an. Diese kostenlosen Tests sind eine schöne Ergänzung zum DRC Ihrer Leiterplattenwerkzeuge.
ajs410
4

Bei einem völlig neuen Design gehe ich im Allgemeinen von einem Divide-and-Conquer-Ansatz aus.

Ich versuche, wichtige Architekturblöcke zu isolieren und jeden Abschnitt unabhängig voneinander mit Schaltern / Gleichstromversorgungen / Potentiometern usw. einzuschalten, um die Abhängigkeiten zu simulieren, die für den Betrieb der Schaltung erforderlich sind.

Dieser Ansatz ist im Allgemeinen nicht schwierig, wenn Sie es mit Netzteilen zu tun haben - die meisten Konverter benötigen nur einen Eingang und möglicherweise ein paar logische Signale, um mit dem Umschalten zu beginnen (und hoffentlich den magischen Rauch des Ausfalls nicht loszulassen).

Boards, bei denen es sich um Second / Third-Spins (Aufräumaktionen) handelt, benötigen normalerweise keine solche Sorgfalt. Ich darf nur Teile des Stromkreises, die geändert wurden, isolieren, sie unabhängig testen und den Rest der Schaltung für das all-in Einschalten testen.

Vergessen Sie nicht Ihre persönliche Schutzausrüstung. Es ist mir sehr unangenehm, irgendetwas mit freiliegenden Bauteilen ohne meine Schutzbrille (und manchmal Ohrenstöpsel ...) zu betreiben.

Adam Lawrence
quelle
1
+1 für den Augen- / Gehörschutz! Ich hörte einmal einen explodierenden DAC aus dem ganzen Labor - der Typ, der daran arbeitete, hatte für ungefähr 5 Minuten einen vorübergehenden blinden Fleck in seiner Sicht!
Toybuilder
3

Nun, einer der ersten Schritte, um das Auftreten von Kurzschlussnetzen zu verhindern, besteht darin, die Entwurfsregelprüfungen in Ihrer Board-Software gut zu nutzen. Beides auf schematischer Ebene, um sicherzustellen, dass die Netze nicht versehentlich zusammengebunden werden, wenn dies nicht der Fall sein sollte. und auf der PCB-Ebene, um ausreichende Abstände zwischen den Netzen sicherzustellen.

Wenn es Designelemente gibt, die ungetestet sind, anstatt ein ganz neues Design auf einer Platine in Angriff zu nehmen, versuche ich, Proof-of-Concept- und Proof-of-Performance-Testplatinen auf billigen Proto-Leiterplatten (wie dem BareBonesPCB-Service von Advanced Circuit - zwei) zu bauen Schichten, keine Lötmaske, ca. $ 80 für eine 24-Stunden-Drehung).

Selbst wenn ich ein komplettes Board mache, setze ich bei den Boards der ersten Generation gerne viele Breakout-Header ein. In einigen Fällen können Sie zwei identische Leiterplatten bestücken, eine mit dem "stabilen" Teil, wobei die Stiftleisten nach oben weisen. und ein anderes mit dem "Test" -Teil, mit unteren Eingangsstiftaufnahmen. Wenn alles in Ordnung ist, können Sie beide Platinen fertig bestücken. Oder Sie können neue Versionen der "Test" -Schaltung drehen, die Sie austauschen können.

Spielzeugbauer
quelle
Überschriften sind großartig, insbesondere wenn Sie Funktionen später überarbeiten oder hinzufügen müssen oder spontane Debugging-Ausgaben benötigen. Ich mag auch die Idee, ein BareBones für kleine Protos zu machen ... könnte das auch selbst machen
ajs410