Hallo Zusammen, Ich habe mal ein neues Projekt mit einem STM32 designed, welchen ich schon mehrmals in dieser Konfiguration verwendet habe, jedoch macht mir diesmal das flashen probleme über swd. Auch der STLink scheint da manchmal die Verbindung zu verlieren, wenn ich über das ST-Link Utility connecte. Weiterhin habe ich einen komischen Effekt and den Pins PA15 und PB5, welche bei einem neuen Chip direkt auf 3.3V sind statt 0V. ESD schaden kann ich ausschliessen und ich habe auch schon ein zweites PCB gelötet und den STM32 mehrmals ausgetauscht, leider immer noch dieser komische effekt. Momentan habe ich nur die Spannungsregler sowie die Komponenten für den uC auf ein neues Board gelötet, immer noch mit den selben Problemen. Die Boardspannung ist stabil und es konnten mit dem Oszi und dem Trigger keine Einbrüche registriert werden. Die SWD Leitungen sind etwas lang, daher habe ich auch die Frequenz auf 25khz gesetzt, trotzdem kann ich nur manchmal connecten und flashen geht nur selten. Weiter kann ich debuggen komplett vergessen. Hat jemand eine Idee was genau da schief geht? Der STLink V2 scheint auch nicht kaputt zu sein, da ich mein altes Board mit gleichem Design für den STM32 sofort flashen kann. Grüsse Bert
:
Bearbeitet durch User
Hier nochmal das Schema vom uC mit besserer Auflösung
:
Bearbeitet durch User
Wo sind die 4,7µF und 1µF -Entkopplungs-Kondensatoren die das Datenblatt verlangt?
Das Layout ist unterirdisch. Insbesondere der 24V->12V Stepdown. Guck dir mal die Strompfade und GND an.
Joe F. schrieb: > Das Layout ist unterirdisch. > Insbesondere der 24V->12V Stepdown. Das mag ja schon sein, ich bin noch nicht wirklich gewannt im Layout Design. Ich wäre auch froh wenn jemand erwähnen würde was nicht gut ist, statt nur zu sagen es ist nicht gut. Die Spannungen sind aber alle stabil, daher sollte dies nicht die Ursache des Problems sein. Dr. Sommer schrieb: > Wo sind die 4,7µF und 1µF -Entkopplungs-Kondensatoren die das Datenblatt > verlangt? Im Design habe ich mich am STM32F3 Discovery orientiert, wobei hier auch keine 4.7uF verwendet wurden, was aber wohl ein Fehler war. Jedoch hat bei mir genau das selbe Design auch schon auf einem anderen Board problemlos funktioniert.
Halt vielleicht mal ein schnelles Oszilloskop an die Versorgungs-Pins vom Controller. Während des Flashens braucht der ja schon eine Menge Strom - wenn da die Versorgung strauchelt, könnte es schief gehen.
Bert S. schrieb: > Ich wäre auch froh wenn jemand erwähnen würde was nicht gut ist Wer meint dass es genügt einfach alle Leitungen im Layout zu verbinden die der Schaltplan diktiert der muss noch viel dazulernen. Das "Erwähnen" ist in wenigen Sätzen nicht getan. Bert S. schrieb: > ich bin noch nicht wirklich gewannt im Layout --> gewandt! Bert S. schrieb: > voltageRegulator.png (auch) ein Schaltregler braucht an seinem Eingang einen dicken Elko damit er stabil ausregeln kann. Einfach mal (ausnahmsweise) aus dem Datenblatt spicken.
Uhrmacher schrieb: > (auch) ein Schaltregler braucht an seinem Eingang einen > dicken Elko Er hat 680µF (CC3)... Sollte reichen oder?! Funkt bestimmt lustig beim Anschließen
Dr. Sommer schrieb: > Er hat 680µF (CC3)... Sollte reichen oder? Ja reicht. Ich habe durch den milchigen Schaltplan 680 Nanofarad gelesen. Der zweite Regler hat nur 1uF.
Bert S. schrieb: > Jedoch hat > bei mir genau das selbe Design auch schon auf einem anderen Board > problemlos funktioniert. Wenn Du außerhalb der Spec bist, kann es durch glückliche Umstände natürlich dennoch funktionieren. Da reicht dann andere Temperatur/Luftfeuchtigkeit, oder minimal andere Bauteile aus einer anderen Charge und schon geht es nicht mehr. Mit den Werten aus dem Datenblatt bist Du auf der sicheren Seite. Alternativ kann man aufwendige Tests machen um sicherzustellen, daß ein Design zuverlässig funktioniert, auch wenn man andere Werte als im Datenblatt verwendet. Das ist aber definitiv viel viel mehr Arbeit als nur ein paar Testboards zu nehmen und sagen "dort geht es -> passt".
Layout ist aber auch echt mies. Fangen wir mal von der uC-Seite an: http://www.st.com/resource/en/application_note/dm00089834.pdf Nicht nur lesen, sondern auch VERSTEHEN und ANWENDEN :-) Die schönen Bilder z.B. wie man die Abblockung anbindet sind nicht umsonst darin enthalten... Das selbe dann bei allen anderen ICs.
Vom uC her ist mir schon klar, dass da noch einiges fehlt. Ich habe mich leider nicht am application note orientiert. Vor allem die Schottky Diode wäre sicher nicht schlecht gewesen. Bei den anderen IC's habe ich mich am Datenblatt orientiert, das sollte so schon passen. Das Layout hier ist mir nicht wirklich gelungen, obwohl sicher die Anordnung der Teile nicht schlecht ist. Die Leistungskomponenten sind nahe bei der Quelle und GND geht in zwei Strängen von der Quelle weg, also ein sternförmiger Massenanschluss. Abblockkondensatoren sind nahe beim uC, jedoch fehlen hier die 1uF und die 4.7uF. Die Signalleitungen liegen fast alle parallel. Die Leitungen für die Spannungsregler sind mir zu dünn geraten. Was aber macht es sonst noch zu einem schlechten Design?
:
Bearbeitet durch User
Profis arbeiten halt nicht so... Erst einlesen und wissen was man tut und dann erst anfangen zu zeichnen bzw. zu layouten. Selbst unter Zeitdruck ist diese Vorgehensweise anzuraten, damit Hardware nicht nur manchmal funktioniert :-) Anbei ein Beispiel wie man sowas machen könnte. Ist auch ein zweiseitiges Layout. Abblockkondensatoren NAHE am IC, die Versorgung MUSS durch die Kondensatoren laufen. Preisfrage(n): wie verhalten sich die Abblockkondensatoren bei dir im Layout (insbesondere C3)? MUSS da der hochfrequente Strom durch (wieder C3)? Wie wirksam sind die Kondensatoren in dieser Entfernung (beide)? Wie sehen deine Rücklaufpfade insgesamt aus (du baust halt mit deinem Layout riesige Schleifen, sowas sorgt für lustige Effekte während der EMV-Messung)? Jetzt aber genug gemeckert. Mit einem AVR hätte dein Layout vermutlich problemlos funktioniert, aber ein Cortex-M ist halt ein anderes Kaliber wenn man es gescheit machen will.
Bert S. schrieb: > Was aber macht es sonst noch zu einem schlechten > Design? In meinen Augen noch eine ganze Reihe, aber das ist sehr von persönlicher Vorprägung abhängig. Bei uns machen wir halt oft schnellere Sachen und für jedes Produkt eine komplette CE. Solange es bei euch in der Firma OK ist, passt es doch.
So, ich habe mal die Komponenten neu geordnet und die Kapazitäten für VDD1 und VDD2 unterhalb des Bordes gebracht. Weiter habe ich nun einen 4.7uF und einen 1uF für VDD bzw VDDA hinzugefügt gemäß application note. Denkt ihr das wird so besser? Würdet ihr die Schottky hinzufügen zwischen VDD und VDDA? Ich verwende keinen ADC bei diesem System und mir ist auch schon auf dem Discovery aufgefallen, das die Schottky eher hinderlich ist, da sie temperaturabhängig ist. Beim Routen werde ich diesmal mit Ground und VCC anfangen und auf eine sternförmige, schleifen-lose Masseverteilung achten.
Bert S. schrieb: > Das mag ja schon sein, ich bin noch nicht wirklich gewannt im Layout Rechtschreibung scheint aber auch nicht gerade dein Steckenpferd zu sein.
Die Komponenten, die zum Step-Down gehören über das halbe Board zu verstreuen ist einfach ganz schlecht. Guck mal ins Datenblatt vom LM2596. Da wird das mit der Notwendigkeit von kurzen Power (und GND) Pfaden erklärt, und ein Beisspiellayout gibt es auch. Vergleiche es mit deiner "Arbeit". Die Wahl (Package -> Platzverbrauch, Stromstärke) von D2 solltest du auch nochmal überdenken. Idealerweise routest du das Board so, dass du auf der Unterseite eine durchgängige GND Plane hast, und oben alle Signale sind. Für Kreuzungen geht man mit einem möglichst kurzen Stück Leiterbahn auf die Unterseite, ohne die GND Plane dadurch wesentlich zu zerstückeln.
Joe F. schrieb: > Die Komponenten, die zum Step-Down gehören über das halbe Board zu > verstreuen ist einfach ganz schlecht. > Guck mal ins Datenblatt vom LM2596. > Da wird das mit der Notwendigkeit von kurzen Power (und GND) Pfaden > erklärt, und ein Beisspiellayout gibt es auch. Höre auf Joe, der Mann hat Recht! Kopiere einfach das Beispiellayout. Irgendwie Leitungen zu verbinden ohne einen Plan dahinter funktioniert bei einem Schaltregler nie. Joe F. schrieb: > Idealerweise routest du das Board so, dass du auf der Unterseite eine > durchgängige GND Plane hast, und oben alle Signale sind. Das wäre zwar ideal, aber praktisch oft nicht durchführbar bei zwei Lagen. Route daher so, dass du Vcc und GND immer schön nebeneinander ziehst und nach Abschluss der Arbeiten Top + Bot mit Masse flutest und ordentlich durchkontaktierst (via-stitching). Joe F. schrieb: > Für Kreuzungen geht man mit einem möglichst kurzen Stück Leiterbahn auf > die Unterseite, ohne die GND Plane dadurch wesentlich zu zerstückeln. Problem ist hierbei der zwangsläufig entstehende Schlitzstrahler, da der Rücklaufpfad an dieser Stelle unterbrochen wird und der Rückstrom eine Schleife aufbaut. Mit Erfahrung geht es, da hat man ein Aufge dafür ob es mit dem speziellen Signal OK ist oder nicht. Habe aber schon selber etliche Boards gesehen, die genau wegen dieser Routingstrategie durchgefallen sind. Also nichts für wenig erfahrene Layouter (da würde ich dich jetzt anhand des Boards grob einstufen) Paar Tipps zum Routen: 1. einzelne Blöcke bilden (uC, Schaltregler, etc). Diese zuerst für sich platzieren und layouten und dann erst alles zusammenfügen. 2. beim uC zuerst die Abblockung platzieren, dann alle benötigten Leitungen erstmal als Dummy rausziehen. Leitungen so legen, dass die Abblockung möglichst nahe ans IC kommt. Jetzt als erstes Abblockung routen (mit Vcc + GND auf Bot zu den Vias an den Abblockkondensatoren). Abschließend diesen Block auf der Platine platzieren und mit dem Rest verbinden. 3. Zeit in die optimale Platzierung investieren, es zahlt sich IMMER aus! Gutes Gelingen!
Wenn du schon beim Redesign bist: spendiere doch mal dem armen UART ein GND-Signal...
Bau doch auch nen Quarz oder Keramik Oszillator ein, der UART wird sich bedanken. Genug Platz ist doch... wenn's dir zu teuer ist mach wenigstens ne Bestückungs Option.
Hi Leute, danke für die vielen Tipps. Ich habe mal versucht so viel wie möglich umzusetzen, hoffentlich klappt es diesmal mit dem uC. Die Abblockkondensatoren sind diesmal direkt unter dem uC. Den UART brauche ich nur zum debuggen oder zum flashen, daher verwende ich nicht noch zusätzlich einen Quarz.
Bert S. schrieb: > Den UART brauche ich nur zum debuggen oder zum flashen, daher verwende > ich nicht noch zusätzlich einen Quarz. Auch Debuggen geht ggf. nicht ohne Quarz. Immer diese falsche Sparsamkeit.
Bert S. schrieb: > Ich habe mal versucht so viel wie > möglich umzusetzen :-) Freut mich immer zu sehen, wenn Leute schnell lernen und die gegebenen Tipps gleich in so vorbildlicher Weise umsetzen. Den Unterschied der 2 Layouts erkennst du ja selbst ;-)
Hi Bert, mach doch mal bitte einen Bildausschnitt vom uC bitte, in deinem Bild erkennt man nicht so viel. Die drei TOP-Leitungen im Bild kannst du etwas weiter rechts ziehen, dann sparst du dir die Durchkontaktiererei und machst dein Groundplane robuster.
Lama schrieb: > Die drei TOP-Leitungen im Bild kannst du etwas weiter rechts ziehen, > dann sparst du dir die Durchkontaktiererei und machst dein Groundplane > robuster. Da hast du natürlich recht :) Ich habe mal eine neue Ansicht hochgeladen. Die Abblockkondensatoren für VDD und VDDA sind nun unter dem Board. Weiter habe ich noch einen Quartz Oszillator hinzugefügt.
Bert S. schrieb: > Quartz Oszillator Unter diesem Begriff versteht man üblicherweise eine aktive Komponente, die gespiesen werden muss und dann das Taktsignal rauskommt. Was Du verbaut hast ist einfach ein normaler Quarz, was auch gut so ist.
Ich habe heute das neue Board bekommen, leider genau das gleiche Problem wie beim letzten Board - Keine Verbindung zum Board über SWD möglich. Die Spannungen sind stabil und es ist nur das nötigste angehängt. Am STLink V2 kann es nicht liegen, da dieser bei einem anderen Board mit dem gleichen Prozessor tiptop funktioniert. Was kann das sein? Ich bin da wirklich langsam am verzweifeln. Es ist ja momentan nur der Spannungsregler sowie der STM32 mit den wichtigsten Komponenten verschaltet.
Wenn die Spannung am µC stimmt, dann löte doch einfach mal GND, SWDIO, SWCLK, NRST und VDD direkt an die Pins vom µC. Ich hatte mal ein ähnliches Problem. Nach dem ersten mal Programmieren ging nichts mehr. Im Endeffekt hatte ich als Testprogramm einen UART Poll gemacht. Die hohe frequenz auf der UART hat die GND Leitung versaut und dashat dann den Programmer gestört - schlechte Masseführung. GND Leitung direkt an den Programmer und es lief wieder. Man kann sich eben auch auf anderen Wegen ausschliessen.
Ok, ich habe das Problem gefunden, beim Labeln habe ich SWDIO und SWCLK vertauscht. Danke euch, es lag wirklich nur am Design, dass es beim letzten Mal nicht funktioniert hatte.
Mal mit Oszilloskop an den SWD-Leitungen gemessen? Sicher dass der Controller richtig rum gelötet ist - manchmal ist nicht genau zu erkennen, welcher Kreis die Pin-1-Markierung ist und welcher von der Gehäuse Herstellung stammt... Mal nen anderen Debugger wie den J-Link probiert der detailliertere Fehler Meldungen ausgibt? Sicher dass der Controller intakt ist, nicht einfach von der alten Platine runter gelötet? Die gehen bei manueller Behandlung erfahrungsgemäß gerne mal kaputt (ESD), auf manchen Platinen bei uns funktionierte erst das 3. Exemplar...
Bert S. schrieb: > beim Labeln habe ich SWDIO und SWCLK > vertauscht. Och nöö! Bert S. schrieb: > Das mag ja schon sein, ich bin noch nicht wirklich gewannt im Layout > Design. Bestätigt mir wieder mal mein Vorurteil dass die Beherrschung der Sprache immer ein Hinweis darauf ist welche Qualifikation zu "erwarten" ist ....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.