Forum: Mikrocontroller und Digitale Elektronik uC "runterkühlen" mit Sleep Kommando


von RächerMitDemBecher (Gast)


Lesenswert?

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.

von LuXXuS 9. (aichn)


Lesenswert?

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.

von Dominik S. (dasd)


Lesenswert?

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.

von Marcus (Gast)


Lesenswert?

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?

von Andreas (Gast)


Lesenswert?

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.

von Simon K. (simon) Benutzerseite


Lesenswert?

Ich würde eher den LDO-Spannungsregler in Betracht ziehen, der warm 
wird.

von RächerMitDemBecher (Gast)


Lesenswert?

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

von Weingut P. (weinbauer)


Lesenswert?

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

von Harry (Gast)


Lesenswert?

RächerMitDemBecher schrieb:
> Nun habe ich aber das Problem, das der uC (ein PIC18F13K50) den
> Temperatursensor um ungefähr 2°C erwärmt.

Konstruktionsfehler.

von RächerMitDemBecher (Gast)


Lesenswert?

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.

von RächerMitDemBecher (Gast)


Lesenswert?

Meinte natürlich USB Verlängerungskabel :-/

von MWS (Gast)


Lesenswert?

Integriertes Heizelement ist abgeschaltet ?

von sht11-gast (Gast)


Lesenswert?

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.

von Paulchen Panther (Gast)


Lesenswert?

Hi!

Zusätzlich: Unbenutzte Pins nicht floaten lassen sondern per hochohmigen 
PullUp auf definiertes Potential ziehen.

Gruß
PP

von Dirk W. (Gast)


Lesenswert?

Oder sich den Pullup sparen und einfach als Ausgang schalten.

von Weingut P. (weinbauer)


Angehängte Dateien:

Lesenswert?

mein ... so n µC kann schon n paar mW an Wärme abgeben ... hab mal im 
Anhang nen Mega128 auf 5V und 14MHz Takt ... man sieht schon 
Temperaturunterschiede

von Timm T. (Gast)


Lesenswert?

Gibts nen Schaltplan, und was ist das für ein Sensor? Oder ist das 
geheim?

von Weingut P. (weinbauer)


Lesenswert?

SHT11 hat er geschrieben
Gibts von Sensirion cooles Teil, schweine teuer ... hatt ich vor 
Ewigkeiten auch mal verbaut. ... für Temperatur hätts aber auch n LM75B 
getan, oder?

von RächerMitDemBecher (Gast)


Lesenswert?

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.

von Ralli (Gast)


Lesenswert?

Kann das fast nicht glauben, das sich die CPU so sehr erhitzen würde.

von Anja (Gast)


Lesenswert?

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

von RächerMitDemBecher (Gast)


Lesenswert?

Also wenn ich Ihn in Sleep lege, müsste er dann nur noch ein paar uA 
brauchen. Oder liege ich da falsch???

von Ralli (Gast)


Lesenswert?

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!!!

von Sebastian (Gast)


Lesenswert?

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.

von Sascha W. (sascha-w)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.