Forum: Mikrocontroller und Digitale Elektronik Auslesen eines TSic Temp. Sensors mit ATMEGA32


von Wolfram Q. (quehl)


Lesenswert?

nachstehenden Text habe ich an ZMD geschrieben. Vielleicht weiß von Euch 
einer, wie man das programmieren kann. Eine Beschreibung war hier unter 
Temperatursensor zu finden.


ich bin gerade dabei, das Auslesen der Temperatursensoren TSic zu 
programmieren. Ich verwende einen ATMEL ATMEGA 32. In Ihrer Beschreibung 
gehen Sie von nur 1 Sensor aus. Ich will aber mindestens 5 Sensoren 
auslesen. Der Mega32 hat aber nur 3 Interrupteingänge und einen Capture 
Eingang. (und 3 Timer). Deswegen geht das nicht so ohne weiteres nach 
Ihrer Beschreibung. Wissen Sie da einen Weg, wie man das programmieren 
könnte? Ich hatte daran gedacht, einen Port (8bits) mit 32 Khz 
einzulesen. Das Problem dabei ist, daß das Einlesen mit einer Flanke 
zusammenfallen könnte. Was dann gelesen wird, weiß ich nicht. Außerdem 
könnte es sein, daß mein 32 Khz Timing nicht mit dem Timing des TSic 
übereinstimmt, so daß Verschiebungen auftreten. Eine Erhöhung der 
Abtastfrequenz auf 128 Khz löst das Problem nicht. Ich gehe auch davon 
aus,  daß die Sensoren nicht zur gleichen Zeit die fallende Flanke 
aussenden und das Timing nicht 100%ig identisch ist (nominal Frequenz).

von Peter D. (peda)


Lesenswert?

Wolfram Quehl wrote:

> übereinstimmt, so daß Verschiebungen auftreten. Eine Erhöhung der
> Abtastfrequenz auf 128 Khz löst das Problem nicht.

Warum nicht ?
Das sind 1/16 der Bitzeit, sollte also fein genug sein.

Ansonsten:

1.4.2 Solutions if Real Time System Cannot Tolerate the TSicTM 
Interrupting the mController


Peter

von Jörg S. (Gast)


Lesenswert?

Alle Sensoren einzeln Einschalten und auf Übertragung warten. Die 
Ausgangspins der Sensoren könnte man zusammenschalten. Sollte bei 5 
Sensoren eigentlich noch gehen. Man könnte sich aber auch den Interrupt 
sparen, da man weiss wie lange der Sensor braucht bis er nach dem 
Einschalten das Ergebnis sendet (Also einfach nur auf Pin Aktivität 
testen).

von Wolfram Q. (quehl)


Lesenswert?

@Peter

die 16tel Bitzeit schließt nicht aus, daß die Flanke gelesen wird. Man 
könnte dann evtl. bei einer fehlerhaften Auslesung das Bit auf das 
Sollbit setzen. Aber ob das so einfach geht, weiß ich nicht so recht. 
Das fehlerhafte Bit müßte erkannt werden können.

1.4.2 nutzt einen Softwarezähler für die Wartezeit. Das ist in 
Anbetracht, daß noch mehr Aufgaben gemacht werden sollen, zunächst nicht 
so akzeptabel.

@Jörg

hat der Sensor im ausgeschalteten Zustand einen Tristate Ausgang? Habe 
ich im Datenblatt nicht gesehen bzw. übersehen.
Die Zeit bis zur Aktivität ist nicht so genau bekannt. 65-85 ms. Also 
Int. verwenden. Könnte vielleicht gehen. Etwas nachteilig ist dann zwar 
die Umsetzzeit von 1/2 sek., da die Differenztemp. ermittelt werden 
soll, aber vielleicht noch akzeptabel.
Pinaktivität geht eben nicht wegen der Flankenauslesung.

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.