mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Werte vom TSIC306 mittels UART-Polling ausgeben


Autor: Philipp Neuhaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin noch nicht der Freak in Sachen Mikrocontroller, möchte aber nun 
eine Temperatur mittels TSIC306 mit einem AVR (wird wohl ein ATTiny2313 
oder ATMega8 werden) auslesen, programmieren tue ich in C und verwende 
AVR-Studio mit WinAVR.
Jedoch soll der Temperaturwert per "Polling" (vom PC) an den PC 
zurückgegeben werden (RS232, ASCII, 8N1).
Also konkret: Ich sende mit einem Terminalprogramm eine Raute '#' an den 
Mikrocontroller. Nun soll der Temperaturwert, den der Mikrocontroller in 
einer Variable gespeichert hat, an den PC übermittelt werden.
Habe hier im Forum einige Sende-/Empfangsroutinen gefunden und mir die 
beste "für mich" ausgesucht.

Mir macht jetzt aber einiges Kopfschmerzen:
Die Werte vom TSIC306 werden per "Manchester Duty Cycle" an den 
Mikrocontroller gesendet. Nun habe ich gelesen, dass man nicht mit einer 
festen Frequenz den TSIC306 auslesen sollte, da bei steigender 
Temperatur die Bits langsamer an den Mikrocontroller gesendet werden, 
bei geringer Temperatur dagegen schneller.
Werden die Bits in einem festen Zeitfenster ausgelesen, könnten bei 
hoher und niedriger Temperatur Fehler entstehen.
Das will ich vermeiden und denke darüber nach den ICP-Pin zu verwenden.
Das setzt aber dann einen Timer voraus. Ich muss ja die Mitte des 
Zeitfensters berechnen, sprich: wenn die Startbedingung 1->0..0->1 120µs 
dauert, muss die mittlere Bitzeit (Verzugszeit) auf 60µs gesetzt werden.
Bei hoher Temperatur könnte die Startbedingung 150µs dauern, d.h. die 
mittlere Bitzeit muss auf 75µs gesetzt werden.

Zum Aufbau:
Ich will den TSIC306 auf "Dauerplus" legen. Dieser Temperatursensor 
sendet dann im 10Hz-Takt den Messwert. Einlesen möchte ich diesen per 
ICP.
Zeitgleich soll ein Interrupt erfolgen, wenn eine Raute vom PC empfangen 
wird, der die Ausgabe des Temperaturwertes an den PC "erzwingt".
Werden oder können sich der UART-Interrupt und die ICP-Routine 
gegenseitig behindern?

Vielleicht kennt sich jemand mit ICP aus, wenn man damit einen 
Temperaturwert vom TSIC306 auslesen will?!

Ich möchte gerne das Programm mit euch gemeinsam erstellen und erwarte 
keine komplette Lösung.
Achja, das technische Datenblatt: 
http://www.ist-ag.ch/eh/ist-ag/resource.nsf/imgref...

Danke,
Philipp

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm also an deiner Stelle würde ich folgendes machen.

Beides über Interrupt.

Normal: TSIC306 Interrupt via Timer / Pin

Wenn UART Interrupt Ereigniss -> verifizieren (=="#" ?) -> TSIC306 
Interrupt völlig aussperren -> letzten validen (vollständig übertragene 
Temperatur vom Sensor) via UART ausgeben -> TSIC306 Interrupt(s) wieder 
zulassen.

Autor: Philipp Neuhaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sagen wir mal, dass der TSIC alle 100ms einen neuen Messwert 
präsentiert. In diesen 100ms darf dann kein Interrupt vom UART kommen, 
richtig?
Wenn nun aber alle 5ms die Raute zum UART übertragen wird, werde ich 
doch wohl keine einzige Messung vom TSIC306 bekommen?!
Oder habe ich einen Denkfehler?

Am besten wäre es, wenn beides (UART und ZACwire) parallel laufen 
würden.

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.