Forum: Mikrocontroller und Digitale Elektronik schneller Thermocouple Ampl. gesucht


von Darko J. (darko_j)


Lesenswert?

Hallo,

ich möchte eine Schaltung mit mehreren (max. 8) TC Typ K einlesen und 
über einen CAN Bus ausgeben.

Die geforderte Geschwindigkeit beträgt ideal 200Hz und minimum 100Hz 
(bitte keine Diskussionen anfangen dass es unnötig ist, mein Hauchdünner 
"Sensor" macht das schon).
Ich habe mir einige Chips angesehen:
auf analog: AD8497
auf dig: AD596, MAX6675, MAX31855

Mein Problem ist dass ich aus den Datenblättern nicht verlässlich 
rauslesen kann was die Abtastrate wirklich ist. Grundsätzlich wären vom 
Aufbau 2 Möglichkeiten, entweder ein Baustein mit Multiplexer oder je 
Eingang ein Baustein. Simultane Abfrage wäre zwar wünschenswert aber ich 
kann die Bausteine über SPI eh nur hintereinander Abfragen, da kann ich 
wahrscheinlich gleich mit Multiplexer arbeiten.

Vlt. hat ja jemand Erfahrung oder kann sonst eine Meinung/Empfehlung 
abgeben.
Was ist in diesem Fall schneller: I2C, SPI oder AI?

Besten Dank und LG.

Sonstige HW: ATMega644 mit MCP2515+MCP2551

von Olaf (Gast)


Lesenswert?

> Vlt. hat ja jemand Erfahrung oder kann sonst eine Meinung/Empfehlung
 > abgeben.

Ich wuerde erwarten das fertige ICs deutlich langsamer sind weil deine 
gewuenschte Geschwindigkeit keiner braucht und man immer dankbar ist 
wenn man 50/60Hz bereits gefiltert hat.

Ausserdem erscheint es mir hoechst unoekonomisch acht teure 
Wandlerabausteine einzusetzen. Vermutlich ist es einfacher wenn du 
einfach mit 2x4 Operationsverstaerker selber verstaerkst und den Rest im 
Microcontroller macht.

Allerdings solltest du vorher mal gruendlich darueber nachdenken ob du 
nicht vielleicht Potentialfreiheit benoetigst.

> Simultane Abfrage wäre zwar wünschenswert aber ich
> kann die Bausteine über SPI eh nur hintereinander Abfragen,

Warum? Mal absehen davon das es durchaus auch Microcontroller mit 8xSPI 
gibt wenn man aufhoert sich bei ARduinokram umzuschauen, es ist kein 
Problem SPI per Software zu machen und dabei 8Bit auf einmal 
einzulesen.Anstatt QSPI dann OSPI. :-)

Olaf

von Achim S. (Gast)


Lesenswert?

Darko J. schrieb:
> Mein Problem ist dass ich aus den Datenblättern nicht verlässlich
> rauslesen kann was die Abtastrate wirklich ist

der AD596 ist z.B. ein Analog-IC. Eine "Abtastrate" gibt es da nicht. 
Seine Bandbreite sind 15kHz (also sehr viel schneller als die von dir 
angestrebten Werte). Beim AD8497 wären es 30kHz.

Beim MAX6695 kannst über das "Conversion Rate Control Register" 
einstellen, wie schnell er abtastet. (8S/s maximal).

Bei den anderen ICs war ich jetzt zu faul, um ins Datenblatt zu schauen 
;-)

von Darko J. (darko_j)


Lesenswert?

> Ich wuerde erwarten das fertige ICs deutlich langsamer sind weil deine
> gewuenschte Geschwindigkeit keiner braucht und man immer dankbar ist
> wenn man 50/60Hz bereits gefiltert hat.
Fertige 8ch Bauteile schaffen grad mal 0,3Hz wenn man alle Kanäle nutzt. 
zumindest einer denn ich gefunden habe.

> Ausserdem erscheint es mir hoechst unoekonomisch acht teure
> Wandlerabausteine einzusetzen. Vermutlich ist es einfacher wenn du
> einfach mit 2x4 Operationsverstaerker selber verstaerkst und den Rest im
> Microcontroller macht.
Wenn ich die Verschiebung der Messkurven zueinander unterbinden möchte 
dann fällt mir im moment nix anderes ein ausser simultan abzufragen.

> Allerdings solltest du vorher mal gruendlich darueber nachdenken ob du
> nicht vielleicht Potentialfreiheit benoetigst.
Habe das bis jetzt als unkritisch gesehen, da die TC Adern direkt an die 
Eingänge gehen würden. Bitte um Korrektur wenn dies nicht möglich ist.

> Warum? Mal absehen davon das es durchaus auch Microcontroller mit 8xSPI
> gibt wenn man aufhoert sich bei ARduinokram umzuschauen, es ist kein
> Problem SPI per Software zu machen und dabei 8Bit auf einmal
> einzulesen.Anstatt QSPI dann OSPI. :-)
Naja, mit Arduino und ähnlichem komme ich im Moment ganz gut zurecht und 
hab das meiste zur Hand.


Die Kreuzung an welcher ich stehe ist eigentlich ob ich mit TC-digital 
(sehe ich jetzt als einfachere Umsetzung, und kein AD Fehler dazukommt) 
zumindest in eine Größenordnung von TC-analog komme?! (Bitte die 
Ausdrücke TC-analog/digital zu entschuldigen, denke ihr wisst was ich 
damit meine)

Dankeschön

von Darko J. (darko_j)


Lesenswert?

> Beim MAX6695 kannst über das "Conversion Rate Control Register"
> einstellen, wie schnell er abtastet. (8S/s maximal).
>
> Bei den anderen ICs war ich jetzt zu faul, um ins Datenblatt zu schauen
> ;-)

Beim Max31855 ist eine Tcalc mit 100ms angegeben, dh doch dass der 
Bautein selbst für die Cold Junction etc. 100ms benötigt. Also ich mit 
max 10Hz einen neuen Wert bekomme?!

von Lurchi (Gast)


Lesenswert?

Ein wichtige Frage wäre ob die Thermoelemente Galvanisch getrennt sind. 
Wenn es schnell sein soll hat man ja gerne das TE im direkten Kontakt. 
Die 2. Frage ist dann wie genau es denn werden muss - einen 10 Bit ADC 
hätte der µC schon intern.

Für viele Kanäle und wenn man sowieso schon einen µC hat, könnte man 
ggf. die Kaltstellenkompensation von Hand (analog oder im µC, 1 Sensor 
für alle Kaltstellen zusammen) machen und bräuchte keine speziellen 
Chips für Thermoelemente.

Direkt am Eingang per MUX umschalten und dann nacheinander zu messen 
wäre vom Rauschen her ungünstig. Besser wäre für jeden Kanal einen 
Verstärker und filter. Danach könnte man per MUX auf einen ADC gehen, 
ein eigener ADC je Kanal bringt da kaum noch Vorteile, außer ggf. eine 
gleichzeitige Abtastung.

SPI ist in der Regel schneller als I2C, aber für nur 8 mal 200 Hz 
Abtastrate ist das noch nicht so kritisch. Bei schnellerer Abtastung um 
näher an ein Gleichzeitig zu kommen und Aliasing zu verringern wird man 
wohl eher ein SPI Interface finden.

von Achim S. (Gast)


Angehängte Dateien:

Lesenswert?

Darko J. schrieb:
> Also ich mit
> max 10Hz einen neuen Wert bekomme?!

im Worst case: ja. (typisch ist er ein bisschen schneller und braucht 
nur 70ms statt 100ms)

von Darko J. (darko_j)


Lesenswert?

> Für viele Kanäle und wenn man sowieso schon einen µC hat, könnte man
> ggf. die Kaltstellenkompensation von Hand (analog oder im µC, 1 Sensor
> für alle Kaltstellen zusammen) machen und bräuchte keine speziellen
> Chips für Thermoelemente.
>
> Direkt am Eingang per MUX umschalten und dann nacheinander zu messen
> wäre vom Rauschen her ungünstig. Besser wäre für jeden Kanal einen
> Verstärker und filter. Danach könnte man per MUX auf einen ADC gehen,
> ein eigener ADC je Kanal bringt da kaum noch Vorteile, außer ggf. eine
> gleichzeitige Abtastung.

Diese Lösung klingt im Moment ganz gut. Bis auf den preis kann ich ja 
zur Sicherheit immer OPV mit galv. Entkopplung verwenden. Als 
Kompensationsstelle kann ich dann trotzdem einen digitalen Tempbaustein 
nehmen.
Dadurch dass ich nur einen Bereich bis 200°C benötige kann somit den 
Vorteil nutzen dass ich die Verstärkung höher wählen kann und den Fehler 
durch AD Wandlung reduziere.

Mal sehen was in den Schubladen rumkugelt... ;)

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Darko,
darf man fragen, was die Anwendung ist?
Bin nur neugierig, so eine schnelle Temperaturabfrage habe ich mit 
physisch gekoppelten Sensoren noch nie gesehen.
Berührungslos, mit IR-Sensoren schon eher.

Abgesehen davon habe ich ein paar Parameter nicht gefunden:
- SNR?
- Bandbreite?

Oder im Zeitbereich gefragt - bei Tastrate 200Hz:
- wieviele Bits Auflösung?
- wieviele Bits Genauigkeit?

Danke Dir,
 marcus

von Wolfgang (Gast)


Lesenswert?

Mit 65ms Zeitkonstante, wie sie in der Ozeanographie für Messung von 
Temperaturprofilen weit verbreitet ist, kommt man sich da noch richtig 
langsam vor.
http://www.seabird.com/sbe3plus-ctd-temperature-sensor

von Lurchi (Gast)


Lesenswert?

Wenn die Thermoelemente nicht isoliert sind müsste man schon eine 
Differenzmessung machen. Also eher für jeden Eingang einen 
Differenzverstärker / Instrumentenverstärker. Ein einfacher OP bringt 
noch keine Trennung.

Mit dünnen Drähten, so dass es schnell wird, ist so ein Thermoelement 
ggf. auch nicht mehr so niederohmig, und recht empfindlich auf Störungen 
durch Turbulenzen in der Luft.

100 Hz sind aber auch schon recht schnell - wenn es geht würde ich hier 
ggf. auf 50 Hz Abtastrate runter gehen (zumindest in der Auswertung), 
einfach um 50 Hz Störungen zu unterdrücken. Die eigentliche Messung mit 
dem ADC sollte schneller sein, um nicht noch Verzögerungen vom 
Anti-Aliasing Filter zu bekommen. Also etwas das Filter mit 100-200 Hz 
Grenzfrequenz, dann mit 1 kHz abtasten und runter rechnen auf z.B. 50 / 
100 oder 200 Hz.

von Christoph (gizmo)


Lesenswert?

Mit dem MAX31855 wäre ich übrigens vorsichtig, der gibt ständig falsche 
Messwerte aus wenn du mit einem Handy in der Nähe bist und gibt komplett 
auf wenn du dann auchnoch telefonierst. Externe Filterung mit 
Kondensatoren und Ferriten hat bei mir nichts gebracht, vermutlich fängt 
der sich die Störungen direkt im Chip ein.

Ist Maxim anscheinend auch bekannt, steht aber nicht im Datenblatt 
sondern auf deren Website im FAQ dazu: However, for high-frequency noise 
(> 100MHz), the MAX31855's ADC will produce large offset readings. As an 
alternative, the MAX31856 was designed to have 50Hz/60Hz notch filtering 
as well as EMI/RF noise filters.

Platine war nur in einem Plastikgehäuse, vermutlich nicht so schlimm 
wenn man ihn abschirmt.

Wir sind dann auf Chopper-OpAmp + ADC + SPI-Temperaturfühler (für 
Cold-Junction) umgestiegen und linearisieren das ganze dann noch im 
Mikrocontroller (Tabellen dafür gibts bei NIST 
http://srdata.nist.gov/its90/download/download.html oder vermutlich im 
Datenblatt des Thermoelements).

Ist im Prinzip ja ganz einfach, hier als Beispiel eine TI AppNote 
http://www.ti.com/lit/an/snoa544a/snoa544a.pdf

Die Geschwindigkeit und externe Filter kannst du dann auch je nachdem 
welche Teile du verwendest selbst bestimmen.
Wichtig ist allerdings eine negative Versorgung für den Amp wenn du auch 
unterhalb der Umgebungstemperatur messen willst, weil das Thermoelement 
dann eine negative Spannung ausgibt.

: Bearbeitet durch User
von lizenzierter Funkloch Bohrspezialist (Gast)


Lesenswert?

Ich verwende standardmaessig den AD7799, aber wenn's schneller sein muss 
auch den AD7738 oder AD7739.

Man sollte durchaus die anfortderungen hinterfragen, auch wenn der 
Poster das nicht mag. Mit 100Hz abtasten bedeutet die Zeitkonstante des 
Prozesses ist in den 100ms - Sekunden. Ein Messwert kommt immer raus, 
aber ob er der Realitaet entspricht ?

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.