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!
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
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.
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.
> 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.
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 :)
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!
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.