mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung mit ATmag88 intern ADC8 (Assembler)


Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

der Mega88 hat ja einen internen Temperatursenor, mit diesem möchte ich 
die Raumtemperatur messen. Laut Datenblatt soll ich dem Aref pin mit 
einem Kondensator bestücken. Soll das heißen es reicht den Kondensator 
mit einem Pin an Aref anzuschließen und den zweiten Pin auf Masse zu 
legen oder muss der Arefpin zusätzlich auf Vcc legen?

Gruß, pacer

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>der Mega88 hat ja einen internen Temperatursenor

Nö, hat er nicht. Kenne ich eigentlich nur von einigen ATTinys.

MfG Spess

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der neue atmega88pa hat einen temp. sensor.
die alte version atmega88(V) hat sowas nicht.

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry antwort vergessen! :)

wenn es wirklich ein atmega88pa ist :), reicht ein kondensator von aref 
nach gnd.

>Arefpin zusätzlich auf Vcc legen?
da man über die register die 1,1volt interne referenz zuschalten muss um 
den sensor zu benutzen, wäre ein anders potenzial am aref pin 
schlecht(kurzschluss).

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Zeit habe ich den Mega88 PU im Einsatz.
Derzeit bekomme ich nur den Wert 1023 zurück. Da ich den Pin vorher auf 
Vcc hatte, hoffe ich mal, dass ich das Teil nicht geschrottet habe.

Wäre denn dann die 1.1V Referenzsspannung am Aref-Pin messbar?

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pacer schrieb:
> Wäre denn dann die 1.1V Referenzsspannung am Aref-Pin messbar?

Jo.

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Zur Zeit habe ich den Mega88 PU im Einsatz.
das ist der alte atmega88 ohne temp. sensor, das "pu" ist nur der 
gehäuse typ.

>Da ich den Pin vorher auf
>Vcc hatte, hoffe ich mal, dass ich das Teil nicht geschrottet habe.
habe es jetzt im datenblatt gesehen das der referenz pin einen 
eingangswiderstand von ca. 32k ohm hat.
dadurch sollte eigentlich nichts passieren wenn aref 5 volt hat und die 
1,1 volt interne referenz zugeschalten ist.

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na so alt ist der Mega88 nu auch nicht, ich hab ihn Ende letzten Jahres 
bei Reichelt gekauft (ATMEGA 88-20 PU).
Die 1,1V liegen am Ref-Pin an. Trotzdem liefert mir mein Programm 1023 
zurück.

Da es immer noch ein Fehler in der Software sein kann hier mal meine 
Initroutine:
 
ldi     temp, (1<<REFS0) | (1<<REFS1) | (0<<ADLAR) | (1<<MUX3)    ; Kanal 8, interne Referenzspannung 1.1V
sts     ADMUX, temp ; Bits rechts ausgerichtet (10Bit)
ldi     temp, (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0)    ; ADC enable, Teiler 128
sts     ADCSRA, temp

und mein Hauptprogramm:
Hauptschleife:          
 GetSampleADC8:
  lds    temp, ADCSRA
  ori    temp, (1<<ADSC) 
    sts     ADCSRA, temp          ; den ADC starten

 wait_adc8:
  lds    temp, ADCSRA
  sbrc    temp, ADSC            ; wenn der ADC fertig ist, wird dieses Bit gelöscht
    rjmp    wait_adc8

; ADC mit 10 Bit einlesen:
    lds      ADClow,  ADCL        ; immer zuerst LOW Byte lesen
    lds      ADChigh, ADCH        ; danach das mittlerweile gesperrte High Byte

;ADC-Wert in ASCII umwandeln und ausgeben
  rcall ChangeIntoASCII
  rcall warte_1s
  rcall warte_1s
  rcall warte_1s
;SendNewLine
  ldi temp, 1
  rcall Befehl_an_LCD

rjmp Hauptschleife

vielleicht findet ja jemand einen Fehler?

Gruß, pacer

Autor: Justus Skorps (jussa)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pacer schrieb:
> Na so alt ist der Mega88 nu auch nicht, ich hab ihn Ende letzten Jahres
> bei Reichelt gekauft (ATMEGA 88-20 PU).

egal wann gekauft, rein von der Bezeichnung her ist es der µC ohne 
TempSensor...aber was steht denn drauf?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pacer schrieb:
> Na so alt ist der Mega88 nu auch nicht, ich hab ihn Ende letzten Jahres
> bei Reichelt gekauft (ATMEGA 88-20 PU).

Hinweis:
Da ein Chip nicht 'schlecht wird' wenn er länger liegt, ist mit 'altem 
Prozessor' bzw. 'neuem Prozessor' NICHT die Lagerzeit gemeint :-)

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
stimmt schon, hätte aber nicht geglaubt, dass Reichelt die Teile für 
Jahre einkauft. Bezeichnung so wie ich schon geschrieben hatte.
was anderes steht leider nicht drauf.
Also doch ohne? :-(

Autor: Hannes Lux (hannes)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es den "Neuen" überhaupt schon???
Ich habe noch nichtmal das Datenblatt dazu eingekellert, so neu ist der.

Mit Tiny24 habe ich mal ein Thermometer gebaut (siehe Anhang). Die 
Hardware ist hier beschrieben:
http://www.hanneslux.de/avr/divers/pm24/index.html

...

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ähm, wo finde ich denn das Änderungsprotkoll zu den Mega88?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Gibt es den "Neuen" überhaupt schon???
Habe ihn schon vor Monaten mal bei Digikey oder Mouser gekauft.


>Ähm, wo finde ich denn das Änderungsprotkoll zu den Mega88?
Nirgendwo. Muss man wohl die Datenblätter vergleichen :-)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Habe ihn schon vor Monaten mal bei Digikey oder Mouser gekauft.

Nagut, für mich gibt es den erst, wenn er bei normal zugänglichen 
Elektronik-Versendern zum fairen Preis erhältlich ist.

...

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, da habe ich jetzt also noch den allerersten Mega88 und ich bräuchte 
einen mit der Bezeichnung Mega88PA-PU?
Kann man die Revision des Chips auch anhand der Signatur erkennen?

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was heißt normal zugänglich? Dort kann jeder bestellen. Im Gegensatz zu 
den großen deutschen Distributoren ist es bei denen kein Problem auch 
als Privatkunde zu bestellen. Die Lieferung erfolgt nur etwas langsamer 
(ca. 3 Werktage). Und im Vergleich zu Farnell und RS finde, zumindest 
ich persönlich, es dort vergleichsweise günstig.

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>;Kanal 8, interne Referenzspannung 1.1V
der atmega88 hat keinen kanal 8 der ist laut datenblatt "reserved" 
weshalb auch ein falsches ergebnis ausgelesen wird.

>ich bräuchte einen mit der Bezeichnung Mega88PA-PU?
so ist es.

>Kann man die Revision des Chips auch anhand der Signatur erkennen?
ja kann man.
der atmega88pa hat laut datenblatt : 1E930F
und die alte version atmega88      : 1E930A

>Ähm, wo finde ich denn das Änderungsprotkoll zu den Mega88?
http://www.atmel.com/dyn/products/app_notes.asp?fa...

AVR512: Migration from ATmega48/88/168 to ATmega48P/88P/168P
AVR528: Migrating from ATmega48P/88P/168P to ATmega48PA/88PA/168PA

die atmega88P version gab es auch noch die wurde dann von der atmega88pa 
version abgelöst.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... Und im Vergleich zu Farnell und RS finde, zumindest
> ich persönlich, es dort vergleichsweise günstig.

Schlechter Vergleich, für mich zählt da eher reichelt, CSD, Darisus und 
Ähnliche...

...

Autor: Volker U. (volkeru)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur mal so zur Information: Laut Datenblatt beträgt die Genauigkeit des 
internen Temperatursensors +/-10°C. Ich kenne niemanden, der mit einer 
auf 10 Grad genauen Temperaturmessung zufrieden wäre! Dieser Sensor ist 
lediglich dazu gedacht, die Prozessortemperatur in etwa abschätzen zu 
können, um ihn bei drohender Überlastung runterzutakten, Warnmeldungen 
auszugeben oder andere Maßnahmen zur Abkühlung zu treffen. Einen anderen 
Zweck hat dieser Sensor nicht!!!

Nachteilig ist es übrigens, dass die interne 1,1 Volt Referenzspannung 
nicht genutzt werden kann, wenn man eine externe Spannung an Aref 
anliegen hat, mit der man andere ADC Messungen durchführt. D.h. in 
diesem Fall kann die Messung mit dem internen Temperatursensor nicht bei 
1,1 Volt Referenzspannung stattfinden, sondern muss mit der Spannung an 
Aref stattfinden, was aber auch geht. Die ausgelesenen 
(Temperatur-)Werte sind dann "zu klein", wenn die Spannung an Aref > 1,1 
Volt ist. Man muss sie daher entsprechend skalieren mit dem Faktor 
(Uaref/1,1V). Bei 5 Volt an Aref beträgt dieser Faktor also 4,55. Das 
bedeutet auch, dass in diesem Fall der Temperaturwert "nur" auf 4,55 
Grad genau ist. Aber das ist völlig egal, weil der Sensor ja eh nur mit 
einer Genauigkeit von 10 Grad misst.

Wenn ich bei meinem Atmega328P an Aref z.B. 5 Volt Referenzspannung 
anliegen habe und eine Temperaturmessung durchführe, erhalte ich einen 
Wert von 76-77 bei 25 Grad Chip-Temperatur. Mit dem Faktor 4,55 
skaliert, ist das also ein Wert um 350 (Achtung! Das sind KEINE 
Millivolt, sondern ADC-Werte, also LSB). Umgerechnet ist diese Spannung 
also ca. 370 mV.

Wenn man diese Regeln beachtet, kann man auch mit 5 Volt 
Referenzspannung (oder anderen Vcc) eine gute Abschätzung der 
Prozessortemperatur erreichen.

Gruß, Volker

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.