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


von Nina (Gast)


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.

von Wolfgang (Gast)


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

von Peter D. (peda)


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

von Peter D. (peda)


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

von Wayne (Gast)


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.

von ich (Gast)


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.

von TSIC (Gast)


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.

von Peter D. (peda)


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

von Иван S. (ivan)


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

von Nina (Gast)


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

von Nina (Gast)


Lesenswert?

Hat keiner ne Meinung dazu?

von Erich (Gast)


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/wetterstation.html

(nein, nicht meine Seite).

Gruss

von Peter D. (peda)


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

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.