Guten morgen zusammen, ich habe ein kleines Problem mit einem ARM Cortex von ST, genauer, dem STM32F051K87. Ab einer Temperatur von ca. 60-65°C schaltet dieser die GPIOs nicht mehr richtig und reagiert auch nicht mehr auf Inputs(3.3V, GPIOx als Eingang gesetzt). Die Firmware selbst läuft aber ganz normal weiter. Von der Firmwareseite aus, ist keine Abschaltung eingebaut. Einen Defekt schließe ich aus, da ich das Problem bei 2 weiteren Controllern nachstellen konnte. Mich wundert es, da die "7" Reihe eigentlich für den Temperaturbereich von –40°C bis +105°C ausgelegt ist. Im Datenblatt und auch Ref. Manual habe ich dazu nix gefunden. Vielleicht übersehe ich auch irgendwas :) Vielleicht hatte ja schon mal jemand ein ähnliches Problem und weiß, woran es liegen könnte. Besten Dank!
Bist Du Dir icher das diese Verhalten vom Cortex ausgelöst wird und nicht von der angeschlossenen Peripherie?
Der Fehler liegt zu 100% nicht am Controller. Was glaubst du, was ST für Ärger bekäm, wenn nicht mal der industrial TempBereich eingehalten werden kann, trotz Datenblattversprechen. Such mal in deiner Peripherie etc. Der Teufel steckt meist dort, wo man ihn nicht vermutet. Sonst wäre es nicht der Teufel.
kenny schrieb: > Bist Du Dir icher das diese Verhalten vom Cortex ausgelöst wird und nicht von der angeschlossenen Peripherie? Sicher sein kann ich mir da wohl nicht :) Aber da wir es mit einem Klimaschrank ausprobiert haben, gehe ich jetzt erstmal davon aus. Lediglich eine kleine Platine mit dem Controller(+ Vogelfutter, welches auch +105°C ausgelegt ist) war innen und der Rest außen. Auf dem Oszi war auch kein Kurzschluss oder ähnliches zu sehen. Alles im normalen Bereich und ab 60-65°C geht es nicht mehr. pegel schrieb: > Die Spannungsversorgung kontrolliert? Ja, alles ok soweit, konstante 3.3V an VCC,VDD. Kastanie schrieb: > Der Teufel steckt meist dort, wo man ihn nicht vermutet. Sonst wäre es nicht der Teufel. Ja, vielleicht übersehe ich jetzt gerade noch etwas. Aber erstmal bin ich vom Controller ausgegangen :)
sw schrieb: > Ab einer Temperatur von ca. 60-65°C schaltet dieser die > GPIOs nicht mehr richtig und reagiert auch nicht mehr auf Inputs Verbinde mal 2 IOs miteinander und mit nichst weiter. Und schreibe ein kleines Testprogramm, welches die beiden Pins setzen und lesen kann.
Die Angabe 60-65 Grad ist reichlich vage. Ist das die Umgebungstemperatur, die Temperatur der Platine oder die Chip-Temperatur? Vielleicht heizt sich der Chip durch seine (oder benachbarter Bauteile) Verlustleistung zu weit auf? Der F051 hat einen internen Temperatursensor, den man zur Kontrolle auslesen könnte.
> war auch kein Kurzschluss oder ähnliches zu sehen. Alles im normalen > Bereich und ab 60-65°C geht es nicht mehr. Pruef mal ob die fuer deine Taktfrequenz ausreichende Waitstates gesetzt hast. Und Pruef mal ob dein externe Quarz noch schwingt. Viele Leute haengen da einfach nur einen dran ohne gross darueber nachzudenken ob das ueber den gesamten Arbeitsbereich auch geht. Olaf
wenn überhaupt ein Quarz dranhängt. Falls ja, kann man den ja auch abschalten und mit dem HSI testen.
Peter D. schrieb: > Verbinde mal 2 IOs miteinander und mit nichst weiter. Und schreibe ein > kleines Testprogramm, welches die beiden Pins setzen und lesen kann. Stimmt, gute Idee, ich werde es mal probieren. A. B. schrieb: > Die Angabe 60-65 Grad ist reichlich vage. Ist das die > Umgebungstemperatur, die Temperatur der Platine oder die > Chip-Temperatur? Der Klimaschrank hat eingestellte 65 Grad und ist die Umgebungstemperatur der ganzen Platine. Die interne Temperaturmessung des Controllers ergibt ca. 60-65 Grad(Korrektur mit interner Spannung etc. einberechnet!) sobald die GPIOs nicht mehr ordnungsgemäß funktionieren. Olaf schrieb: > Pruef mal ob die fuer deine Taktfrequenz ausreichende Waitstates > gesetzt hast. Waitstates waren ok. Benutzen den HSI, also kein externer Quarz :) Danke schon mal für eure Tipps!
Ich kann mich ja irren aber ich halte es für sehr unwahrscheinlich daß der uC wenn er läuft exakt die gleiche Temperatur hat wie die Umgebung. Ich würde da ein Delta von 10 bis 20°C erwarten jenachdem was er so macht.
> Ich kann mich ja irren
Du irrst dich. Die Zeiten wo Mikrocontroller warm wurden sind etwa
20Jahre vorbei.
Olaf
An meinem ersten 8031 in NMOS-Technik habe ich mir fast die Finger verbrannt. Gelaufen ist er aber einwandfrei.
das ist aber eher sogar schon 40 Jahre her. Selbst ein F4 oder F7 mit Ethernet wird heute nur lauwarm. vielleicht ist das Problem auch nur ganz banal eine schlechte Lötstelle die sich bei thermischer Last und Verspannung in der Platine bemerkbar macht? Meine Selbstbau Funksensoren mit M0 (LPC812) haben auf der Kupferfensterbank in der Sonne auch bis 70 °C ausgehalten. Nur ein 3D gedruckter Batteriehalter hat das nicht mitgemacht.
sw schrieb: > Vielleicht hatte ja schon mal jemand ein ähnliches Problem und weiß, > woran es liegen könnte. Auch µCs können Defekte haben. Tausch ihn aus und teste erneut.
m.n. schrieb: > Auch µCs können Defekte haben. > Tausch ihn aus und teste erneut. Eröffnungspost: sw schrieb: > Einen Defekt schließe ich aus, da ich das Problem bei 2 weiteren > Controllern nachstellen konnte
Kastanie schrieb: > sw schrieb: >> Einen Defekt schließe ich aus, da ich das Problem bei 2 weiteren >> Controllern nachstellen konnte Das habe ich tatsächlich überlesen. Es widerspricht der Überschrift, mit der ein Fehler des M0 suggeriert wird. Die Frage sollte dann besser lauten: "Meine geheime Schaltung funktioniert bei höheren Temperaturen nicht mehr. HILFE!!! Keiner eine IDEE???" ;-)
Olaf schrieb: >> war auch kein Kurzschluss oder ähnliches zu sehen. Alles im > normalen >> Bereich und ab 60-65°C geht es nicht mehr. > > Pruef mal ob die fuer deine Taktfrequenz ausreichende Waitstates > gesetzt hast. Das hatte ich auch mal. Vergessen fürs Flash Die korrekten Waitstates einzustellen. Bei Zimmertemperatur ging noch alles, bei hohen Temperaturen dann nicht mehr.
Olaf schrieb: >> Ich kann mich ja irren > > Du irrst dich. Die Zeiten wo Mikrocontroller warm wurden sind etwa > 20Jahre vorbei. > > Olaf Dann hat ST es also endlich geschafft Supraleitende µC zu entwickeln? Dann ist ja nicht mehr weit bis zum ersten T-800 ;-) Wenn der Klimaschrank angebliche die gleiche Temperatur wie der µC hat, dann kann da etwas nicht stimmen.
sw schrieb: > Einen Defekt schließe ich aus, da ich das Problem bei 2 weiteren > Controllern nachstellen konnte. Auf der selben Platine oder hast Du mehrere Platinen mit unterschiedlichen Controllern getestet? Wenn es die selbe Platine war, auf die Du unterschiedliche Controller gelötet hast: es könnte eine defekte Lötstelle an anderer Stelle sein, oder ein defektes Via. Bei beiden ist ein Defekt, der nur abhängig von der Temperatur auftritt, ein gängiges Phänomen.
Zeig uns ein Schema, zumindest einen Auschnitt mit den IOs. Was hängt dran, wie misst du den Fehler? Aus dem Bauch raus: hochohmige Pull Up / Down Widerstände in Kombination mit großen Leckströmen von Schutzdioden.
- Lötfehler - Platinenfehler - ESD Schaden - Vorschädigung durch Kurzschluss etc. - Mikrocontroller aus dubioser Quelle (Broker, Engineering Sample) - Designfehler der Schaltung - Fehler durch Messequipment (Tastkopf Temperaturbereich? oder Koaxkabel) - EMV, Soft-Errors - für falschen Controller compiliert - Softwarefehler - Taktungsfehler Ist dein Projekt streng geheim dann kommt noch: - Sabotage hinzu.
Hol ihn aus dem Klimaschrank und bewaffne dich mit Heißluftfön und Kältespray ... finde heraus ob das Problem reproduzierbar ist.
Mike R. schrieb: > Dann ist ja nicht mehr weit bis zum ersten T-800 ;-) Der T800 wird schon lang nicht mehr produziert!: https://en.wikipedia.org/wiki/Transputer
somni schrieb: > Mike R. schrieb: >> Dann ist ja nicht mehr weit bis zum ersten T-800 ;-) > > Der T800 wird schon lang nicht mehr produziert!: > https://en.wikipedia.org/wiki/Transputer Das liegt bestimmt an dem Genderwahn. Entweder Puter oder Pute, aber nicht Trans-Puter!
> Wenn der Klimaschrank angebliche die gleiche Temperatur wie der µC hat, > dann kann da etwas nicht stimmen. Die Erwaermung die du bei einem aktuellen Mikrocontroller erwarten kannst ist geringer als der Fehler der integrierten Temperatursensoren. Zum einen sind sie mittlerweile relativ sparsam, zum anderen sind sie heute gut an die Platine angebunden. Und 60Grad Umgebungstemperatur ist ein Witz. -40 bis +85Grad ist der offizielle Industrielle Temperaturbereich. Ich teste gerne auch mal bis 90Grad. BTW: Da lohnt es sich ein paar billige Tastkoepfe im Schrank zu haben. Die werden naemlich nicht besser wenn man im Klimaschrank Messungen durchfuehren muss. .-) Olaf
Olaf schrieb: > Die Erwaermung die du bei einem aktuellen Mikrocontroller erwarten > kannst ist geringer als der Fehler der integrierten Temperatursensoren. Ich habe gerade an einem meiner Projekte mit H7 getestet. Wenn der was zu tun hat und viel Perepherie nutzt hat er gut 15°C über Umgebungstemperatur.
Kevin M. schrieb: > Ich habe gerade an einem meiner Projekte mit H7 getestet. Wenn der was > zu tun hat und viel Perepherie nutzt hat er gut 15°C über > Umgebungstemperatur. Mit 48 MHz oder 480 MHz? Mit einem halben GHz darf er sich auch etwas warmlaufen.
Kevin M. (arduinolover) >Ich kann mich ja irren aber ich halte es für sehr unwahrscheinlich daß >der uC wenn er läuft exakt die gleiche Temperatur hat wie die Umgebung. >Ich würde da ein Delta von 10 bis 20°C erwarten jenachdem was er so >macht. Wer hat das behauptet? Ach, ich ahne schon - Du hast diesen Satz von sw (Gast) nicht verstanden, weil nicht komplett gelesen: >Der Klimaschrank hat eingestellte 65 Grad und ist die >Umgebungstemperatur der ganzen Platine. Die interne Temperaturmessung >des Controllers ergibt ca. 60-65 Grad(Korrektur mit interner Spannung >etc. einberechnet!) sobald die GPIOs nicht mehr ordnungsgemäß >funktionieren.
Das hatten wir doch hier letztlich schonmal. Dort wurde vergessen die Waitstates für den Flash zu konfigurieren. Ob Du HSI (ggfs. mit PLL) oder einen externen Quarz verwendest tut dabei nichts zur Sache. Sofern die System Clock > 24MHz ist musst Du 1 Waitstate für den Flash konfigurieren.
:
Bearbeitet durch User
Guten morgen zusammen, vielen lieben Dank für eure Hilfe! Unsere Hardware hat den Fehler gefunden. D. C. schrieb: > - Designfehler der Schaltung Eine Schutzbeschaltung auf der Controller Platine hat den Fehler verursacht. Genau kann ich es nicht sagen(bin kein HW Typ) aber scheinbar war es so, dass durch eine unglückliche Kombination von Diode und Spannungsteiler bei 65 Grad die Durchlassspannung für die Diode nicht mehr erreicht wurde und das 3.3V Signal nicht mehr durchgelassen hat. Somit hatte ich am Controller nur einen 0V Pegel. Peter D. schrieb: > Verbinde mal 2 IOs miteinander und mit nichst weiter. Und schreibe ein > kleines Testprogramm, welches die beiden Pins setzen und lesen kann. So einfach und doch recht hilfreich. So kamen wir drauf. Danke euch allen :)
Beitrag #6375303 wurde vom Autor gelöscht.
sw schrieb: > aber > scheinbar war es so, dass durch eine unglückliche Kombination von Diode > und Spannungsteiler bei 65 Grad die Durchlassspannung für die Diode > nicht mehr erreicht wurde R42, hab ich's mir doch gedacht!
> scheinbar war es so, dass durch eine unglückliche Kombination von Diode
Jaja...Leckstrom nicht bedacht. :-D
Olaf
Warte erst mal ab wenn du jetzt auf -40Grad runter gehst. Da gibt es auch lustige Fehler. Elkos verlieren an Innenwiderstand, Spulen aendern ihre Werte. Schaltregler produzieren rauschen. Da sieht man mal wie wichtig so ein Klimaschrank ist. Olaf
Olaf schrieb: ... > Die Erwaermung die du bei einem aktuellen Mikrocontroller erwarten > kannst ist geringer als der Fehler der integrierten Temperatursensoren. ... Hi Olaf, das stimmt leider nicht. Zumindest wenn wir die STM32-Familie als Mikrocontroller einstufen. Das Datenblatt lässt es schon vermuten (Wärmewiderstand, Verlustleistung), dass die Teile warm werden. Ich schaue im Moment recht oft mit der Wärmebildkamera auf eine Schaltung, die 4A linearen Ausgangsstrom in ein Peltierelement liefern muss. Bis 3A ist der STM32F4 auf der Baugruppe der wärmste Baustein (10..15K über Ambient). Nur in bestimmtem Betriebsarten werden die Brücken-MOSFETs (Si7625) etwas wärmer (Tamb+20K). Die o.g. MCU arbeitet tatsächlich nur als Prozessor, sprich den GPIOs wird quasi kein DC-Strom entnommen. marcus
sw schrieb: > dass durch eine unglückliche Kombination von Diode > und Spannungsteiler bei 65 Grad die Durchlassspannung für die Diode > nicht mehr erreicht wurde und das 3.3V Signal nicht mehr durchgelassen Die Schaltung würd ich gern mal sehn. Kannst du die uns zeigen?
ACDC schrieb: > Die Schaltung würd ich gern mal sehn. > Kannst du die uns zeigen? Netter Versuch, aber da müssen sich die Wölfe schon ein lahmeres opfer suchen.
Stefan ⛄ F. schrieb: > ACDC schrieb: >> Die Schaltung würd ich gern mal sehn. >> Kannst du die uns zeigen? > > Netter Versuch, aber da müssen sich die Wölfe schon ein lahmeres opfer > suchen. Schade, kann ja durchaus eine normale, bewärhte Schaltung sein.
na zumindest der Teil der die Probleme verursacht hat.
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.