uC "runterkühlen" mit Sleep Kommando

Gast #2298017
Hallo Leute,

Habe soeben 2000 USB Sticks mit einem Temperaturfühler drauf fertigen 
lassen.
Nun habe ich aber das Problem, das der uC (ein PIC18F13K50) den 
Temperatursensor um ungefähr 2°C erwärmt. Ich könnte nun einen Offset 
reinprogrammieren, oder eine findige Idee einsetzen.

Gedankengang: uC wird nach dem Init in den Sleep Modus verbannt. uC 
braucht weniger Saft, folglich weniger Erwärmung.
USB löst Interrupt aus, Daten werden eingelesen und an den PC übertragen 
danach wieder Sleep. Nur kurzes aufwecken der Peripherie und CPU, 
folglich weniger Erwärmung.

Ist mein Gedankengang falsch, oder kann das funktionieren?
Es ist mir klar, das diverse TVS Dioden,.. durch ihren Leckstrom das PCB 
genauso aufheizen.
RächerMitDemBecher schrieb:
> USB löst Interrupt aus, Daten werden eingelesen und an den PC übertragen
> danach wieder Sleep.

Ja, kannst du doch machen - der UART kann doch nen IR auslösen.

RächerMitDemBecher schrieb:
> Es ist mir klar, das diverse TVS Dioden,.. durch ihren Leckstrom das PCB
> genauso aufheizen.

Ich denke, diese Leckströme werden keine nennenswerte Erwärmung 
hervorrufen.
Machen kannst du das natürlich, vielleicht bringt es auch ein bisschen 
was.
Aber sicher, dass die Erwärmung vom µC kommt?
Ich würde vielleicht auch mal den USB-Port (bzw. den Rechner selbst) als 
"Täter" in Betracht ziehen.
Gast
RächerMitDemBecher schrieb:
> Ich könnte nun einen Offset
> reinprogrammieren

Ein Offset wirds hier nicht bringen, da dieser abhängig von allerlei 
Sachen ist, wie z.B. "Wind"geschwindigkeit um den Stick.

Die Sleep Methode könnte aber funktionieren. Benutzt du den µC nur zum 
Auslesen des Sensors oder macht der sonst noch einige andere Dinge?
Gast
Nach meiner Erfahrung erwärmen sich MCs nicht nennenswert beim 
Abarbeiten von Code, sondern hauptsächlich dann, wenn sie an ihren 
Ausgängen Strom liefern müssen. Deswegen wird ein Sleep vermutlich 
nichts bringen, es sei denn, dabei werden auch die Ausgänge 
abgeschaltet.
Gast
Beim Sleep werden ja dann alle Pins auf Eingang umgeschalten.
Es wird nur der Sensor ausgelesen.

Pseudocode:

while TRUE
    while(HID_Read() = 0)
      NOP0
    wend
    ReadSHT
    CopySHTDataIntoBuffer
    while(HID_Write(@writebuff,64) = 0)
    wend
  wend

Der PIC erwärmt sich um etwa 2,7°C. Es hängt nur eine LED drann (low 
current 2mA).
ob der Sensor stimmt ist die eine Sache,

ob über das Board, bzw. der USB-Buchse die Wärme an den Sensor kommt,
oder ob der Gehäuselüfter die CPU-Wärme drüber pustet oder Deine
Hand beim Einstecken das Platinchen erwärmt etc. etc.

Welcher Sensor ists denn?


Häng mal Deinen Dongle an ne "Verlängerungsschnur" und miss nochmal.

Wärmebild gäbe genauen Aufschluss
Gast
Habe ihn an einem CPU Verlängerungskabel hängen (passiv).
Von da her sollte keine Wärmeübertragung herkommen. Ausserdem im 
(leeren) Gurkenglas damit kein Lüftchen stören kann.
Sensor ist der SHT11.
Gast
hallo,

und du bist dir sicher das die 2K Erwärmung sind?
Habe mit dem SHT-11 ein sehr interessantes Phänomen:
Wir aktivieren den SHT-11 nur immer ganz kurz (Versorgung an, auslesen 
und Versorgung aus) da war die Temperatur auhc immer um ca. 2K daneben. 
Uns ist das am Anfang gar nicht so aufgefallen, unser jetzige Lösung, 
Einscahteln auslesen 10sec eingeschaltet lassen, auslesen Wert nehmen 
ausschalten.

seit dem sind wir ziemlich genau.
Gast
Heizung ist aus.
Es sieht tatsächlich aus, das die CPU heizt.
Unbenutzte Pins sind mit Masse fix verbunden auf Ausgang geschalten und 
low.
Leider habe ich keine Wärmebildkamera zur Verfügung (Leider nicht bei 
Conrd für 10Euro zu haben ;-) ).
Habe mal einen NI/CR/NI Fühler auf die CPU geschnalt, Testprogramm rein 
(Alles was über USB rein kommt geht gleich zurück) und siehe da: Von 
24°C auf 32°C!!! in einer viertel Stunde. Muss mir also wirklich etwas 
mit dem Programm einfallen lassen.
Das mit den 2°k zuviel habe ich auch schon mal gehabt. War damals aber 
die erste Generation. Bei den neuen sollte man aber auch etwa 500mS nach 
den Power up warten.
Gast
Ralli schrieb:
> Kann das fast nicht glauben, das sich die CPU so sehr erhitzen würde.

wieso nicht? Steht alles im Datenblatt:
bei 48 Mhz (USB full speed) und 5 V braucht man 13 mA = 65mW. bei 108K/W 
(SSOP-Geh) erwärmt sich der Prozessor um ca 7 Grad.
Wenn man das ganze noch in ein kleines Gehäuse sperrt kriegt der 
Temperatursensor ordentlich was davon ab.

Gruß Anja
Gast
Aha 7°C. Und wie kommst du darauf? 65mW OK, das kann man berechnen.
Aber die 7°C Erwärmung nicht !!!
Weil dann währen es nur 0,02°C im Sleep Mode!!!
Gast
Sollte, ja. Allerdings muß ja offensichtlich die USB-Logik weiterlaufen, 
vielleicht lohnt es sich, zu prüfen, was "Sleep mit USB" an 
Leistungsaufnahme mit sich bringt. Kenne mich mit PIC da nicht so aus.
Ralli schrieb:
> Aha 7°C. Und wie kommst du darauf? 65mW OK, das kann man berechnen.
> Aber die 7°C Erwärmung nicht !!!
> Weil dann währen es nur 0,02°C im Sleep Mode!!!

wieso kann man das nicht berechnen? Wenn der Chip einen Wärmewiderstand 
von 108K/W hat. Dann kommt man mit 108K/W * 0.065W = 7K auf die 
Erwärmung.

Sascha

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.