Marlin: подключение BTT MAX31865 V2.0

На примере платы управления SKR 2 Rev.A

Настройка платы управления

Гнездо драйвера, выбранное для установки BTT MAX31865 V2.0, необходимо настроить на SPI-управление в соответствии с инструкцией к плате управления. В данном примере это гнездо E1. Остальные гнезда драйверов настраиваются в соответствии с инструкциями к драйверам и плате управления.

 

Настройка модуля BTT MAX31865 V2.0

Модули BigTreeTech MAX31865 V2.0 предназначены для работы с датчиками температуры PT100 илиPT1000, подключаемыми по двух-, трех- и четырехпроводной схеме (на схему подключения указывает количество контактов на конце провода датчика).

Подробное описание настройки смотрите в инструкции к BTT MAX31865 V2.0.

Положение движков переключателя выбирается в соответствии с применяемым датчиком и схемой подключения.

Например, для датчика PT100 с двухпроводным подключением DIP-переключатель должен быть настроен так:1 = ON, 2 = ON, 3 = ON, 4 = OFF.

Перед изменением положений DIP-переключателей на модуле BTT MAX31865 V2.0 не забудьте выключить питание платы управления!

Датчик DIP-1 DIP-2 DIP-3 DIP-4
2-п. PT100 ON ON ON OFF
2-п. PT1000 ON ON OFF ON
3-п. PT100 OFF ON ON OFF
3-п. PT1000 OFF ON OFF ON
4-п. PT100 OFF OFF ON OFF
4-п. PT1000 OFF OFF OFF ON

 

Настройка прошивки Marlin 2

Файл Configuration.h

Выбрать датчик температуры MAX31865:

#define TEMP_SENSOR_0 -5

Настроить параметры MAX31865 (в данном примере для PT1000):

// Resistor values when using MAX31865 sensors (-5) on TEMP_SENSOR_0 / 1
#define MAX31865_SENSOR_OHMS_0 1000 // (Ω) Typically 100 or 1000 (PT100 or PT1000)
#define MAX31865_CALIBRATION_OHMS_0 4300 // (Ω) Typically 430 for Adafruit PT100; 4300 for Adafruit PT1000

Файл Configuration_adv.h

Указать максимальное число ошибок датчика:

#define THERMOCOUPLE_MAX_ERRORS 20

Указать максимальное число ошибок датчика для срабатывания ошибки недостаточного нагрева:

#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 10

Добавить в выдачу команды M105 значения АЦП, для чего раскомментировать строку:

#define SHOW_TEMP_ADC_VALUES

Добавить команду M115 для дополнительной диагностики, для чего раскомментировать строку:

#define EXTENDED_CAPABILITIES_REPORT #if ENABLED(EXTENDED_CAPABILITIES_REPORT)
    #define M115_GEOMETRY_REPORT
#endif

При необходимости можно добавить небольшую задержку перед тем, как прошивка начнёт отслеживать нагрев хотэнда:

#define MILLISECONDS_PREHEAT_TIME 100

При желании можно задействовать блок тонких дополнительных настроек для модулей АЦП термодатчиков, позволяющий задействовать различные фильтры помех, ошибок и т.п.

/**
* Thermocouple Options — for MAX6675 (-2), MAX31855 (-3), and MAX31865 (-5).
*/
//#define TEMP_SENSOR_FORCE_HW_SPI // Ignore SCK/MOSI/MISO pins; use CS and the default SPI bus.
//#define MAX31865_SENSOR_WIRES_0 2 // (2-4) Number of wires for the probe connected to a MAX31865 board.
//#define MAX31865_SENSOR_WIRES_1 2

#define MAX31865_50HZ_FILTER // Use a 50Hz filter instead of the default 60Hz.
#define MAX31865_USE_READ_ERROR_DETECTION // Treat value spikes (20°C delta in under 1s) as read errors.

#define MAX31865_USE_AUTO_MODE // Read faster and more often than 1-shot; bias voltage always on; slight effect on RTD temperature.
//#define MAX31865_MIN_SAMPLING_TIME_MSEC 100 // (ms) 1-shot: minimum read interval. Reduces bias voltage effects by leaving sensor unpowered for longer intervals.
#define MAX31865_IGNORE_INITIAL_FAULTY_READS 10 // Ignore some read faults (keeping the temperature reading) to work around a possible issue (#23439).

//#define MAX31865_WIRE_OHMS_0 0.95f // For 2-wire, set the wire resistances for more accurate readings.
//#define MAX31865_WIRE_OHMS_1 0.0f

Полезно использовать параметры: MAX31865_50HZ_FILTER, MAX31865_USE_READ_ERROR_DETECTION, MAX31865_USE_AUTO_MODE и MAX31865_IGNORE_INITIAL_FAULTY_READS.

Файл pins_BTT_SKR_V2_0_common.h

Отключить настройки выводов драйвера E1 (например, при помощи комментария /*...*/):

/*
#ifndef E1_STEP_PIN
    #define E1_STEP_PIN            PD11
#endif
#ifndef E1_DIR_PIN
    #define E1_DIR_PIN                PD10
#endif
#ifndef E1_ENABLE_PIN
    #define E1_ENABLE_PIN        PD13
#endif
#ifndef E1_CS_PIN
    #define E1_CS_PIN                PD12
#endif
*/

Добавлить настройки выводов BTT MAX31865 V2.0:

#define TEMP_0_MISO_PIN        PA14
#define TEMP_0_SCK_PIN        PE15
#define TEMP_0_MOSI_PIN        PE14
#define TEMP_0_CS_PIN        PD12

Номера выводов MISO (PA14), SCK (PE15) и MOSI (PE14) берутся из этой части pin-файла платы управления:

//
// Software SPI pins for TMC2130 stepper drivers
//
#if ENABLED(TMC_USE_SW_SPI)
    #ifndef TMC_SW_MOSI
        #define TMC_SW_MOSI        PE14
    #endif
    #ifndef TMC_SW_MISO
        #define TMC_SW_MISO        PA14
    #endif
    #ifndef TMC_SW_SCK
        #define TMC_SW_SCK        PE15
    #endif
#endif

Номер вывода CS (PD12) берётся из ранее отключенных (показаны выше) настроек для E1.

 

Поблагода₽ить за помощь

Если эта заметка оказалась для вас полезна, вы можете отблагодарить меня за проделанную для вас работу любой суммой на своё усмотрение, перейдя по данной ссылке.