MAX31865

Breakout boards, sensors, other Adafruit kits, etc.

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
brekeke
 
Posts: 3
Joined: Thu Sep 20, 2018 2:16 am

MAX31865

Post by brekeke »

Hi friends.
I have a problem. I use MAX31865to measure temerature from PT1000.

And I have a problem. I can't measure.

I have got set a fault register..... You can see this in picture with the labels. Any idea, what is wrong? I tried everything, but nothing help.

And I init this device with write to 0x80 value 0xC3.
Attachments
registers_max31865.PNG
registers_max31865.PNG (61.58 KiB) Viewed 364 times
added label for communication
added label for communication
register_max31865.png (31.12 KiB) Viewed 365 times

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: MAX31865

Post by adafruit_support_bill »

What processor are you using? And what code are you using to test with?

User avatar
brekeke
 
Posts: 3
Joined: Thu Sep 20, 2018 2:16 am

Re: MAX31865

Post by brekeke »

I use STM32F767 with my write/read function.

And this is only one chip, where is my code didn't work.
I communicate with
  • AD7927
    LTC2945
    etc...
With logic analyzer, I didn't see no problem.

I see one problem....

After I send register to MAX the SDO pin go down. You can see it on my picture.
Attachments
sdo_problem.png
sdo_problem.png (47.71 KiB) Viewed 349 times

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: MAX31865

Post by adafruit_support_bill »

Please try with one of the known working libraries. We have working libraries in both C++ and Python to work with Just about any Arduino-compatible processor, or Raspberry Pi.

https://learn.adafruit.com/adafruit-max ... duino-code
https://learn.adafruit.com/adafruit-max ... cuitpython

User avatar
brekeke
 
Posts: 3
Joined: Thu Sep 20, 2018 2:16 am

Re: MAX31865

Post by brekeke »

Ok. I use arduino and your board. And temperature is here:
  • RTD value: 0
    Ratio = 0.00000000
    Resistance = 0.00000000
    Temperature = -242.02
I create picture, with some logic analyzer datas..... It start after restart MCU.

You can see communication is good. But result data is bad.

And program is here:

Code: Select all

/*************************************************** 
  This is a library for the Adafruit PT100/P1000 RTD Sensor w/MAX31865

  Designed specifically to work with the Adafruit RTD Sensor
  ----> https://www.adafruit.com/products/3328

  This sensor uses SPI to communicate, 4 pins are required to  
  interface
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include <Adafruit_MAX31865.h>

#define LED_pin   72

/* SPI pins */
#define CS_pin    10
#define SCL_pin   76
#define MOSI_pin  74
#define MISO_pin  75

// Use software SPI: CS, DI, DO, CLK
Adafruit_MAX31865 max = Adafruit_MAX31865(CS_pin, MOSI_pin, MISO_pin, SCL_pin);

#define RREF      4000.0
#define RNOMINAL  1000.0

void setup() 
{
  pinMode(LED_pin, OUTPUT);
  
  Serial.begin(115200);
  Serial.println("MAX31865 PT100 Sensor Test!");

  max.begin(MAX31865_4WIRE);  // set to 2WIRE or 4WIRE as necessary
}


void loop() 
  {
  uint16_t rtd = max.readRTD();

  Serial.print("RTD value: "); Serial.println(rtd);
  float ratio = rtd;
  ratio /= 32768;
  Serial.print("Ratio = "); Serial.println(ratio,8);
  Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
  Serial.print("Temperature = "); Serial.println(max.temperature(RNOMINAL, RREF));

  // Check and print any faults
  uint8_t fault = max.readFault();
  if (fault) {
    Serial.print("Fault 0x"); Serial.println(fault, HEX);
    if (fault & MAX31865_FAULT_HIGHTHRESH) {
      Serial.println("RTD High Threshold"); 
    }
    if (fault & MAX31865_FAULT_LOWTHRESH) {
      Serial.println("RTD Low Threshold"); 
    }
    if (fault & MAX31865_FAULT_REFINLOW) {
      Serial.println("REFIN- > 0.85 x Bias"); 
    }
    if (fault & MAX31865_FAULT_REFINHIGH) {
      Serial.println("REFIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_RTDINLOW) {
      Serial.println("RTDIN- < 0.85 x Bias - FORCE- open"); 
    }
    if (fault & MAX31865_FAULT_OVUV) {
      Serial.println("Under/Over voltage"); 
    }
    max.clearFault();
  }
  Serial.println();
  digitalWrite(LED_pin, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(10);
  digitalWrite(LED_pin, LOW);    // turn the LED off by making the voltage LOW
  delay(10);
}
Attachments
error_1.PNG
error_1.PNG (9.75 KiB) Viewed 338 times
error.png
error.png (63.03 KiB) Viewed 338 times

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: MAX31865

Post by adafruit_support_bill »

Please post some photos showing your soldering and connections to the board.

User avatar
MatteoCirceo
 
Posts: 6
Joined: Mon Sep 17, 2018 12:34 pm

Re: MAX31865

Post by MatteoCirceo »

adafruit_support_bill wrote:Please post some photos showing your soldering and connections to the board.
Hi guys, I have the same error and I use the raspberry pi zero ...
How to do the welding in the right way?
I use a 2-wire PT1000 sensor.

https://imgur.com/VzIJmQn

User avatar
adafruit_support_bill
 
Posts: 88087
Joined: Sat Feb 07, 2009 10:11 am

Re: MAX31865

Post by adafruit_support_bill »

@MatteoCirceo - Please start a new thread for your question.

Locked
Please be positive and constructive with your questions and comments.

Return to “Other Products from Adafruit”