Fix MAX6675 SPI init conflict with TMC and others
This commit is contained in:
parent
53e79224fc
commit
b3a2b1a6b9
2 changed files with 14 additions and 4 deletions
|
|
@ -991,6 +991,20 @@ void setup() {
|
||||||
|
|
||||||
SETUP_RUN(HAL_init());
|
SETUP_RUN(HAL_init());
|
||||||
|
|
||||||
|
// Early-disable MAX6675, as it can flood on SPI bus and prevent TMC and others to init correctly
|
||||||
|
// thermalManager.init() called too late to do this
|
||||||
|
#if HAS_MAX6675
|
||||||
|
#if ENABLED(HEATER_0_USES_MAX6675)
|
||||||
|
SET_OUTPUT(MAX6675_SS_PIN); // Setup CS pin
|
||||||
|
WRITE(MAX6675_SS_PIN, HIGH); // Disable TT_MAX6675
|
||||||
|
#endif
|
||||||
|
#if ENABLED(HEATER_1_USES_MAX6675)
|
||||||
|
SET_OUTPUT(MAX6675_SS2_PIN); // Setup CS pin
|
||||||
|
WRITE(MAX6675_SS2_PIN, HIGH); // Disable TT_MAX6675
|
||||||
|
#endif
|
||||||
|
DELAY_NS(100); // Ensure 100ns delay
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAS_L64XX
|
#if HAS_L64XX
|
||||||
SETUP_RUN(L64xxManager.init()); // Set up SPI, init drivers
|
SETUP_RUN(L64xxManager.init()); // Set up SPI, init drivers
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -2256,16 +2256,12 @@ void Temperature::disable_all_heaters() {
|
||||||
|
|
||||||
#if COUNT_6675 > 1
|
#if COUNT_6675 > 1
|
||||||
#define WRITE_MAX6675(V) do{ switch (hindex) { case 1: WRITE(MAX6675_SS2_PIN, V); break; default: WRITE(MAX6675_SS_PIN, V); } }while(0)
|
#define WRITE_MAX6675(V) do{ switch (hindex) { case 1: WRITE(MAX6675_SS2_PIN, V); break; default: WRITE(MAX6675_SS_PIN, V); } }while(0)
|
||||||
#define SET_OUTPUT_MAX6675() do{ switch (hindex) { case 1: SET_OUTPUT(MAX6675_SS2_PIN); break; default: SET_OUTPUT(MAX6675_SS_PIN); } }while(0)
|
|
||||||
#elif HEATER_1_USES_MAX6675
|
#elif HEATER_1_USES_MAX6675
|
||||||
#define WRITE_MAX6675(V) WRITE(MAX6675_SS2_PIN, V)
|
#define WRITE_MAX6675(V) WRITE(MAX6675_SS2_PIN, V)
|
||||||
#define SET_OUTPUT_MAX6675() SET_OUTPUT(MAX6675_SS2_PIN)
|
|
||||||
#else
|
#else
|
||||||
#define WRITE_MAX6675(V) WRITE(MAX6675_SS_PIN, V)
|
#define WRITE_MAX6675(V) WRITE(MAX6675_SS_PIN, V)
|
||||||
#define SET_OUTPUT_MAX6675() SET_OUTPUT(MAX6675_SS_PIN)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SET_OUTPUT_MAX6675();
|
|
||||||
WRITE_MAX6675(LOW); // enable TT_MAX6675
|
WRITE_MAX6675(LOW); // enable TT_MAX6675
|
||||||
|
|
||||||
DELAY_NS(100); // Ensure 100ns delay
|
DELAY_NS(100); // Ensure 100ns delay
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue