Abkürzungen
AVRTemp ... Projektbezeichnung; Temperaturmessung mit AVR Mikrokontrollersystem
TMP03 ... Temperatursensor von Analog Devices
Zielbestimmungen
Zur Messung von Temperaturen im Bereich von -40°C bis +100°C gibt es am Markt eine Reihe von billigen, einfach anzusteuernden IC's. Der Baustein TMP03 von AD ist ein Temperatursensor, der die Temperaturwerte in Form des Puls-Pausen-Verhältnisses eines Rechtecksignals zur Verfügung stellt. Zum Anschluss an einen Mikrocontroller ist also lediglich eine Zweidraht-Leitung notwendig (Data, Ground). AVRTemp ist ein auf ein Steckbrett steckbares Modul inklusive Treibersoftware für das an der HTL Mödling verfügbare AVR-Entwicklungssystem.
Musskriterien
Messung
Messbereich -20° bis +100°C
Auflösung 1°C mindestens
Hardware
AVRTemp-Modul steckbar, sodass durch das Aufstecken die Versorgung über die Versorgungsschienen auf dem Standardsteckbrett erfolgt
der Sensor-IC TMP03 von AD wird als SMD-Bauteil direkt auf den PCB gelötet
5V Versorgung über externes Schaltnetzteil
Ausgangssignal mit 100 Ohm Serienwiderstand schützen
Software
nützt einen externen Interrupt (INT0)
stellt die Temperatur in der globalen Variablen Temp zur Verfügung
verwendet den Timer 1 (16 bit)
Test
Kalibrierung durch Messung im Bereich 37°C bis 41°C mit handelsüblichem Fieberthermometer
Testprogramm zur Anzeige der Temperatur am Display des AVR Entwicklungssystems
Dokumentation
Erstellen der technischen Dokumentation für Hard- und Software
Benutzerhandbuch
Wunschkriterien
höhere Auflösung
Stromversorgung auch über das AVR Entwicklungssystem möglich
Abgrenzungskriterium
AVRTemp hat keine Anforderungen an die Robustheit
EMV Verträglichkeit ist nicht gefordert
Produkteinsatz
Anwendungsbereiche
Das Produkt kommt im Schulbetrieb im Laborbereich zum Einsatz. Es stellt daher keine besonderen Anforderungen an die Stabilität und elektrische Kenngrößen. Das Modul wird über Steckerpfosten auf ein Steckbrett aufgesteckt. Zu wenig Pfosten führen zu mangelnder Stabilität und eventuell zu Kontaktproblemen. Zu viele Steckverbindungen erschweren das Stecken und Abziehen des Moduls.
Die Software wird als Modul entworfen und kann über eine Headerdatei eingebunden werden.
Zielgruppen
Zielgruppen sind Lehrer und Schüler, die das Modul für Übungen im Laborbetrieb verwenden.
Produktkonfiguration
Es ist keine Kalibrierung der Temperaturmessung nötig, der Baustein liefert absolute Temperaturwerte. Eine Überprüfung der Temperaturmessung mit einem Handelsüblichen
Produktumgebung
Das Modul AVRTemp wird an den externen Interruptpin eines AVR ATMEGA8 angeschlossen. Stromversorgung erfolgt über ein externes Schaltnetzteil, sodass zusätzlich ein Massesignal zwischen Modul und ATMEGA8 gelegt werden muss.
Schnittstellen
Die Stromversorgung erfolgt über die Stromschienen eines Standardsteckbrettes.
Das Datensignal liegt als Rechtecksignal vor, die genauen Timings sind dem Datenblatt zu entnehmen. Eine Schirmung ist nicht nötig.
Betriebsbedingungen
Der Temperaturbereich von -20° bis +°100°C darf nicht überschritten werden. Die elektrische Leistungsaufnahme liegt unter 1W. Ein Batteriebetrieb ist nicht vorgesehen.
Produktfunktion
/PF001/ Temperaturmessung
Messbereich -20°C bis 100°C
Auflösung 1°C
/PF101/ Software-Treiber
C-Headerdatei
init() ... Initialisierung
float Temp ... Temperatur
externer Interrupt Int0
Timer 0 16 bit
/PF201/ Platine
SMD-Platine single Layer
Abmessung für gute Steckbarkeit auf Standardsteckbrett
M50 Stifte mit 1.2mm Durchmesser und 1cm Länge
5V Versorgung über externes Schaltnetzteil
Versorgung sieben (50 Ohm, 10uF)
Ausgangssignal mit 100 Ohm Serienwiderstand schützen
Ausgangssignal über zweipolige Stiftleiste (1...Data, 2...GND) abgreifbar
uP fosc = 16Mhz
Produktdaten
Der Software-Treiber liefert die Temperatur als Fließkommazahl.
/PD001/ Der Datentyp ist float.
Produktleistungen
Die Temperaturmessung wird auf eine Zeitmessung zurückgeführt. Die Zeitmessung erfolgt über Interrupts am externen Interrupt-Pin. Die Reaktionszeit des Interrupts ist beim AVR nicht konstant, es kann zu einem Zeitunterschied von bis zu 3 Prozessorzyklen kommen.
/PL001/ Diese Zeitverzögerung ist nicht relevant.
/PL002/ Gemessen wird über drei Perioden. Diese Perioden werden gemittelt und der Mittelwert als Temperaturwert ausgegeben.
Benutzerschnittstelle
Der Treiber wird über ein C-Headerfile eingebunden. Die Quelltexte sind zur Verfügung zu stellen.
Der Treiber wird durch die Kopfzeile
/PB001/ #include AVRTemp eingebunden.
Zur Initialisierung des Interruptsystems und des Timers muß die Funktion
/PB002/ void AVRTempInit(void) in die Systeminitialisierung aufgenommen werden.
Dokumentation
/PD001/ Es ist ein Pflichtenheft,
/PD002/ eine technische Dokumentation für die Hardware und die Software, sowie
/PD003/ ein Benutzerhandbuch zu erstellen.
Qualitäts-Zielbestimmung
An die Qualität der Hard- und Software werden keine Ansprüche gestellt. Die Systemfunktion ist mittels mitgeliefertem Testprogramm, das
/PQ001/ am Display des AVR Entwicklungssystems oder über eine serielle Schnittstelle die aktuelle Temperatur ausgibt zu beweisen.
|
sehr wichtig |
wichtig |
weniger wichtig |
unwichtig |
Robustheit |
x |
|
|
|
Zuverlässigkeit |
x |
|
|
|
Korrektheit |
|
x |
|
|
Benutzungsfreundlichkeit |
|
|
x |
|
Portierbarkeit |
|
|
|
x |
Kompatibilität |
|
|
|
x |
Dokumentation |
x |
|
|
|
Ergänzungen
Die Software ist am Gnu C-Compiler für AVR Systeme WinAVR zu entwickeln. Alle nötigen Quelltexte müssen zur Verfügung gestellt werden. Der Entwickler überträgt alle Rechte an der Software an die HTL Mödling.