Cortex M0 schaltet bei über 60°C nicht mehr

Gast #6374362
Lesenswert?

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!
Gast #6374385
Lesenswert?

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.
Gast #6374426
Lesenswert?

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 :)
Gast #6374438
Lesenswert?

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.
Gast #6374518
Lesenswert?

> 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
Gast #6374551
Lesenswert?

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!
Gast #6374607
Lesenswert?

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.
Gast #6374690
Lesenswert?

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???"
;-)
Gast #6374770
Lesenswert?

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.
#6374784
Lesenswert?

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.
#6374792
Lesenswert?

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.
Gast #6374812
Lesenswert?

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.
(Firma: Angestellter/Freelancer) #6374855
Lesenswert?

- 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.
Gast #6374894
Lesenswert?

> 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
#6375023
Lesenswert?

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.
#6375027
Lesenswert?

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.
Gast #6375297
Lesenswert?

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 von einem Moderator gelöscht.
Gast #6375397
Lesenswert?

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
(Firma: www.harerod.de) Persönliche Seite #6375917
Lesenswert?

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
Gast #6375945
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren