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
> 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
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 ;-)
> 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
> 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?!
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.
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)
> 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... ;)
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
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.