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());
|
||||
|
||||
// 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
|
||||
SETUP_RUN(L64xxManager.init()); // Set up SPI, init drivers
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2256,16 +2256,12 @@ void Temperature::disable_all_heaters() {
|
|||
|
||||
#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 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
|
||||
#define WRITE_MAX6675(V) WRITE(MAX6675_SS2_PIN, V)
|
||||
#define SET_OUTPUT_MAX6675() SET_OUTPUT(MAX6675_SS2_PIN)
|
||||
#else
|
||||
#define WRITE_MAX6675(V) WRITE(MAX6675_SS_PIN, V)
|
||||
#define SET_OUTPUT_MAX6675() SET_OUTPUT(MAX6675_SS_PIN)
|
||||
#endif
|
||||
|
||||
SET_OUTPUT_MAX6675();
|
||||
WRITE_MAX6675(LOW); // enable TT_MAX6675
|
||||
|
||||
DELAY_NS(100); // Ensure 100ns delay
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue