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.
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?
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.
Ich würde eher den LDO-Spannungsregler in Betracht ziehen, der warm wird.
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
RächerMitDemBecher schrieb: > Nun habe ich aber das Problem, das der uC (ein PIC18F13K50) den > Temperatursensor um ungefähr 2°C erwärmt. Konstruktionsfehler.
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.
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.
Hi! Zusätzlich: Unbenutzte Pins nicht floaten lassen sondern per hochohmigen PullUp auf definiertes Potential ziehen. Gruß PP
Oder sich den Pullup sparen und einfach als Ausgang schalten.
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
Gibts nen Schaltplan, und was ist das für ein Sensor? Oder ist das geheim?
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?
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.
Kann das fast nicht glauben, das sich die CPU so sehr erhitzen würde.
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
Also wenn ich Ihn in Sleep lege, müsste er dann nur noch ein paar uA brauchen. Oder liege ich da falsch???
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!!!
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
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.