Hallo,
ich möchte eine interruptbasierende Kommunikation mit dem SHT75
Temperatur / Feuchtigkeitssensor auf einem ATMega32 (16 Mhz) entwickeln.
Es werden pro Sensor neben der Spannungsversorgung ein Takt (der
beliebig klein werden kann) und das Datensignal benötigt, dass zum
Senden von Befehlen und zum Empfangen von Messwerten dient.
Dabei steht im Datenblatt, dass bestimmte Timings wie die Setupzeit
(also wie lange im Voraus zum Takt das Datenpegel anliegen muss) und
weitere Zeiten eingehalten müssen. Ich dachte mir daher, den Timer 32 so
schnell auslösen zu lassen wie die benötigte Taktfrequenz der
Clockleitung. Jedesmal lasse ich dann einen Interrupt auslösen. So kann
ich dann 1/32 Tclk vor der nächsten Flanke schon das Datensignal
hochziehen bzw. Pins auf Ausgang oder Eingang sezten usw.
Nur leider weiß ich nicht in wie weit das überhaupt realisiert werden
kann. Zuerst wollte ich den Sensor mit 50 kHz takten. Ich denke, dass
ist dann zu schnell, da dann der Timer mit 50kHz*32 = 1,6 Mhz takten
müsste und so nur 10 Takte zum Durcharbeiten der ISR Zeit blieb. :)
Daher möchte ich mit den Takt für den Sensor auf unter 10 kHz
runtergehen.
Frage: Wer hat so etwas schon mal realisiert?
Wie geht man ohne großartig Timer zu verschenken und ohne dauernd
irgendwelche Register zu pollen überhaupt an ein solches Thema ran?
Gruß
Bernhard N.