Probleme mit MAX31865, Wert zu klein

OP (Firma: privat) #7810743
Lesenswert?

Hallo zusammen,

ich wollte die Temperatur mittels PT100 erfassen und habe mir dazu den MAX31865 auf den kleinen Boards besorgt. Entwickelt wird mit Atmelstudio auf einen ATMega328P den Source für die SPI-MAX Libs habe ich von https://github.com/GeorgeShift/max_31865/ heruntergeladen.

der Fühler hat eine 15cm lange Anschlußleitung, der MAX31865 & Das PT100 sind in 2-Wire verkabelt. Widerstand am Fühler sind ~109 Ohm, was mit der Raumtemperatur in etwa übereinstimmt.

Den MAX lese ich im Singleshot aus was auch klappt

max_spi_write(CONFIGURATION, 0b10100000);

lsb_rtd = max_spi_read(READ_RTD_LSB); msb_rtd = max_spi_read(READ_RTD_MSB);

RTD = ((msb_rtd << 7)+((lsb_rtd & 0xFE) >> 1)); if (datatype == 'r') return RTD;

// Basic temperature calculation, the accuracy for temperatures // between -75°C - 100°C is max +-1.5°C temperature = ( (long)10*RTD >> 5) - 2560; // RTD / 32 - 256 if (datatype == 't') return temperature;

das Problem ist, das der gelesene Wert ~15°C zu wenig anzeigt.

Ich habe das mit 3 dieser Boards getestet.

Aktuell lese ich alle Register aus die Ergebnisse:

RTD Low Fault Threshold High Fault Threshold

LSB 84 0 255 MSB 65 0 255

RTD gesamt 8362 //RTD = ((msb_rtd << 7)+((lsb_rtd & 0xFE) >> 1));

Faultstatus= 0

hat jemand ne Idee warum das Ergebnis so aussieht? Das Ergebnis ändert sich auch mit max_spi_write(CONFIGURATION, 0b10000000); nicht.

Grüße Klaus

Angehängte Dateien:
#7810793
Lesenswert?

Ich bin mir nicht sicher, ob 15 °C Abweichung wirklich hiervon kommen können, aber trotzdem der Hinweis von mir: Ich habe vor kurzen in einem Projekt vier dieser MAX31865 Boards eingesetzt. Alle vier Boards kamen von eBay und nach der Inbetriebnahme haben alle vier Boards eine unterschiedliche Temperatur gemessen (Abweichung einige °C). Die Ursache war der Referenzwiderstand (ist auf der Platine mit "Rref" beschriftet). Wenn du das Datenblatt des MAX31865 liest, wirst du feststellen, dass der Strom, der durch den RTD fließt, auch durch den Referenzwiderstand fließt und der Spannungsabfall über dem Referenzwiderstand als Referenz für den ADC verwendet wird. Nach einer kurzen Messung mit dem Multimeter konnte ich feststellen, dass der Widerstand zwischen den Boards jeweils um einige Ohm abweichte - vermutlich wurden Widerstände mit 5 % Toleranz bestückt. Nachdem ich bei allen vier Boards den Widerstand durch einen mit 0,1 % Toleranz ersetzt habe, haben alle Boards die identische Temperatur angezeigt.

Ich habe gerade auch nochmal einen Blick in das Datenblatt geworfen, hier ist von einem 400 Ohm Referenzwiderstand die Rede. Bei meinen Boards waren aber Widerstände mit 430 Ohm verbaut. Evtl. muss die Konfiguration abhängig vom Referenzwiderstand angepasst werden...? Ich habe leider im Moment nicht die Zeit, das Datenblatt im Detail zu lesen, aber evtl. forschst du in die Richtung auch nochmal nach.

OP (Firma: privat) #7810861
Lesenswert?

Hallo bema16,

es stimmt, das laut Datenblatt 400 Ohm angegeben sind und wenn man das Netz bemüht findet sich bei ADAFRUIT das :

While the MAX31865 can support either 100ohm or 1kohm RTDs, the Adafruit breakout comes in two versions with different reference resistors specific to each type of RTD.

PID 3328 = 430Ω for use with 100ohm RTDs. PID 3648 = 4.3kΩ for use with 1kohm RTDs.

If marking is 4300 or 431 its PT100 If marking is 4301 or 432 its PT1000

gemessen habe ich 430 /429 Ohm was die Konfiguration nach ADAFRUIT bestätigt.

laut Datenblatt wird die Umrechnung mit RRTD = (ADC * RRef)32768 gemacht. Wenn man das mal rechnet, sind das fast 6 Ohm. ich werde mir die 400Ohm besorgen und dann noch mal probieren. Wobei wenn man rechnet (8192*400)/32786 =100 Stellt man das um (100 *32768)/7541 kommen die 431 Ohm raus. passt also, 400 Ohm rein und dann sollte es gehen.

Und wer mit PT1000 arbeitet sollte dann 4000 Ohm einbauen ;-)

Warum dann die 431 Ohm... lagen wahrscheinlich rum

Ich werde berichten

Danke und Grüße

OP (Firma: privat) #7811038
Lesenswert?

Du hast vollkommen recht, Asche auf mein Haupt ;-)

Ich hatte die Widerstände ausgelötet und gemessen und dabei den Wert hier mitgeteilt.

Warum dann die 431 Ohm

die Übernahme des gemessenen Wertes, weiter oben steht das Marking richtig

danke für die Korrektur.

OP (Firma: privat) #7812685
Lesenswert?

Hallo zusammen, die bestellten Widerstände sind angekommen. wie richtig bemerkt gibt es keine 400Ohm mit der Toleranz von 1% und kleiner daher 2x200Ohm (Marking 201) in Reihe. Das funktioniert jetzt wunderbar. Danke Bema16.

Das nächste mal werde ich die ironisch gemeinten Bemerkungen irgendwie kennzeichnen ;-)

ADAFRUIT und Co sollten das ggf. mit dem Referenzwiderstand in ihren Beschreibungen erwähnen, das hätte einiges erspart.

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren