Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert MAX31865 recent changes #22660

Merged
merged 3 commits into from
Aug 31, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Marlin/src/inc/Conditionals_post.h
Original file line number Diff line number Diff line change
Expand Up @@ -755,13 +755,13 @@
// to select a USER library for MAX6675, MAX31855, MAX31865
//
#if BOTH(HAS_MAX6675, LIB_MAX6675)
#define LIB_USR_MAX6675 1
#define USE_LIB_MAX6675 1
#endif
#if BOTH(HAS_MAX31855, LIB_MAX31855)
#define LIB_USR_MAX31855 1
#define USE_ADAFRUIT_MAX31855 1
#endif
#if BOTH(HAS_MAX31865, LIB_MAX31865)
#define LIB_USR_MAX31865 1
#define USE_ADAFRUIT_MAX31865 1
#elif HAS_MAX31865
#define LIB_INTERNAL_MAX31865 1
#endif
Expand Down
38 changes: 23 additions & 15 deletions Marlin/src/libs/MAX31865.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,11 @@
//#define MAX31865_DEBUG
//#define MAX31865_DEBUG_SPI

#include <SoftwareSPI.h>

#include "../inc/MarlinConfig.h"

#if HAS_MAX31865 && !LIB_USR_MAX31865
#if HAS_MAX31865 && !USE_ADAFRUIT_MAX31865

//#include <SoftwareSPI.h> // TODO: switch to SPIclass/SoftSPI
#include "MAX31865.h"

// The maximum speed the MAX31865 can do is 5 MHz
Expand All @@ -62,7 +61,7 @@ SPISettings MAX31865::spiConfig = SPISettings(
500000
#endif
, MSBFIRST
, SPI_MODE1 // CPOL0 CPHA1
, SPI_MODE_1 // CPOL0 CPHA1
);

#ifndef LARGE_PINMAP
Expand Down Expand Up @@ -153,25 +152,24 @@ void MAX31865::begin(max31865_numwires_t wires, float zero, float ref) {
OUT_WRITE(_cs, HIGH);

if (_sclk != TERN(LARGE_PINMAP, -1UL, -1)) {
// define pin modes for Software SPI
// Define pin modes for Software SPI
#ifdef MAX31865_DEBUG
SERIAL_ECHOLN("Initializing MAX31865 Software SPI");
#endif

swSpiBegin(_sclk, _miso, _mosi);

} else {
// start and configure hardware SPI

OUT_WRITE(_sclk, LOW);
SET_OUTPUT(_mosi);
SET_INPUT(_miso);
}
else {
// Start and configure hardware SPI
#ifdef MAX31865_DEBUG
SERIAL_ECHOLN("Initializing MAX31865 Hardware SPI");
#endif

SPI.begin();
}

// SPI Begin must be called first, then init
_spi_speed = swSpiInit(SPI_QUARTER_SPEED, _sclk, _mosi);

setWires(wires);
enableBias(false);
autoConvert(false);
Expand Down Expand Up @@ -486,7 +484,17 @@ uint8_t MAX31865::spixfer(uint8_t x) {
if (_sclk == TERN(LARGE_PINMAP, -1UL, -1))
return SPI.transfer(x);

return swSpiTransfer(x, _spi_speed, _sclk, _miso, _mosi);
uint8_t reply = 0;
for (int i = 7; i >= 0; i--) {
reply <<= 1;
WRITE(_sclk, HIGH);
WRITE(_mosi, x & (1 << i));
WRITE(_sclk, LOW);
if (READ(_miso))
reply |= 1;
}

return reply;
}

#endif // HAS_MAX31865 && !LIB_USR_MAX31865
#endif // HAS_MAX31865 && !USE_ADAFRUIT_MAX31865
1 change: 0 additions & 1 deletion Marlin/src/libs/MAX31865.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,6 @@ class MAX31865 {
static SPISettings spiConfig;

TERN(LARGE_PINMAP, uint32_t, uint8_t) _sclk, _miso, _mosi, _cs;
uint8_t _spi_speed;
float Rzero, Rref;

void setConfig(uint8_t config, bool enable);
Expand Down
6 changes: 3 additions & 3 deletions Marlin/src/module/temperature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,21 +63,21 @@

// LIB_MAX6675 can be added to the build_flags in platformio.ini to use a user-defined library
// If LIB_MAX6675 is not on the build_flags then raw SPI reads will be used.
#if HAS_MAX6675 && LIB_USR_MAX6675
#if HAS_MAX6675 && USE_LIB_MAX6675
#include <max6675.h>
#define HAS_MAX6675_LIBRARY 1
#endif

// LIB_MAX31855 can be added to the build_flags in platformio.ini to use a user-defined library.
// If LIB_MAX31855 is not on the build_flags then raw SPI reads will be used.
#if HAS_MAX31855 && LIB_USR_MAX31855
#if HAS_MAX31855 && USE_ADAFRUIT_MAX31855
#include <Adafruit_MAX31855.h>
#define HAS_MAX31855_LIBRARY 1
typedef Adafruit_MAX31855 MAX31855;
#endif

#if HAS_MAX31865
#if LIB_USR_MAX31865
#if USE_ADAFRUIT_MAX31865
#include <Adafruit_MAX31865.h>
typedef Adafruit_MAX31865 MAX31865;
#else
Expand Down