Hallo liebe Gemeinde,
ich habe in einem Projekt nun zum ersten mal einen STM32 eingesetzt, die
genaue Bezeichnung ist STM32F303VBT im LQFP100 Gehäuse.
Vor einem Jahr wurde von der Schaltung ein Prototyp gebaut, der ist
seitdem im Dauereinsatz und macht keinerlei Probleme.
Nun wurden 150 Boards gefertigt und ich habe die ersten 60 Stk. in
Betrieb genommen. Von diesen 60 Boards fielen beim IO-Testprogramm auf
Anhieb vier Boards auf, die am internen AD-Wandler nicht auf den
Maximalwert kommen.
An den Eingängen hängen 10k Potis, die mit einem RC-Glied gefiltert
werden, R=10k, C=1u. Die defekten Boards ziehen einen so hohen Strom
über die analogen Pins, dass das RC-Glied durch Belastung nur auf 2.9V
hochkommt, 0.4V fallen am Filterwiderstand ab.
Der Prozessor wird mit zwei NCP1117 versorgt, einer macht VDD_D, der
andere VDD_A und VREF+. Die Massen sind an zentraler Stelle
zusammengeführt. Die Stromversorgung der Regler ist über ein 9V
Steckerschaltnetzteil per Brückengleichrichter als Verpolungsschutz und
entsprechenden Kondensatoren.
Bei allen betroffenen Boards werden die Spannungsregler sehr heiß und
der Prozessor merklich warm. Über VDD_D fließt ein um 20-30 mA höherer
Strom als bei intakten Boards. Der Code wird (soweit man erkennen kann)
jedoch korrekt ausgeführt.
Ein Austausch des Prozessors bei einem der defekten Boards hat das
Problem beseitigt. Das Entlöten und wieder Auflöten eines Prozessors auf
einem anderen Board hat das Problem nicht beseitigt. Mit dieser Prozedur
wollte ich Lötfehler oder Leiterplattenfehler ausschliessen.
Kurzschlüsse lassen sich nicht feststellen.
Ich weiß hier nicht weiter. Hat jemand eine Idee in welche Richtung ich
weiter Suchen könnte?
Max
max123 schrieb:> Ich weiß hier nicht weiter. Hat jemand eine Idee in welche Richtung ich> weiter Suchen könnte?
Stückweise die Schaltung "entstücken" und Stromverbrauch beobachten.
Wenn Die CPU warm wird fließt der Strom darüber - das sollte ja
feststellbar sein wohin.
rgds
max123 schrieb:> Bei allen betroffenen Boards werden die Spannungsregler sehr heiß und> der Prozessor merklich warm. Über VDD_D fließt ein um 20-30 mA höherer> Strom als bei intakten Boards. Der Code wird (soweit man erkennen kann)> jedoch korrekt ausgeführt.>> Ein Austausch des Prozessors bei einem der defekten Boards hat das> Problem beseitigt. Das Entlöten und wieder Auflöten eines Prozessors auf> einem anderen Board hat das Problem nicht beseitigt. Mit dieser Prozedur> wollte ich Lötfehler oder Leiterplattenfehler ausschliessen.> Kurzschlüsse lassen sich nicht feststellen.
Klingt nach Latch-up. Prozessor nicht ESD-gerecht verpackt? Beim löten
nicht auf ESD geachtet?
Ich habe einen STM32F4 mal mit ähnlichen Verhalten entsorgen müssen
(TQFP176 auslöten -> bah). Der hat kurzzeitig einen 12V-Spike gesehen,
daraufhin genemigte sich das Teil über 2A (@3.3V) und wurde innerhalb
von Sekunden kochend heiß, das Programm hat er aber weiterhin korrekt
ausgeführt und auch programmiren ließ er sich noch.
Bauteiltöter schrieb:> Der hat kurzzeitig einen 12V-Spike gesehen,> daraufhin genemigte sich das Teil über 2A (@3.3V)
Na, das hat aber Nichts mit Latchup und ESD zu tun. Da brennt der
Ausgangstreiber durch - anscheinend leitend. Dass der Core dann
weitermachen kann ist durchaus möglich.
rgds
Ne, der 12V-Spike war auf der 3,3V Versorgungsspannung.
Kann also zum Latchup führen. Ich zitiere mal Wikipedia:
>Auslösemechanismen:>Die Versorgungsspannung überschreitet die absoluten Grenzdaten (engl. >absolute
maximum ratings) des Bausteins. Eine kurze Spannungsspitze wie >bei einer
elektrostatischen Entladung kann hier genügen.
Aber du hast recht, je nachdem welcher Teil des Chips betroffen ist, ist
es nur logisch das der CPU-Core weiter rechnet. Im ersten Moment ist es
aber schon erstaunend wenn man einen kochenden Prozessor hat der dennoch
weiter arbeitet.
6a66 schrieb:> Stückweise die Schaltung "entstücken" und Stromverbrauch beobachten.> Wenn Die CPU warm wird fließt der Strom darüber - das sollte ja> feststellbar sein wohin.>> rgds
Das werde ich vielleicht mal machen müssen. Komisch ist jedoch, dass
nach Prozessortausch das Board mit der selben Peripherie einwandfrei
funktionierte!
Bauteiltöter schrieb:>> Klingt nach Latch-up. Prozessor nicht ESD-gerecht verpackt? Beim löten> nicht auf ESD geachtet?>> Ich habe einen STM32F4 mal mit ähnlichen Verhalten entsorgen müssen> (TQFP176 auslöten -> bah). Der hat kurzzeitig einen 12V-Spike gesehen,> daraufhin genemigte sich das Teil über 2A (@3.3V) und wurde innerhalb> von Sekunden kochend heiß, das Programm hat er aber weiterhin korrekt> ausgeführt und auch programmiren ließ er sich noch.
Die Bestückung findet bei einem professionellen Bestücker statt. Wir
haben zwar Teppichboden, haben deshalb Tischmatten und Armbänder im
Dauereinsatz.
Wie empfindlich sind die Chips erfahrungsgemäß gegen die
Einschaltreiheenfolge der Versorgungsspannung? Wir schalten
"gleichzeitig" und ohne Verzögerung, das Datenblatt spricht ja von VDD_A
vor oder gleichzeitig mit VDD_D..
Max 123 schrieb:> Die Bestückung findet bei einem professionellen Bestücker statt. Wir> haben zwar Teppichboden, haben deshalb Tischmatten und Armbänder im> Dauereinsatz.
4 Stück in Serie mit ESD zu töten - unwahrscheinlich.
Eher: Kaputte Keramikkondensatoren durch trennen (Ritztechnik),
Kurzschlüsse durch Lotperlen oder Mechanik (Potentiometer), ...
rgds
Max 123 schrieb:> Wie empfindlich sind die Chips erfahrungsgemäß gegen die> Einschaltreiheenfolge der Versorgungsspannung? Wir schalten> "gleichzeitig" und ohne Verzögerung,
Du meinst die VDD_A und VCC_D?
Machen wir auch, >10k am laufen, ohne Probleme.
rgds
Max 123 schrieb:> Das werde ich vielleicht mal machen müssen. Komisch ist jedoch, dass> nach Prozessortausch das Board mit der selben Peripherie einwandfrei> funktionierte!
Hmm, mal mit dem Mikroskop draufschauen? Kein Mikroskop - dann
Uhrmacherelupe für 15EUR besorgen, gehört zu jedem HW-Arbeitsplatz dazu
der SMD verarbeitet.
rgds
Wie sehen denn die Spannungen an den Ausgängen der NCPs bzw. am STM aus?
Kann es sein, dass da nicht mehr die Anforderungen aus dem Datenblatt
des NCP1117 erfüllt werden?
6a66 schrieb:> Max 123 schrieb:>> Das werde ich vielleicht mal machen müssen. Komisch ist jedoch, dass>> nach Prozessortausch das Board mit der selben Peripherie einwandfrei>> funktionierte!>> Hmm, mal mit dem Mikroskop draufschauen? Kein Mikroskop - dann> Uhrmacherelupe für 15EUR besorgen, gehört zu jedem HW-Arbeitsplatz dazu> der SMD verarbeitet.>> rgds
Ja, wir haben mit dem Mikroskop geschaut. Nichts zu sehen. Ich habe den
Schaltplan mal angefügt - vielleicht ist das hilfreich.
Arc Net schrieb:> Wie sehen denn die Spannungen an den Ausgängen der NCPs bzw. am STM aus?> Kann es sein, dass da nicht mehr die Anforderungen aus dem Datenblatt> des NCP1117 erfüllt werden?
In welcher Hinsicht? Die Spannungen sind bei 3.3V +- 50mV, kein
erkennbarer Ripple, Spikes etc, kein (sichtbares) Schwingen.
Ergänzend ist festzustellen, dass bei überbrücken der R's in den
RC-Gliedern nach den Potis der AD Wandler wieder seine hohen Werte
erreicht. Es ist aber auch zu messen, dass die digitalen IO's nicht mehr
über 2.7V-2.8V hinauskommen.
Max 123 schrieb:> Ja, wir haben mit dem Mikroskop geschaut. Nichts zu sehen. Ich habe den> Schaltplan mal angefügt - vielleicht ist das hilfreich.
Interessant - wir versorgen den VDD_A aus dem VDD_D mittels Ferriten
(beads). Was passiert wenn VDD_A vorhanden und VDD_D nicht - sollte man
ma überprüfen. STM hat zur Versorgung von VDD_A IMHO eine APPNOTE.
rgds
Max 123 schrieb:> Ja, wir haben mit dem Mikroskop geschaut. Nichts zu sehen. Ich habe den> Schaltplan mal angefügt - vielleicht ist das hilfreich.
Sehe auch dass Ihr VSS_A nicht am Regler auflegt sondern einfach and
PWRGND. Auch hier APPNOTE beachten.
rgds
6a66 schrieb:> Interessant - wir versorgen den VDD_A aus dem VDD_D mittels Ferriten> (beads). Was passiert wenn VDD_A vorhanden und VDD_D nicht - sollte man> ma überprüfen. STM hat zur Versorgung von VDD_A IMHO eine APPNOTE.
STM sagt dazu in AN2834, Abschn. 3.2.12:
If you use a switching-type power supply for the digital circuitry, you
should use a separate linear supply for the analog circuit. Also, if you
expect a lot of noise on the DC power supply due to I/O switching etc.,
it is preferable to use a separate supply for the analog circuit.
Weiter im Datenblatt DocID023353 Rev 8, Abschn. 3.7.1:
The VDD_A voltage level must be always greater or equal to the VDD
voltage level and must be provided first.
Das liegt sicher auch daran, dass die interne PLL und der Reset
Generator an VDD_A hängen. Die Spannungsdifferenz zwischen den Reglern,
wie kritisch mag man hier "equal" auslegen?
6a66 schrieb:> Sehe auch dass Ihr VSS_A nicht am Regler auflegt sondern einfach and> PWRGND. Auch hier APPNOTE beachten.>> rgds
Was meinst du hier genau? GND_PWR ist vom Netzteil und jeweils mit VSS_D
und VSS_A an den LDOs verbunden.
Max 123 schrieb:> The VDD_A voltage level must be always greater or equal to the VDD> voltage level and must be provided first.
Hmmm - wie "first" muss das denn sein. Wie gesagt, bei uns läuft ein
Produkt mit EINEM LDO für beide problemlos.
Was passiert wenn dem nicht so ist, wenn VDD kommt und VDD_A nicht
(Regler defekt, Zeitkonstanten, ...)?
Max 123 schrieb:> Was meinst du hier genau? GND_PWR ist vom Netzteil und jeweils mit VSS_D> und VSS_A an den LDOs verbunden.
Wir haben einen GND_A für diesen Fall den wir an EINEM Punkt mit GND
verbunden haben. An GND_A hängt die ganze Analogbeschaltung für die AD
Wandler und deren Eingänge.
rgds
6a66 schrieb:> Max 123 schrieb:>> The VDD_A voltage level must be always greater or equal to the VDD>> voltage level and must be provided first.>> Hmmm - wie "first" muss das denn sein. Wie gesagt, bei uns läuft ein> Produkt mit EINEM LDO für beide problemlos.> Was passiert wenn dem nicht so ist, wenn VDD kommt und VDD_A nicht> (Regler defekt, Zeitkonstanten, ...)?
Ich habe das gerade mal gemessen, der VDD_A-Regler kommt sowohl bei den
defekten als auch einem intakten Board wenige us früher hoch als der
digitale. Das liegt an den kapazitiven Belastungen auf den Rails und ist
deshalb zuverlässig denke ich - oder?
>> Max 123 schrieb:>> Was meinst du hier genau? GND_PWR ist vom Netzteil und jeweils mit VSS_D>> und VSS_A an den LDOs verbunden.>> Wir haben einen GND_A für diesen Fall den wir an EINEM Punkt mit GND> verbunden haben. An GND_A hängt die ganze Analogbeschaltung für die AD> Wandler und deren Eingänge.>> rgds
So ist es im Layout auch.
Uwe Bonnes schrieb:> Irgendwo 5 Volt auf einen non-5-Volt-tolerant Pin?
Ja, das war tatsächlich zuerst der Fall. Deshalb sind alle Boards
gepatcht und jetzt ist es nicht mehr so. Die betroffenen Boards sind
aber wie im Schaltplan im Anhang und meiner Überprüfung nach gibt es
diesen Fall jetzt nicht mehr. Die betroffenen Boards sind erst nach dem
Fix bestromt worden.
Max 123 schrieb:> Ich habe das gerade mal gemessen, der VDD_A-Regler kommt sowohl bei den> defekten als auch einem intakten Board wenige us früher hoch als der> digitale. Das liegt an den kapazitiven Belastungen auf den Rails und ist> deshalb zuverlässig denke ich - oder?
Würde ich mal als unkritisch vermuten.
Ich denke mal dass es darauf hinausläuft tatsächlich die fehlerhaften
Blöcke durch Entstückung zu bestimmen.
rgds
Auch, wenn nach Entlöten des Prozessors und Einsetzen eines Neuen in das
selbe Board das Board einwandfrei läuft? Was ist deine Vermutung hier?
Ich hatte noch folgenden Verdacht:
SWDIO und SWCLK werden von einem Discovery stm32f4-board im
Automatik-Modus von ST-Link zum Programmieren benutzt. Dafür wird das
Discovery per Stiftleiste mit dem Board verbunden. Ich kann nicht
garantieren, dass die Boards bisher immer zuerst Spannung hatten und
dann der Programmer verbunden wurde. Die Signalspannungen aus dem
Discovery sind zwar nur 3.3V, dafür aber immer noch zu hoch, sofern der
zu programmierende uC noch nicht versorgt ist.
Gibt es da Zustimmung oder Gegenrede?
Max 123 schrieb:> Auch, wenn nach Entlöten des Prozessors und Einsetzen eines neuen in das> selbe Board das Board einwandfrei läuft? Was ist deine Vermutung hier?
Nicht den Prozessor runter, sondern die umgebenden Funktionsblöcke. Klar
- wenn Du 'nen neuen Prozessor einlötest ist der Fehler u.U. erstmal
wech.
Oder versuche die Stromversorgung der umgebenden Blöcke Stück für Stück
zu unterbrechen.
rgds
Max 123 schrieb:> SWDIO und SWCLK werden von einem Discovery stm32f4-board im> Automatik-Modus von ST-Link zum Programmieren benutzt. Dafür wird das> Discovery per Stiftleiste mit dem Board verbunden. Ich kann nicht> garantieren, dass die Boards bisher immer zuerst Spannung hatten und> dann der Programmer verbunden wurde. Die Signalspannungen aus dem> Discovery sind zwar nur 3.3V, dafür aber immer noch zu hoch, sofern der> zu programmierende uC noch nicht versorgt ist.
Wir machen das mit dem jlink von Segger. Wenn da nicht zuerst die
Boardspannung vorhenden ist schreit der - Danach kommt er im Normalfall
immer an den Prozessor zum programmieren.
rgds
6a66 schrieb:> Max 123 schrieb:>> Auch, wenn nach Entlöten des Prozessors und Einsetzen eines neuen in das>> selbe Board das Board einwandfrei läuft? Was ist deine Vermutung hier?>> Nicht den Prozessor runter, sondern die umgebenden Funktionsblöcke. Klar> - wenn Du 'nen neuen Prozessor einlötest ist der Fehler u.U. erstmal> wech.> Oder versuche die Stromversorgung der umgebenden Blöcke Stück für Stück> zu unterbrechen.>>> rgds
Damit unterstellst du, dass irgendein Teil der Schaltung von außen gegen
den Prozessor arbeitet?
Bauteiltöter schrieb:> Ich habe einen STM32F4 mal mit ähnlichen Verhalten entsorgen müssen> (TQFP176 auslöten -> bah). Der hat kurzzeitig einen 12V-Spike gesehen,> daraufhin genemigte sich das Teil über 2A (@3.3V) und wurde innerhalb> von Sekunden kochend heiß, das Programm hat er aber weiterhin korrekt> ausgeführt und auch programmiren ließ er sich noch.
Passierte uns auch. Der Prozessor wird seitdem heiss, altes Programm
wird ausgeführt, aber umprogrammieren läßt er sich nicht mehr.
Prozessor war nicht verbunden, also ohne Peripherie aber D+, D- und GND
von USB waren angeschlossen ( Vusb nicht). Netzteil war ausgeschaltet.
Da leuchtete die LED für Spannung schon schwach.
Irgendjemand hat dann eine Reverse-Diode ins Netzteil eingelötet
und da wars passiert.
Ist mir aber bis heute nicht ganz klar, was da überhaupt passiert ist
und ob ein Zusammenhang mit der Diode besteht.
Ich habe jetzt das komplette Board Stück für Stück ab-bestückt - es
passiert garnichts am Stromverbrauch, der ist konstant hoch, bis am Ende
nur noch der Prozessor dran hängt und weiter fröhlich Strom zieht.
Wenn man mal zusammenfasst, dann sollte doch eines der folgenden
Szenarien dazu führen, oder?
---------------------
- der Prozessor wird aus irgendeinem Grund dauerhaft an der Grenze
seiner Spezifikation betrieben - manche machen dabei schlapp
---------------------
* Versorgungspannungen sind zu hoch? -> Nein, die Regler arbeiten wie
gewünscht
* Versorgungsspannungsreihenfolge nicht eingehalten? -> Eigentlich
schon, der LDO für VDD_A kommt vor VDD_D hoch. Vielleicht ist das
kritisch?
* 5V an bloß 3.3V kompatiblen Pins? -> nicht mehr - war vorhanden, alle
Boards wurden aber vor der ersten Bestromung gepatcht.
* zu hoher Strom aus einem der Pins gezogen? -> höchster Strom ist ca.
5mA zum treiben von LEDs
---------------------
- der Prozessor wird während des Testens zufällig ungünstigen
Bedingungen ausgesetzt - er geht dabei kaputt
---------------------
* Vielleicht gibt es Probleme mit ESD? -> Bestückungsprozess ist
zertifiziert, Testing findet mit ESD-Matte und Armband statt. Boards
sind in ESD-Folie versandt worden
* Ggf. wird der Prozessor über den Programmer mit Strom versorgt bevor
die Versorgungsspannung anliegt? -> SWDIO liefert 3V3 und es kann nicht
ausgeschlossen werden, dass Versorgunggspannung immer vor dem Programmer
angesteckt wurde.
Ich weiß nicht weiter wie ich hier systematisch eingrenzen soll. Ich
kann nur erneut eine Probe von 30 Boards in Betrieb nehmen und dabei die
Steckreihenfolge von Power und Programmer beachten.
So ein Mist!
Ich verwende den STM32F103 und hab auch getrennte Verorgungen, die aber
mit 2 antiparallelen Schottkys zwischen den Versorgungen niemals mehrt
als 300mV voneinander abweichen, so sollte es laut Datenblatt auch sein.
Da gab's bis jetzt noch nie Probleme. Wenn ich da weiters lies, dass die
digitalen I/O's nur auf 2,8V bei 3,3V Nominal-Versorgung kommen, wird
wohl auch die digital-Versorgung in die Knie gehen.Spricht schon
irgendwie für ein internes Latch up der CPU. Probier das mal mit den
Dioden, kostet ja nicht viel.
Grüsse
Max 123 schrieb:> Ich weiß nicht weiter wie ich hier systematisch eingrenzen soll. Ich> kann nur erneut eine Probe von 30 Boards in Betrieb nehmen und dabei die> Steckreihenfolge von Power und Programmer beachten.>> So ein Mist!
Yep - fällt mir jetzt auch Nichts Besseres ein.
Außer: Ist einzugrenzen WO der Prozessor GENAU seinen Defekt hat (welche
Peripherie Auf dem Board kann den nicht mehr angesprochen werden)?
rgds
Du könntest, wenn er mit dir redet, den für dich zuständigen ST FAE
fragen, ob das Problem und seine Ursache bekannt ist.
Bei besonders guten Kunden-Hersteller Beziehungen (hängt nicht zuletzt
von einem Umsatz mit vielen Nullen vor dem Komma ab ...), analysieren
Hersteller auch schon mal defekte ICs für den Kunden. Wobei das bei 150
Stück eher nicht der Fall sein wird.
6a66 schrieb:> Max 123 schrieb:>> Ich weiß nicht weiter wie ich hier systematisch eingrenzen soll. Ich>> kann nur erneut eine Probe von 30 Boards in Betrieb nehmen und dabei die>> Steckreihenfolge von Power und Programmer beachten.>>>> So ein Mist!>> Yep - fällt mir jetzt auch Nichts Besseres ein.> Außer: Ist einzugrenzen WO der Prozessor GENAU seinen Defekt hat (welche> Peripherie Auf dem Board kann den nicht mehr angesprochen werden)?>> rgds
Alles kann angesprochen werden. Das Fehlerbild noch einmal
zusammengefasst:
- LDOs werden heiß, Prozessor wird warm
- VDD_D zieht zu hohen Strom, ca. 30-40mA mehr als normal
- Eingangsstom der analogen Eingänge wird sehr hoch (ca. 40uA anstatt
0.2uA)
- digitale IOs kommen nicht mehr ganz hoch, nur noch bis 2.9V
- Lege ich per Discovery als Programmer einen Pegel von 3.3V an SWDIO
bei ausgeschaltetem Board, so bricht dieser bei kaputten Boards auf 2.0V
ein. Bei intakten Boards bleibt er bei 3.3V. Schalte ich die
Versorgungsspannung dazu, so geht der Pegel bei de defekten Boards hoch
auf 3.3V. Beide lassen sich programmieren.
- Von außen sehen die internen Schutzdioden in beiden Fällen 'gleich
aus'. Ich kann die Flussspannung mit meinem Multimeter messen.
Ich habe jetzt mal 25 weitere Boards programmiert und dabei akribisch
auf die Ansteckreihenfolge geachtet. Bei den 25 Stk. war keins defekt.
Eine weitere Probe von 25 Stk. morgen Vormittag wird zeigen, ob das die
richtige Richtung ist.
So,
jetzt sind weitere 25 Boards programmiert und getestet, alles ohne
besondere Vorkommnisse.
Ich denke, es lag daran, dass der Programmer mit der Baugruppe verbunden
war, bevor Betriebsspannung anlag.
Auf dem SWDIO-Pin des Programmer liegt im Auto-Modus von STLink eine
Spannung von 3V an, die zusammen mit der Programmermasse die gesamte
Baugruppe über die IO-Pin-Schutzdiode (laut Datenblatt 5mA Maximalstrom)
versorgen wollte.
Das hat anscheinend ein paar Chips nicht so richtig geschmeckt.
Jetzt wird auf die Ansteckreihenfolge geachtet und im Programmierkabel
werden Serienwiderstände zur Strombegrenzung vorgesehen. Mal schauen
ob's dann weiterhin schief geht.
Danke für die Denkanstöße! Sollte es sich nochmal ändern, so werde ich
berichten.
Max
Max 123 schrieb:> SWDIO und SWCLK werden von einem Discovery stm32f4-board im> Automatik-Modus von ST-Link zum Programmieren benutzt. Dafür wird das> Discovery per Stiftleiste mit dem Board verbunden.Max 123 schrieb:> Ich denke, es lag daran, dass der Programmer mit der Baugruppe verbunden> war, bevor Betriebsspannung anlag.>> Auf dem SWDIO-Pin des Programmer liegt im Auto-Modus von STLink eine> Spannung von 3V an, die zusammen mit der Programmermasse die gesamte> Baugruppe über die IO-Pin-Schutzdiode (laut Datenblatt 5mA Maximalstrom)> versorgen wollte.
Hm also bei meinem "richtigen" standalone ST-Link/V2 Programmer steht im
User Manual:
"The power supply from the application board is connected to the
ST-LINK/V2 debugging and programming board to ensure signal
compatibility between both boards."
Wenn das Board nicht versorgt ist, leuchtet die ST-LINK/V2 LED orange:
"ST-LINK/V2 communication with the target has failed."
Im ST "UM1472 User manual" (Discovery kit for STM32F407/417 lines)
steht:
"Features: [...] On-board ST-LINK/V2 with selection mode switch to use
the kit as a standalone ST-LINK/V2 (with SWD connector for programming
and debugging)". Also angeblich ein richtiger ST-LINK/V2 Programmer.
Aber anscheinend ist der "VDD_TARGET" Pin beim Discovery Board
Programmer überhaupt nicht verbunden? Siehe UM1472 "R2 not fitted". Der
Widerstand ist auch wirklich nicht bestückt.
Danke Ben für die Detektivarbeit!
Ich habe zwar das STM32F429 Board mit Display, da ist es aber R13 mit
selber Funktion - nur dass sie dort sogar den Hinweis gespart haben und
ihn kommentarlos nicht bestückt!
Ich werde ihn mal einlöten und schauen was passiert!
> Also angeblich ein richtiger ST-LINK/V2 Programmer.
Wenn es ein "richtiger" waer, koennte er auch STM8 programmieren.
Wenn es ein "richtiger" waer, koennte er auch JTAG und nicht nur SWD.
Es ist also kein "richtiger".
Max 123 schrieb:> Ich werde ihn mal einlöten und schauen was passiert!
Vermutlich nichts? Die Firmware muss das ja unterstützen.
Habe mal meinen ST-LINK/V2 aufgeschraubt (die Schrauben waren sehr gut
versteckt unter dem Aufkleber) und da sitzt auf der Platine noch ein Bus
Transceiver IC.
Da der ST-LINK/V2 nur 25 Euro oder so kostet, würde ich den kaufen und
nichts mit dem Discovery Board riskieren.
Naja, es hätte ja implementiert sein können. Ist es aberr nicht.
Außerdem liegt da noch ein Spannungsteiler dran (R18/19 bzw R19/20 beim
anderen), irgendwie komisch. Vielleicht würde es klappen wenn man den
entfernt, ich habe es jetzt aber mal bleiben lassen und mir einen
Link/V2 bestellt.
Merci!
Wenn die Linearregler für 3V3_D und 3V3_A nicht absolut die selbe
Ausgangsspannung erzeugen, treiben sie über die PowerPins der CPU
die unnötige Leistung.
Lösung:
LinReg für VDD_A ausbauen, ferritperle von VDD_D nach AusgangsPad vom
LinReg VDD_A legen.
wenn VDD_D > VDD_A gilt : VDD_D-VDD_A / R(uC) == Fehlerstrom
Eine rauschfreie Versorgung von VDD_A macht man nicht über getrennte
LinRegs, sondern durch Filterung und gutes Layout.
Das hat mir in der Tat auch schon den Kopf zerbrochen.
In der nächsten Revision wird das auf jeden Fall so geregelt - hälst du
es für notwendig, dass bei max. 50mV Abweichung der Regler ein solcher
Austausch getan werden muss?
Wie würdest du eine solche Perle selektieren? Nach Durchflussstrom und
angenommenem/gemessenem Spektrum auf den Powerlines? Gibt es eine
Erfahrungsperle?
Schau im Datenblatt nach!
6.2 Absolute maximum ratings
VDD- VDDA Allowed voltage difference for VDD > VDDA 0.4 V
Wenn allerdings die Reger beim Einschalten ungleich hochfahren, kann
dass Problematisch sein.
Als Ferrite verwende ich z.b. BLM18RK102. Mit dem Smart Tweezer messe
ich schon bei 10 kHz 12 uH, aus dem Datenblattdiagramm lese ich bei 1
MHZ schon ein Z von ueber 80 Ohm ab, was in etwa den 12 uH entspricht.
Die Perle kann 200 mA, der STM32 selbst darf hat eine Grenze von 160 mA.
Dann passt doch alles, oder?
Das Datenblatt gibt vor, dass VDDA vor VDD da sein muss. Das impliziert,
dass der Chip das verträgt, wenn VDD < VDDA.
Außerdem darf VDD um 0.4V größer als VDDA sein. Auch das ist der Fall.
Die Einschaltreihenfolge ergibt sich korrekt aus den kapazitiven Lasten,
VDDA ist schneller als VDD.
STM schlägt in ihrer APP Note zu Noise Reduction on ADCs einen seperaten
LDO vor.
Daher meine Verwunderung und die Frage, ob es geändert werden muss.
Max 123 schrieb:> Dann passt doch alles, oder?>> Das Datenblatt gibt vor, dass VDDA vor VDD da sein muss. Das impliziert,> dass der Chip das verträgt, wenn VDD < VDDA.>> Außerdem darf VDD um 0.4V größer als VDDA sein. Auch das ist der Fall.>> Die Einschaltreihenfolge ergibt sich korrekt aus den kapazitiven Lasten,> VDDA ist schneller als VDD.>
Dann ist aber beim Ausschalten VDD noch nach VDDA da...
statt zu theoretisieren einfach eine Drahtbrücke wie beschrieben auf
einer Platine mit hohem Fehlerstrom einlöten und das Ergebnis
begutachten.
Ein Ferrit 0603/0805 mit 600@100MHz oder 1000@100MHz ist ein gern
genommener Wert.
Ein schlechtes Layout versaut aber jeden Analogpfad. Aber erstmal den
Fehlerstrom in den Griff kriegen ist Schritt 1.
>hälst du es für notwendig, dass bei max. 50mV Abweichung>der Regler ein solcher Austausch getan werden muss?
mal sehen, U/I=R
0,05V/0,03A= 1,7 Ohm für den Widerstand der Strompfade in der CPU
Klingt erst mal plausibel.