Forum: Mikrocontroller und Digitale Elektronik Temperatursensor, SPI und (SD Card?)


von Matthias (Gast)


Lesenswert?

Hallo,
ich überlege gerade, wie ich geeignet meine mit dem uC durchgeführten 
Temperaturmessungen in eine Textdatei (oder auch CSV) abspeichern kann.

Als Temperatursensor wird ein Thermocouple Typ K eingesetzt. Als 
passendes IC zur Messung habe ich den ADS1118 von TI gefunden:
http://www.ti.com/lit/ds/sbas457e/sbas457e.pdf
Mir persönlich gefallen seine Eigenschaften, das er bereits eine 
Referenzspannung integriert hat sowie einen internen Temperatursensor 
zur Cold Junction Kompensation besitzt. Ferner hat der ADS1118 ein SPI 
interface zum uC. Ergo lassen sich die Daten relativ unkompliziert in 
den uC einlesen.

Ich verwende ferner die serielle SCI Schnittstelle, um verschiedene 
Daten über UART zum PC zu übertragen.

Jetzt stelle ich mir die Frage, wie ich die gemessenen Daten (auf 
einfache Weise) in eine Textdatei bekommen kann.

Lösung 1:
Mein Terminalprogramm bietet die Möglichkeit, die über UART gesendeten 
Daten manuell als Textdatei zu speichern. Dies wäre eine Lösung, die für 
den Anfang sicherlich ausreichend ist. Allerdings würde ich die 
Messungen am Ende gerne automatisiert durchführen.

Lösung 2:
Ich schreibe mir ein eigenes kleines Programm am PC (VB, C# etc.), das 
die UART Ergebnisse abspeichert. Meine Programmierkenntnisse sind nicht 
die besten, ich bin bereits stolz, den uC einigermaßen vernünftig zum 
Laufen zu bekommen.

Lösung 3:
Ich füge eine SD Karte zum uC hinzu, und lasse die Werte direkt auf die 
SD Karte schreiben. Diese Lösung scheint für mich persönlich am 
attraktivsten zu sein. Allerdings habe ich den SPI Port bereits mit dem 
Sensor verbaut.

Lösung 4:
Ich verwende eine OP Amp Schaltung mit Cold Junct. Kompensation und 
Referenzspannung, und lese die Ergebnisse über den ADC des uC ein. Somit 
ist der SPI Port nicht belegt und ich kann die Daten auf eine SD Karte 
schreiben.

Meine Frage an euch:
Seid ihr bereits in einer ähnlichen Situation gewesen, und wenn ja, wie 
war eure Lösung?

Falls erforderlich:
Ich verwende einen Piccolo DSP der C2000er Reihe von Texas Instruments.

Ich bin auf eure Anregungen gespannt.

Gruß,
Matthias

von Michael U. (amiga)


Lesenswert?

Hallo,

Matthias schrieb:
> Lösung 3:
> Ich füge eine SD Karte zum uC hinzu, und lasse die Werte direkt auf die
> SD Karte schreiben. Diese Lösung scheint für mich persönlich am
> attraktivsten zu sein. Allerdings habe ich den SPI Port bereits mit dem
> Sensor verbaut.

dafür hat man das Chip-Select-Signals /CS erfunden, sowohl beim Wandler 
als auch bei SD-Card. Man kann durchaus mehrere Komponenten an einem SPI 
betreiben, man muß nur das jeweils angesprochene Device mit /CS 
auswählen.
Evtl. auch noch auf den jeweils zu nutzenden SPI-Mode achten, aber das 
ist letztlich alles nur etwas Software.

Gruß aus Berlin
Michael

von holger (Gast)


Lesenswert?

>Meine Programmierkenntnisse sind nicht
>die besten,

Dann lass das mal besser sein mit der SD Karte.

von Wolle G. (wolleg)


Lesenswert?

holger schrieb:
>>Meine Programmierkenntnisse sind nicht
>>die besten,
>
> Dann lass das mal besser sein mit der SD Karte.

Man kann ja auch noch dazulernen.
Von nichts kommt nichts.
Also: weitermachen.
z.B. sammle ich  jeweils 512 Bytes als Feld und schreibe sie dann in 
einen Sektor der SD-Karte

von STK500-Besitzer (Gast)


Lesenswert?

Als ich noch nicht bis zur Nennung des Prozessors gelesen hatte, dachte 
ich "Soll er nen Arduino nehmen!".

Dann sah ich mir die Internet-Seite des Controllers an und siehe da:
http://energia.nu/ sieht genauso aus, wie die Arduino IDE.
Dann kann man vermutlich auch entsprechende Bibliotheken verwenden.
Der Arduino-Kram ist zwar bei "echten" Entwicklern verpönt, man kommt 
aber schnell zu einem Ergebnis und solche Standard-Anforderungen wie 
FAT16 auf SD-Karte sind gut dokumentiert.
Guck dir die Sachen an, und entscheide, ob du das hinbekommst.
Ein Datenlogger ist auf einem PC auch relativ schnell geschrieben...

von Christopher J. (christopher_j23)


Lesenswert?

STK500-Besitzer schrieb:
> Dann sah ich mir die Internet-Seite des Controllers an und siehe da:
> http://energia.nu/ sieht genauso aus, wie die Arduino IDE.

Ist auch das Pendant zur Arduino-"IDE" von TI

STK500-Besitzer schrieb:
> Der Arduino-Kram ist zwar bei "echten" Entwicklern verpönt, man kommt
> aber schnell zu einem Ergebnis und solche Standard-Anforderungen wie
> FAT16 auf SD-Karte sind gut dokumentiert.

Jo, kann er auch einen MAX31855 auf nem Breakout-Board nehmen. Kostet 
beim Chinesen keine 10€ und dafür gibt es definitiv 
(Arduino-)Bibliotheken. Nur kann man das dann auch gleich mit einem Uno 
R3 zusammenschustern und noch das billige SD-Shield vom Chinesen (samt 
RTC) draufklatschen, dann hat man nicht so ein Kabelgewurschtel. Das 
bekommt dann wirklich jeder hin.

von Matthias (Gast)


Lesenswert?

Hi,
ich danke euch allen sehr für euren Input. Dass man mehrere Slaves über 
SPI ansprechen kann, hätte mir auch selbst in den Sinn kommen können. 
Diese Lösung werde ich jedenfalls im Hinterkopf behalten, zusammen mit 
der Lösung ein eigenes kleines Programm aufm PC zu schreiben.

In beiden Fällen werde ich jedenfalls den Lerneffekt genießen.

So long,
Matthias.

von jb (Gast)


Lesenswert?

>>Meine Programmierkenntnisse sind nicht
>>die besten,

>Dann lass das mal besser sein mit der SD Karte.

Die Elm-Chan SD Lib zum laufen zu kriegen halt ich auch für schwieriger 
als ein kleines terminal programm zu schreiben.

GRuß J

von Minimalist (Gast)


Lesenswert?

Unter Linux recht einfach. Evtl kannst du dazu ja eine Live System von 
cd Booten
Dann einfach
1
screen -L /dev/tty.wieauchimmer
Das schreibt alles empfangene in die screen.0

Unter Windows geht oft(evtl. Adminrechte nötig)
1
type comx: >> data.log

Wobei comx der COM-Port ist,den du benutzt. Oft Com3.

von jb (Gast)


Lesenswert?

>type comx: >> data.log

Cool.

Gruß J

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.