www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Geeigneter Mikrocontroller für Messung mit SMT160-30


Autor: Nina (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich bin völlig neu auf dem Gebiet der Mikrocontroller, deshalb sind 
meine Fragen vielleicht noch eher "dumm", habe aber in den letzten Tagen 
schon mal viel hier im Forum und auf anderen Seiten gelesen.

Ich würde gern min. 8 Temperaturen messen, und zwar mit dem SMT160-30 
wegen der hohen Auflösung. Darüber habe ich hier auch schon einiges 
gelesen. Bin aber noch recht unsicher, wie das in Verbindung mit einem 
Mikrocontroller funktioniert.

Ich suche nun einen geeigneten (passenden) Mikrocontroller dazu, der 
möglichst sparsam ist. Ich hatte schon einiges über den MSP430 gelesen, 
der recht wenig verbraucht und für den Batteriebetrieb geeignet ist. 
Kann ich eine solche PWM-Messung mit dem realisieren? Oder habt ihr 
vielleicht einen geeigneteren, den ihr mir empfehlen könnt?

Habe ich das auch richtig verstanden, dass man -wenn man mehrere SMTs- 
messen möchte, diese an einen Multiplexer anschließt und den dann an den 
Controller? Wie viel Verzögerung habe ich dann bei der Messung der Werte 
der verschiedenen Sensoren?

Was für die Auswahl des Controllers noch wichtig wäre, die Temperaturen 
sollen nach der Messung auf eine SD-Karte geschrieben werden.

Wäre super, wenn ihr mit einige Tipps geben könntet, was die Auswahl und 
evtl. einfachste Umsetzung wäre.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, Nina!

Was soll ich sagen? Grundsätzlich ist jeder µC dafür geeignet. Nach 
Jahren der AVR-Nutzung bin ich auf ARM umgestiegen und zufrieden. Die 
Schusser bieten alles, was Du brauchst und sind spottbillig. Z.B. 
STM32F105R8T6 2,95€ netto bei EBV. Da ist es sinnlos, einen der vielen 
kleineren µC zu nehmen.

Als Entwicklungsumgebung kannste das STM3210C nehmen (~160,-€ netto), 
das ich selbst in Bearbeitung habe. Ein LCD und eine MicroSD-Buchse sind 
auch drauf. Wenn es explizit eine Standard-SD-Buchse sein soll, kannste 
die extern anschließen.

Verzögerungszeiten zwischen Meßwerten beim ADC liegen (je nach 
µC-Taktung) im Bereich von wenigen 100ns bis einzelnen µs, sollten also 
kein Problem für Temperaturmessungen darstellen.

Hoffe, geholfen zu haben.

Gruß - Wolfgang

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Atmega164 wäre geeignet, damit kannst Du bis zu 9 Sensoren auslesen.
Sie werden über den ADC-Multiplexer an den Capture-Eingang des Timers T1 
gelegt und damit kannst Du dann das Tastverhältnis messen.


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> Grundsätzlich ist jeder µC dafür geeignet.

Da der SMT160-30 an 4,75 .. 7V läuft, sollte der MC schon ein 5V-Typ 
sein.
Sonst braucht man extra Spannungsregler und Pegelkonverter.

Der STM32F105R8T6 ist also nicht geeignet.


Peter

Autor: Wayne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wozu braucht ihr den ADC?
Duty Cycles würde ich mittels Timer erfassen und daraus die Temperatur 
berechnen. Mit einem ATmega zum Beispiel ein Timestamp für die steigende 
und die fallend Flanke und das ganze ist erledigt. Für verschiedene 
Sensoren entweder mehrer Timer nutzen oder multiplexen. Nix ADC.

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß nicht, in wiefern das damit geht (soeinen µC hab ich nicht), 
aber ich bin eben bei Microchip über das hier gestoplert:
http://ww1.microchip.com/downloads/en/DeviceDoc/41565a.pdf

Auf Seite 7 unten beim Timer 1 Gate steht:
Example Applications
■ Delta Sigma ADC
■ PWM Decode
■ SMPS Current Sharing
■ Pulse Frequency Measurements
■ Time Frequency Measurements

Ist PWM-Decode nicht genau das, was du suchst? Wie gesagt, habe ich noch 
nicht probiert, deshalb kann ich nicht sagen, obs was ist. Sollen alle 
PIC18(L)F___K22 haben, also z.B. PIC18F67K22 oder PIC18F87K22.

Autor: TSIC (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt darauf an was man messen will.
Vielleicht wären TSIC 306 oder 506 von ZMD auch geeignet.

Man kann sie mit 3 bis 5V betreiben und die Genauigkeit und Auflösung 
sind sehr gut. Man braucht nur einen Pin pro Sensor, allerding ist die 
Ansteuerung etwas gewöhnungsbedürftig.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wayne schrieb:
> Und wozu braucht ihr den ADC?

Garnicht, sondern nur den ADC-Multiplexer.
Damit hat man dann 10 Eingänge für das Input-Capture:
ADC0 ... ADC7, AIN1, ICP


Peter

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nina schrieb:
> Ich würde gern min. 8 Temperaturen messen, und zwar mit dem SMT160-30
> wegen der hohen Auflösung. Darüber habe ich hier auch schon einiges
> gelesen. Bin aber noch recht unsicher, wie das in Verbindung mit einem
> Mikrocontroller funktioniert.

Der SHM gibt ein temperaturabhängiges Rechtecksignal mit einer maximalen 
Frequenz von 4kHz aus. Man könnte also dieses Signal mit dem Controller 
sampeln. Ich persönlich hätte wahrscheinlich einn Sensor mit anderer 
Schnittstelle genommen.

> Ich suche nun einen geeigneten (passenden) Mikrocontroller dazu, der
> möglichst sparsam ist. Ich hatte schon einiges über den MSP430 gelesen,
> der recht wenig verbraucht und für den Batteriebetrieb geeignet ist.
> Kann ich eine solche PWM-Messung mit dem realisieren? Oder habt ihr
> vielleicht einen geeigneteren, den ihr mir empfehlen könnt?

Machen kann man das praktisch mit jedem gebräuchlichem Controller. Ich 
hab' früher 'mal in den MSP430 reingeschnuppert, mir hat's gefallen 
(aber ich beschäftige mich nicht mehr damit).

> Habe ich das auch richtig verstanden, dass man -wenn man mehrere SMTs-
> messen möchte, diese an einen Multiplexer anschließt und den dann an den
> Controller?

Stell Dir den MUX wie einen Schalter vor. Mit der "Adresse" am Mux 
kannst Du schalten, welches Signal (welchen Sensors) an Deinen Sampler 
kommt.

> Wie viel Verzögerung habe ich dann bei der Messung der Werte
> der verschiedenen Sensoren?

Es gibt nur eine "Verzögerung" dadurch, daß Du pro Zeiteinheit nur einen 
Sensor "auslesen" kannst. Hängt auch von der Genauigkeit ab. Je länger 
Du sampelst, desto genauer wird's. Die reinen Schaltzeitverluste sind 
komplett irrelevant, moderne Controller schalten schnell genug, um mit 
8kHz sampeln zu können.

> Was für die Auswahl des Controllers noch wichtig wäre, die Temperaturen
> sollen nach der Messung auf eine SD-Karte geschrieben werden.

Ich würd' einen mit brauchbarer SPI-Unterstützung nehmen. Und das mit 
der SD-Karte erst dann anfassen, wenn Deine Temperaturmessung ordentlich 
funktioniert.

Ein gutes (im Sinne von brauchbar) Eval-Board kann bei solchen Sachen 
(zumal's z.ß. den 430er nur SMT-mässig gibt) Gold wert sein.

Viel Erfolg, Iwan

Autor: Nina (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für eure vielen und vor allem schnellen Antworten.

Hab jetzt den ATmega168 ausgewählt, da ich noch ein 
myAVR-Entwicklungsboard bekommen habe und der ATmega168 mit dem ATmega 8 
pingleich sind. naja, was ich im Moment damit vor habe, sollte es wohl 
erstmal reichen.

Mein nächstes Problem ist die Flankenauswertung der Pulse, die der SMT 
schickt. Habe auch in der letzten Zeit ganz viel gelesen (leider auch 
gegensätzliches), auch hier einige Programmcodes, aber als Anfänger wird 
man daraus leider nicht immer schlau. Habe mir jetzt aus den vielen 
Foreneinträgen und sonstigen Dingen, die ich darüber gelesen habe, 
überlegt, wie man das evtl. machen könnte. Vielleicht kann mir jemand 
sagen, ob das prinzipiell so geht, wie ich mir das gedacht habe. 
Vielleicht hat auch jemand einen Ansatz, wie man das einfach in 
Assembler schreiben könnte.

1.PB0 als Eingang setzen (Input Capture)
2.ICP1 auf steigende Flanke setzen, damit wird der timestamp in 
ICR1H/ICR1L geschrieben
3.Dies müsste ich ja dann in einer Variablen 1 sichern
4.ICP auf fallende Flanke setzen, timestamp wieder in ICR1H/ICR1L
5.In Variable 2 sichern
6.ICP1 auf steigende Flanke setzen
7. In Variable 3 sichern
8. Pulsweite und Periode berechnen etc.

eigentlich müsste ich ja nun Variable 3= Variable 1 setzen, denn die 
zweite steigende Flanke ist ja automatisch die erste der nächsten 
Messung, oder nicht?!

Um die Genauigkeit zu erhöhen muss ich ja z.B. über mehrere ms messen 
oder sowas, werden dann die einzelnen Pulsweiten addiert und daraus der 
Mittelwert gebildet oder wie kann ich diesen Vorgang realisieren. Das 
ist mir irgendwie auch noch nicht ganz klar geworden.

Ich hoffe meine erdachte Vorgehensweise ist nicht komplett konfus, und 
ihr könnt mir weiterhelfen!

Danke im Voraus und Grüße

Autor: Nina (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat keiner ne Meinung dazu?

Autor: Erich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaja, der Artikel ist 1 Jahr alt.

Aber weil keine ordentliche Lösung vorgeschlagen wurde, will ich das 
heute nachholen.
Eine sehr gute Applikation zur "capture" Auswertung des SMT160 
Temperatursensors incl. Software für einen PIC uC findet sich hier:

http://www.technik.dhbw-ravensburg.de/~lau/wetters...

(nein, nicht meine Seite).

Gruss

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erich schrieb:
> Aber weil keine ordentliche Lösung vorgeschlagen wurde

Wurde es doch.

Ich kann Dir versichern, das Input-Capture des AVR ist eine ordentliche 
Lösung und sie funktioniert hervorragend.
Ich benutze es selber auf einem ATtiny24.


Peter

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.