Wir bereiten ein neues Design vor, würden uns über Feedback freuen

Ich habe ein Arduino-Shield-kompatibles Board um den NXP LPC4337JBD144 herum entworfen. bisher habe ich es nicht geschafft, die erste Überarbeitung ins Programm zu bekommen.

Im ersten Design war der JTAG-Header nicht korrekt eingerichtet, es gab keine Bypass-Kondensatoren, der USB hatte nicht alle Pullups/Pulldowns, die er benötigte, die DBGEN- und TRST-Pins waren nicht auf Jumper aufgebrochen und der Ethernet-Abschnitt folgte nicht spec so streng wie es sein sollte. Ich konnte alle Pullups zum JTAG hinzufügen und den DBGEN hoch und den TRST niedrig ziehen, indem ich die Platine mit externen Überbrückungsdrähten und Widerständen modifizierte. Ich kann es immer noch nicht mit meinem JTAG programmieren.

Ich sollte anmerken, dass die Rev One-Platine nur mit dem bestückt ist, was notwendig ist, um die Chipprogrammierung und den Betrieb zu erhalten, keine zusätzliche passive oder aktive Hardware. Ich habe getestet, dass ich die richtigen Signale vom JTAG erhalte und sie zu den richtigen Pins gehen. Ich habe auch den Kristall überprüft, aber ich bekomme kein Signal, weil der Kristall nicht initialisiert wird, bis der Chip programmiert ist, weil das erste, was in einer Systemkonfigurationsroutine läuft, die alle PLLs und externen Oszillatoreinstellungen einrichtet. Alles auf der ersten Revisionsplatine wurde gründlich mit einem Oszilloskop, JTAG-Signalen, Quarzen und Leistungsteil überprüft.

Abgesehen davon habe ich mehrere Wochen mit dieser ersten Revision gekämpft, ich habe alles ausprobiert, was der NXP-Support empfohlen hat, ich habe die Schaltpläne für mehrere Evaluierungsboards von NXP, Keil und Hitex überprüft und dabei mein PCB modifiziert, um es zu bringen bis zur ARM-Standardspezifikation ohne Erfolg.

An diesem Punkt bin ich davon überzeugt, dass das Design in zu vielerlei Hinsicht fehlerhaft ist und es weit außerhalb der Standardspezifikationen für einen ARM Cortex M4 liegt, dass es nicht durch externe Modifikationen an der Leiterplatte behoben werden kann und dass eine zweite Überarbeitung des Designs getestet werden muss . Dies ist ein sehr zeitkritisches Design, ich hatte gehofft, zumindest das erste zum Laufen zu bringen und dann die zweite Überarbeitung als Feinabstimmungsprozess zu haben. Abgesehen davon muss ich ein neues Design für das fabelhafte Haus herausbringen, um meine Professoren bei Laune zu halten. Ich suche nach konstruktivem Feedback zu meinem neuen Design. Ich habe etwa zwei Wochen damit verbracht, dieses Design alleine und mit der Hilfe anderer durchzusehen, um alles zu finden, was später ein ernsthaftes potenzielles Problem darstellen könnte. Ich habe die Referenzschaltpläne und das Datenblatt doppelt überprüft und persönlich

BEARBEITEN: Mein Board besteht aus 4 Schichten, die beiden äußeren Schichten sind für Signale und die beiden inneren Schichten sind eine Grundebene und eine Leistungsebene. Im Moment habe ich den negativen Raum auf den beiden Außensignalen mit einem Ground-Fill-Polygon ausgefüllt. Könnte das zu Problemen mit der Platine führen, z. B. Brummschleifen?

Unten habe ich das intelligente PDF für mein Altium-Projekt angehängt, es enthält den Schaltplan und das PCB-Design. https://www.dropbox.com/s/qb9ptr67v6msmh0/Abstract%20Hardware%20Device.pdf

Altium PCBdoc: https://www.dropbox.com/s/s7s0aw3yuh4va3g/Abstract%20Hardware%20Device%20PCB.PcbDoc

EDIT2: Freigabelink auf Dropbox One aktualisiert. Altium PCBdoc geteilt.

Und was genau ist deine Frage? Bitte lesen Sie die FAQ zum Stellen guter Fragen.
Ich möchte nur, dass sich die Leute mein Design ansehen und auf alles hinweisen, was ein potenzielles Problem sein könnte. Ich starre dieses Design seit zwei Wochen an und gehe das Datenblatt und die Schaltpläne für Referenzdesigns durch, um sicherzustellen, dass alles perfekt für diese Überarbeitung ist. Ich möchte einfach kein anderes Board haben, das nicht funktioniert.
Der Link führt zu einer Seite mit etwas widerlichem Jammern über die Browserversion. Es sind keine ausgefallenen Funktionen erforderlich, die browserabhängig sind, wenn Sie nur versuchen, uns einen Schaltplan zu zeigen.
Sie sagten, die Bypass-Kappen seien weggelassen worden, aber Sie erwähnen sie nicht als eines der Dinge, die Sie überarbeitet haben. Der Versuch, irgendetwas ohne geeignete Bypass-Caps zu debuggen, ist sinnlos.
Der Link wurde in Firefox 19 problemlos geöffnet. Unter diesem Link befindet sich ein beträchtliches Designpaket.
@Nick: Juhu. Ich will nur den Schaltplan sehen. Ein "Designpaket" klingt nach viel zu vielen Details, was bedeutet, dass das OP keine Zeit damit verbracht hat, über die Informationen nachzudenken, sondern einfach alles hier abgelegt hat. Es ist weder unsere Schuld noch unser Problem, dass dieses Projekt morgen fällig ist. Sorgfalt und Liebe zum Detail sparen Zeit, weshalb dieses Projekt möglicherweise in der Situation ist, in der es sich befindet.
Es ist ein PDF mit dem Schaltplan. Ich habe vergessen, es zu erwähnen, aber ich habe die Bypass-Kappen zum neuen Design hinzugefügt. Der Versuch, meine erste Revision ohne Bypass-Caps zu debuggen, ist jedoch sinnlos? Gibt es eine Möglichkeit, hier ein PDF an den Beitrag anzuhängen?
Wenn die erste Version keine Entkopplungskappen hat, wird sie schrecklich instabil sein (stellen Sie ein Zielfernrohr auf den Stromanschluss des Geräts, um dies zu sehen).

Antworten (4)

Wenn ich während meiner täglichen Arbeit Schaltpläne/PCB überprüfe, würde ich für ein solches Design etwa 8 bis 16 Stunden damit verbringen, es durchzugehen. Das kann ich hier natürlich nicht. Außerdem kann ich Ihnen nicht für jede Sache, die im Design falsch ist, eine Lektion in EE erteilen. Und um die Sache noch schlimmer zu machen, ist EE.SE nicht wirklich geeignet für einen Hin- und Her-Dialog, der normalerweise für eine Überprüfung wie diese erforderlich ist. Also hier ist, was wir tun werden. Ich werde das Design kurz überprüfen und die Probleme, die ich feststelle, in diese Antwort aufnehmen. Sie lesen das, lernen selbst, und wenn Sie immer noch nicht verstehen, müssen Sie eine neue Frage stellen (kein Kommentar zu dieser Antwort). Hier geht:

  1. Sie benötigen eine EMI-Filterung an den +3,3 V zum Mittelabgriff der Ethernet-Transformatoren. Eine Art Ferritperle + Kappe(n).

  2. Sie benötigen ESD-Schutzdioden an den Ethernet-Signalen an U4.

  3. 10 pF Entkopplungskappe auf X2 ist erstaunlich klein. Verwenden Sie 0,1 uF.

  4. Ethernet-Abschlusswiderstände, R42-45, müssen mindestens 0805 sein, um die erforderliche Wattleistung zu bewältigen. Ich kann nicht sagen, welche Größe du verwendest.

  5. Etwas sieht mit dem Ethernet TX CLK-Signal nicht richtig aus. Ich denke nicht, dass Sie es mit drei Chips (Oszillator, Phy und MAC) verbinden sollten. Überprüfen Sie dies in den Phy/Mac-Referenzdesigns.

  6. Setzen Sie eine 0,1 uF-Kappe auf die "Eingangsseite" Ihrer Ferritperlen.

  7. Der Hinweis "Quarzoszillator muss 12 mm vom Phy entfernt sein" ist für mich eine RIESIGE rote Flagge. Es lässt mich denken, dass etwas nicht stimmt, aber ich weiß nicht was. Wenn dies eine normale Designbewertung wäre, würde ich Sie darüber ausfragen.

  8. Sie sollten Reset-Signale filtern oder puffern, die über Anschlüsse gehen (wie SHIELD_RESET). Dies ist eine große Möglichkeit für ein ESD-Ereignis, sogar in mehr als 6 Fuß Entfernung, um die PCB zurückzusetzen.

  9. Sie sollten an jedem Anschluss eine oder mehrere 0,1-uF-Entkopplungskappen haben, um den AC-Signalrückweg für Signale am Anschluss zu reduzieren.

  10. Es sieht nicht so aus, als hätten Sie genügend Eingangskappen am Gleichstromeingang. Ich könnte mich jedoch irren, da ich Ihre Schaltpläne nicht so gut lesen kann (dumme Web-App).

  11. Möglicherweise benötigen Sie mehr Kappen am Ausgang Ihrer Spannungsregler. Ich habe es aber nicht überprüft, weil ich keine Zeit habe, die Datenblätter zu lesen.

  12. Es ist schwierig, das PCB-Layout wirklich zu beurteilen, ohne sich das Design in der CAD-Software (Altium) anzusehen. Aber ich sehe genug Probleme, dass das gesamte Design geprüft werden muss, bevor es verschickt wird.

  13. Vias müssen auseinander gespreizt werden, damit sie keine Schlitze in den Power/Gnd-Ebenen verursachen.

  14. Zusätzliche gnd-Ebenen auf der oberen und unteren Schicht tragen nicht viel zum Design bei. Es lohnt sich, diese einfach zu entfernen.

  15. Haben Sie eine ordnungsgemäße Signalterminierung für die MII-Signale zwischen MAC und Phy?

  16. Haben Sie überprüft, ob der PCB-Schichtaufbau für die gewünschte Leiterbahnimpedanz und den vorhandenen Signalabschluss geeignet ist>

  17. Sie haben Signale, die Leerstellen in benachbarten Power/Gnd-Ebenen kreuzen. Dies ist ein RIESIGES No-No.

  18. Ihre Signal-GND-Ebene und Ihre Chassis-GND-Ebenen überlappen sich. Mach das niemals, niemals. (Haftungsausschluss: Ich könnte die Plots falsch betrachten.)

Hier bitteschön. Viel Glück!

Danke für die sehr ausführliche und große Antwort. Das ist genau das, wonach ich suche, das ist die richtige Art von Feedback, das ich brauche, um zu lernen und mich zu verbessern. Davon abgesehen hatte ich einige Fragen zu den Punkten, die Sie angesprochen haben, und ich habe die formelle Antwort vorbereitet, aber sie ist zu lang, um sie zu veröffentlichen. Also habe ich hier auf pastebin pastebin.com/hvquD42S verlinkt
@AdamVadala-Roth Wie ich bereits sagte, müssen Sie einige Nachforschungen zu jedem dieser Punkte anstellen und dann, wenn Sie Fragen haben, separate Fragen auf dieser Website stellen, um sie abzudecken.
+1 für eine wirklich detaillierte Antwort, im Gegensatz zu einigen Kommentaren, die über die vom OP bereitgestellten Links jammern.
Upvote, aber Nr. 4 wird nicht von allen befolgt. Abweichung siehe Bild 32 Starterkit.

Ich habe Ihre Board-Datei geöffnet. Viele Probleme:

  1. Sie haben überall Räume, und sie sind alle aktiviert, und Sie verwenden sie nicht. Dadurch wird alles als DRC-Fehler angezeigt. Wenn Sie sie nicht verwenden, schalten Sie sie aus .
  2. Sobald Sie die Räume ausschalten, haben Sie immer noch VIELE DRC-Verletzungen. Sie müssen einen vernünftigen Satz von Designregeln erstellen. Im Allgemeinen schlagen Sie die Fähigkeiten für das Boardhouse Ihrer Wahl nach und erstellen eine Reihe von Regeln um diese herum. Gehen Sie wenn möglich auf die Seite der konservativen minimalen Leiterbahnbreite/-abstand. Nur weil $Expensive$ board house Aein Spurabstand von 5/5 möglich ist, ist dies eine gute Idee. 8/8 (mindestens 8 mil Leiterbahnbreite, 8 mil minimaler Leiterbahnabstand) ist ein guter Ausgangspunkt. Wenn Sie Teile mit sehr hoher Dichte haben, müssen Sie möglicherweise zu 6/6 gehen
  3. Es sieht so aus, als hätten Sie einige Ihrer eigenen Komponenten-Footprints gezeichnet. Es ist gut, dass Sie lernen, aber Sie müssen sich wirklich mit dem Hinzufügen geeigneter 3D-Körper zu Ihren Teilen befassen . Im Moment haben Sie Komponenten-Komponenten-Kollisionen, da die RDC-Engine einfache Begrenzungsrechtecke für Komponenten-Schnittfehler verwendet.
  4. Ihr Keep-Out-Fehler am USB-Anschluss schneidet sich mit den Pads am selben Anschluss und erzeugt Fehler.
  5. Ich sehe keine Bypass-Kappen für das Mikro auf der Platine.

Mehr Sachen, wenn du willst, dass ich weiter suche

Notiz. Wenn Sie sich das Schaltplan-PDF ansehen, sieht es so aus, als ob sich die von Ihnen bereitgestellte Board-Datei dramatisch von den Schaltplan-/Board-Overlays im PDF unterscheidet?


Auf dem Schaltplan:

  1. HÖREN SIE AUF, NET-LABELS ZU VERWENDEN: Geben Sie hier die Bildbeschreibung ein
    Geben Sie hier die Bildbeschreibung einIn der Regel erschweren Net-Labels das Lesen und Pflegen von Schaltplänen. Es gibt ein paar spezielle Situationen, in denen sie von Vorteil sind, und wenn Sie diese Situationen nicht kennen, haben Sie keine. Dies ist keiner von ihnen.
  2. Zufällig ausgerichtete Stromanschlüsse und Erdungsetiketten: Geben Sie hier die Bildbeschreibung ein
    Geben Sie hier die Bildbeschreibung ein
    Geben Sie hier die Bildbeschreibung ein
    Erdungsanschlüsse sollten immer nach unten zeigen. Stromanschlüsse sollten immer den Text oben haben (außer negative Schienen, aber Sie haben hier keine).
    Es gibt seltene Fälle, in denen ein Verstoß gegen diese Regeln gerechtfertigt sein kann.
    Wenn die richtige Ausrichtung Ihrer Stromanschlüsse bedeutet, dass Sie Ihren Schaltplan überarbeiten müssen, tun Sie es . Es wird fast immer zu einem besseren, besser lesbaren Schaltplan führen.
  3. Text über Drähte und Teile: Geben Sie hier die Bildbeschreibung ein
    Sollte ziemlich selbsterklärend sein. Tu es einfach nicht.

Mist, der mich nervt, weniger wichtig: Geben Sie hier die Bildbeschreibung ein
Du hast hier dein schematisches Raster ausgeschaltet. Sehen Sie sich die Verbindungen zu Pin 1 und 4 an.
Das Ausschalten des Gitters macht es sehr einfach, Schaltpläne zu erstellen, die korrekt aussehen , aber nicht wirklich verbunden sind. Es führt auch zu schlampigen, schwer lesbaren Zeichnungen. In der Regel sollte in Altium alles auf einem 10-Einheiten-Raster liegen. Wenn das bedeutet, dass Sie Ihre Schaltplanbibliotheken patchen müssen, tun Sie es . Du wirst später dankbar sein.

Außerdem haben Sie einen Stromanschluss, der nicht ganz am Ende eines Kabels liegt. Sehen Sie sich den Punkt auf dem Bodenanschluss an. Das ist keine große Sache, aber es ist die Art von Mist, die mich stören würde.

Danke für deine lange und ausführliche Antwort! Ich arbeite gerade daran, den Schaltplan aufzuräumen, ich habe ihn ziemlich unorganisiert und schlampig werden lassen, als ich mich durch die Revisionen bewegte. Ich habe das Design im Laufe der Zeit stark modifiziert, daher der schlechte Zustand des Schaltplans. Was die Bypass-Kappen betrifft, so sind die 100-nF-Kappen, die an allen 3,3-V-Eingängen des LPC4337 auf Masse gezogen wurden. Wenn ich mich irre und das nicht das richtige Protokoll für Bypass-Kondensatoren ist, würde ich gerne wissen, warum ich es bin falsch. Danke noch einmal! Ich melde mich hier wieder, nachdem ich schwere Überarbeitungen vorgenommen habe.
In welchen Situationen empfehlen Sie den Einsatz der Netzetiketten?
@NickHalden - Ehrlich gesagt, das ist so etwas wie ein Streitpunkt. Ich persönlich würde ehrlich gesagt "nie" sagen. Ich benutze sie selbst nicht und habe einige ziemlich komplizierte Multi-MCU-Zeichnungen angefertigt. Ich glaube nicht, dass irgendjemand "immer" sagen würde, aber danach wird es wirklich zu einer religiösen Angelegenheit.
Ich denke, die beste Antwort ist "Nur wenn sie einen Schaltplan lesbarer machen". Wann sie das tun, ist eher Ansichtssache, aber nie „oft“.

Dies ist das Datenblatt für dieses Teil.

0) Sind alle Ihre Netzteile und Entkopplungskappen korrekt?

1) ARM JTAG wird herkömmlicherweise mit einem 20-Pin-Anschluss ausgeführt: http://www.jtagtest.com/pinouts/arm20 ; Sie haben einen 10-poligen und ich denke, Sie könnten zwischen JTAG und SWD verwechselt werden.

2) Ich bin skeptisch gegenüber all diesen Pullups und Pulldowns und dass TRST nicht mit dem Programmierer verbunden ist. Es gibt auch einen mysteriösen 10k-Widerstand in Reihe damit.

3) Haben Sie die richtige JTAG-Taktrate? Benötigen Sie den Rückgabe-TCLK für den Programmierer (dies kann bei Zeitproblemen helfen)?

4) Wissen Sie, dass Ihr Programmiergerät funktioniert und richtig konfiguriert ist? Haben Sie zB ein Evaluierungsboard für dieses Gerät, mit dem Sie es getestet haben?

1. Auf diese Seite verweise ich auch auf das Design, das ich in meinem Pastebin-Bericht oben in David Kessners Beitrag verlinkt habe. www2.keil.com/coresight/coresight-connectors 2. Sie können entweder den Reset oder den TRST für den Cortex-M JTAG-Header verwenden, beide funktionieren bei den meisten Designs mit dem 10-poligen Stecker, verwenden den Rest und die meisten 20-poligen verwenden den TRST . 4. Es funktioniert gut. Ich verwende es mit meinem LPC4330-Xplorer-Evaluierungsboard.
element14.com/community/solutions/7058/l/… dieser hier? Das hat keine Pullups auf dem JTAG. Ich habe mein eigenes Design mit ARM JTAG (allerdings ein anderer Teil) überprüft und es hatte 220-kOhm-Pullups. Ich denke, sie sind entweder zu klein oder nicht notwendig.
Ich wurde vom technischen Support von NXP ausdrücklich angewiesen, diese Pullup-Widerstände hinzuzufügen. Sie sagten, dies könnte einer der Gründe sein, warum die erste Revision nicht programmiert wird. Was ich tun kann, ist, sie im Design zu belassen und zu wählen, ob sie ausgefüllt werden sollen oder nicht, oder andere Werte auszuprobieren. Vielen Dank für Ihre Zeit und Ihr hilfreiches Feedback!

Wenn ich dieses Datenblatt für die RGB-LED richtig lese, handelt es sich um ein gemeinsames Anodenteil. Der Schaltplan scheint jedoch den mit GND verbundenen gemeinsamen Pin zu zeigen, der nur mit gemeinsamen Kathoden-LEDs funktioniert.

Wenn Sie diese Anode an 3,3 V anschließen, impliziert das Datenblatt, dass selbst wenn Sie die Kathode des grünen oder blauen Chips ganz nach unten auf GND ziehen, sie möglicherweise nicht sichtbar ist - die Durchlassspannung könnte bis zu 4 V betragen.

Vielleicht sollte diese (gemeinsame) Anode der RGB-LED an VCC_5v angeschlossen werden?

Normalerweise sehe ich zwischen einem Prozessor und einer LED mit hoher Helligkeit einen Puffer, z. B. einen SOT23 DMN65D8L nFET. Ich bin ein wenig erstaunt, dass die I_OH- und I_OL- sowie I_OHS- und I_OLS-Eigenschaften im Abschnitt "Statische Eigenschaften" des Datenblatts für den LPC4330FBD144 darauf hindeuten, dass er möglicherweise 20-mA-LEDs direkt ansteuern kann.

Danke für dein hilfreiches Feedback! Ich habe irgendwie die Waffe auf die dreifarbige LED gesprungen. Ich hatte Probleme, eine kostengünstige RGB-LED zu finden, also habe ich einfach die billigste ausgewählt, die ich finden kann, und sie verwendet. Ich werde mich nach einem Modell mit gemeinsamer Kathode mit geringerer Leistung umsehen. Danke noch einmal!
UPDATE: Ich habe mir das Datenblatt noch einmal angesehen und die Widerstände auf 1k berechnet, um die LED mit 5mA zu betreiben. Ich habe dies getan, weil der LPC4337 eine Stromsenke von 6 mA für GPIO hat, die gemeinsame Anode ist jetzt mit 3,3 V verbunden. Mein Freund, der viele NXPs verwendet, sagt, das sollte in Ordnung sein, aber ich bin offen für weitere Vorschläge. Danke noch einmal!