|
|
|
@ -88,40 +88,168 @@
|
|
|
|
|
* Serial3 | P0_00 | P0_01 |
|
|
|
|
|
*/
|
|
|
|
|
#if (defined(SERIAL_PORT) && SERIAL_PORT == 0) || (defined(SERIAL_PORT_2) && SERIAL_PORT_2 == 0) || (defined(DGUS_SERIAL_PORT) && DGUS_SERIAL_PORT == 0)
|
|
|
|
|
#if X_CS_PIN == P0_02 || TMC_SW_MISO == P0_02 || (E_STEPPERS && E_MUX1_PIN == P0_02) \
|
|
|
|
|
|| Y_CS_PIN == P0_03 || TMC_SW_MOSI == P0_03 || (E_STEPPERS && E_MUX0_PIN == P0_03)
|
|
|
|
|
#error "Serial port assignment (0) conflicts with other pins!"
|
|
|
|
|
#define IS_TX0(P) (P == P0_02)
|
|
|
|
|
#define IS_RX0(P) (P == P0_03)
|
|
|
|
|
#if IS_TX0(TMC_SW_MISO) || IS_RX0(TMC_SW_MOSI)
|
|
|
|
|
#error "Serial port pins (0) conflict with Trinamic SPI pins!"
|
|
|
|
|
#elif ENABLED(MK2_MULTIPLEXER) && (IS_TX0(E_MUX1_PIN) || IS_RX0(E_MUX0_PIN))
|
|
|
|
|
#error "Serial port pins (0) conflict with MK2 multiplexer pins!"
|
|
|
|
|
#elif (AXIS_HAS_SPI(X) && IS_TX0(X_CS_PIN)) || (AXIS_HAS_SPI(Y) && IS_RX0(Y_CS_PIN))
|
|
|
|
|
#error "Serial port pins (0) conflict with X/Y axis SPI pins!"
|
|
|
|
|
#endif
|
|
|
|
|
#undef IS_TX0
|
|
|
|
|
#undef IS_RX0
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if SERIAL_PORT == 1 || SERIAL_PORT_2 == 1 || DGUS_SERIAL_PORT == 1
|
|
|
|
|
#if TMC_SW_SCK == P0_15
|
|
|
|
|
#error "Serial port assignment (1) conflicts with other pins!"
|
|
|
|
|
#define IS_TX1(P) (P == P0_15)
|
|
|
|
|
#define IS_RX1(P) (P == P0_16)
|
|
|
|
|
#if IS_TX1(TMC_SW_SCK)
|
|
|
|
|
#error "Serial port pins (1) conflict with other pins!"
|
|
|
|
|
#elif HAS_SPI_LCD
|
|
|
|
|
#if BTN_EN2 == P0_15 || SCK_PIN == P0_15 || LCD_PINS_D4 == P0_15 || DOGLCD_SCK == P0_15 || LCD_RESET_PIN == P0_15 || LCD_PINS_RS == P0_15 || SHIFT_CLK == P0_15 \
|
|
|
|
|
|| BTN_EN1 == P0_16 || LCD_SDSS == P0_16 || LCD_PINS_RS == P0_16 || MISO_PIN == P0_16 || DOGLCD_A0 == P0_16 || SS_PIN == P0_16 || LCD_SDSS == P0_16 || DOGLCD_CS == P0_16 || LCD_RESET_PIN == P0_16 || LCD_BACKLIGHT_PIN == P0_16
|
|
|
|
|
#error "Serial port assignment (1) conflicts with other pins!"
|
|
|
|
|
#if IS_TX1(BTN_EN2) || IS_RX1(BTN_EN1)
|
|
|
|
|
#error "Serial port pins (1) conflict with Encoder Buttons!"
|
|
|
|
|
#elif IS_TX1(SCK_PIN) || IS_TX1(LCD_PINS_D4) || IS_TX1(DOGLCD_SCK) || IS_TX1(LCD_RESET_PIN) || IS_TX1(LCD_PINS_RS) || IS_TX1(SHIFT_CLK) \
|
|
|
|
|
|| IS_RX1(LCD_SDSS) || IS_RX1(LCD_PINS_RS) || IS_RX1(MISO_PIN) || IS_RX1(DOGLCD_A0) || IS_RX1(SS_PIN) || IS_RX1(LCD_SDSS) || IS_RX1(DOGLCD_CS) || IS_RX1(LCD_RESET_PIN) || IS_RX1(LCD_BACKLIGHT_PIN)
|
|
|
|
|
#error "Serial port pins (1) conflict with LCD pins!"
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
#undef IS_TX1
|
|
|
|
|
#undef IS_RX1
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if SERIAL_PORT == 2 || SERIAL_PORT_2 == 2 || DGUS_SERIAL_PORT == 2
|
|
|
|
|
#if Y_MIN_PIN == P0_10 || Z_MIN_PROBE_PIN == P0_10 \
|
|
|
|
|
|| X_ENABLE_PIN == P0_10 || Y_ENABLE_PIN == P0_10 || X2_ENABLE_PIN == P0_10 || Y2_ENABLE_PIN == P0_10 || Z2_ENABLE_PIN == P0_10 || Z3_ENABLE_PIN == P0_10 || Z4_ENABLE_PIN == P0_10 \
|
|
|
|
|
|| X2_CS_PIN == P0_10 || Y2_CS_PIN == P0_10 || Z2_CS_PIN == P0_10 || Z3_CS_PIN == P0_10 || Z4_CS_PIN == P0_10 \
|
|
|
|
|
|| X_DIR_PIN == P0_11 || Y_DIR_PIN == P0_11 || X2_DIR_PIN == P0_11 || Y2_DIR_PIN == P0_11 || Z2_DIR_PIN == P0_11 || Z3_DIR_PIN == P0_11 || Z4_DIR_PIN == P0_11 \
|
|
|
|
|
|| X2_STEP_PIN == P0_11 || Y2_STEP_PIN == P0_11 || Z2_STEP_PIN == P0_11 || Z3_STEP_PIN == P0_11 || Z4_STEP_PIN == P0_11
|
|
|
|
|
#error "Serial port assignment (2) conflicts with other pins!"
|
|
|
|
|
#elif (E_STEPPERS > 1 && (E1_ENABLE_PIN == P0_10 || E1_CS_PIN == P0_10)) || (E_STEPPERS > 0 && (E0_DIR_PIN == P0_11 || E0_STEP_PIN == P0_11))
|
|
|
|
|
#error "Serial port assignment (2) conflicts with other pins!"
|
|
|
|
|
#define IS_TX2(P) (P == P0_10)
|
|
|
|
|
#define IS_RX2(P) (P == P0_11)
|
|
|
|
|
#if IS_TX2(X2_ENABLE_PIN) || IS_RX2(X2_DIR_PIN) || IS_RX2(X2_STEP_PIN) || (AXIS_HAS_SPI(X2) && IS_TX2(X2_CS_PIN))
|
|
|
|
|
#error "Serial port pins (2) conflict with X2 pins!"
|
|
|
|
|
#elif IS_TX2(Y2_ENABLE_PIN) || IS_RX2(Y2_DIR_PIN) || IS_RX2(Y2_STEP_PIN) || (AXIS_HAS_SPI(Y2) && IS_TX2(Y2_CS_PIN))
|
|
|
|
|
#error "Serial port pins (2) conflict with Y2 pins!"
|
|
|
|
|
#elif IS_TX2(Z2_ENABLE_PIN) || IS_RX2(Z2_DIR_PIN) || IS_RX2(Z2_STEP_PIN) || (AXIS_HAS_SPI(Z2) && IS_TX2(Z2_CS_PIN))
|
|
|
|
|
#error "Serial port pins (2) conflict with Z2 pins!"
|
|
|
|
|
#elif IS_TX2(Z3_ENABLE_PIN) || IS_RX2(Z3_DIR_PIN) || IS_RX2(Z3_STEP_PIN) || (AXIS_HAS_SPI(Z3) && IS_TX2(Z3_CS_PIN))
|
|
|
|
|
#error "Serial port pins (2) conflict with Z3 pins!"
|
|
|
|
|
#elif IS_TX2(Z4_ENABLE_PIN) || IS_RX2(Z4_DIR_PIN) || IS_RX2(Z4_STEP_PIN) || (AXIS_HAS_SPI(Z4) && IS_TX2(Z4_CS_PIN))
|
|
|
|
|
#error "Serial port pins (2) conflict with Z4 pins!"
|
|
|
|
|
#elif IS_RX2(X_DIR_PIN) || IS_RX2(Y_DIR_PIN)
|
|
|
|
|
#error "Serial port pins (2) conflict with other pins!"
|
|
|
|
|
#elif Y_HOME_DIR < 0 && IS_TX2(Y_STOP_PIN)
|
|
|
|
|
#error "Serial port pins (2) conflict with Y endstop pin!"
|
|
|
|
|
#elif HAS_CUSTOM_PROBE_PIN && IS_TX2(Z_MIN_PROBE_PIN)
|
|
|
|
|
#error "Serial port pins (2) conflict with probe pin!"
|
|
|
|
|
#elif IS_TX2(X_ENABLE_PIN) || IS_RX2(X_DIR_PIN) || IS_TX2(Y_ENABLE_PIN) || IS_RX2(Y_DIR_PIN)
|
|
|
|
|
#error "Serial port pins (2) conflict with X/Y stepper pins!"
|
|
|
|
|
#elif EXTRUDERS > 1 && (IS_TX2(E1_ENABLE_PIN) || (AXIS_HAS_SPI(E1) && IS_TX2(E1_CS_PIN)))
|
|
|
|
|
#error "Serial port pins (2) conflict with E1 stepper pins!"
|
|
|
|
|
#elif EXTRUDERS && (IS_RX2(E0_DIR_PIN) || IS_RX2(E0_STEP_PIN))
|
|
|
|
|
#error "Serial port pins (2) conflict with E stepper pins!"
|
|
|
|
|
#endif
|
|
|
|
|
#undef IS_TX2
|
|
|
|
|
#undef IS_RX2
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if SERIAL_PORT == 3 || SERIAL_PORT_2 == 3 || DGUS_SERIAL_PORT == 3
|
|
|
|
|
#if X_MIN_PIN == P0_00 || Y_SERIAL_TX_PIN == P0_00 || Y_SERIAL_RX_PIN == P0_00 \
|
|
|
|
|
|| X_MAX_PIN == P0_01 || X_SERIAL_TX_PIN == P0_01 || X_SERIAL_RX_PIN == P0_01
|
|
|
|
|
#error "Serial port assignment (2) conflicts with other pins!"
|
|
|
|
|
#elif E_STEPPERS > 1 && (E1_DIR_PIN == P0_00 || E1_STEP_PIN == P0_01)
|
|
|
|
|
#error "Serial port assignment (2) conflicts with other pins!"
|
|
|
|
|
#define PIN_IS_TX3(P) (PIN_EXISTS(P) && P##_PIN == P0_00)
|
|
|
|
|
#define PIN_IS_RX3(P) (P##_PIN == P0_01)
|
|
|
|
|
#if PIN_IS_TX3(X_MIN) || PIN_IS_RX3(X_MAX)
|
|
|
|
|
#error "Serial port pins (3) conflict with X endstop pins!"
|
|
|
|
|
#elif PIN_IS_TX3(Y_SERIAL_TX) || PIN_IS_TX3(Y_SERIAL_RX) \
|
|
|
|
|
|| PIN_IS_RX3(X_SERIAL_TX) || PIN_IS_RX3(X_SERIAL_RX)
|
|
|
|
|
#error "Serial port pins (3) conflict with X/Y axis UART pins!"
|
|
|
|
|
#elif PIN_IS_TX3(X2_DIR) || PIN_IS_RX3(X2_STEP)
|
|
|
|
|
#error "Serial port pins (3) conflict with X2 pins!"
|
|
|
|
|
#elif PIN_IS_TX3(Y2_DIR) || PIN_IS_RX3(Y2_STEP)
|
|
|
|
|
#error "Serial port pins (3) conflict with Y2 pins!"
|
|
|
|
|
#elif PIN_IS_TX3(Z2_DIR) || PIN_IS_RX3(Z2_STEP)
|
|
|
|
|
#error "Serial port pins (3) conflict with Z2 pins!"
|
|
|
|
|
#elif PIN_IS_TX3(Z3_DIR) || PIN_IS_RX3(Z3_STEP)
|
|
|
|
|
#error "Serial port pins (3) conflict with Z3 pins!"
|
|
|
|
|
#elif PIN_IS_TX3(Z4_DIR) || PIN_IS_RX3(Z4_STEP)
|
|
|
|
|
#error "Serial port pins (3) conflict with Z4 pins!"
|
|
|
|
|
#elif EXTRUDERS > 1 && (PIN_IS_TX3(E1_DIR) || PIN_IS_RX3(E1_STEP))
|
|
|
|
|
#error "Serial port pins (3) conflict with E1 pins!"
|
|
|
|
|
#endif
|
|
|
|
|
#undef PIN_IS_TX3
|
|
|
|
|
#undef PIN_IS_RX3
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Flag any i2c pin conflicts
|
|
|
|
|
//
|
|
|
|
|
#if ANY(DIGIPOT_I2C, DIGIPOT_MCP4018, DAC_STEPPER_CURRENT, EXPERIMENTAL_I2CBUS, I2C_POSITION_ENCODERS, NEOPIXEL_LED, PCA9632, I2C_EEPROM)
|
|
|
|
|
#define USEDI2CDEV_M 1 // <Arduino>/Wire.cpp
|
|
|
|
|
|
|
|
|
|
#if USEDI2CDEV_M == 0 // P0_27 [D57] (AUX-1) .......... P0_28 [D58] (AUX-1)
|
|
|
|
|
#define PIN_IS_SDA0(P) (P##_PIN == P0_27)
|
|
|
|
|
#define IS_SCL0(P) (P == P0_28)
|
|
|
|
|
#if ENABLED(SDSUPPORT) && PIN_IS_SDA0(SD_DETECT)
|
|
|
|
|
#error "SDA0 overlaps with SD_DETECT_PIN!"
|
|
|
|
|
#elif PIN_IS_SDA0(E0_AUTO_FAN)
|
|
|
|
|
#error "SDA0 overlaps with E0_AUTO_FAN_PIN!"
|
|
|
|
|
#elif PIN_IS_SDA0(BEEPER)
|
|
|
|
|
#error "SDA0 overlaps with BEEPER_PIN!"
|
|
|
|
|
#elif IS_SCL0(BTN_ENC)
|
|
|
|
|
#error "SCL0 overlaps with Encoder Button!"
|
|
|
|
|
#elif IS_SCL0(SS_PIN)
|
|
|
|
|
#error "SCL0 overlaps with SS_PIN!"
|
|
|
|
|
#elif IS_SCL0(LCD_SDSS)
|
|
|
|
|
#error "SCL0 overlaps with LCD_SDSS!"
|
|
|
|
|
#endif
|
|
|
|
|
#undef PIN_IS_SDA0
|
|
|
|
|
#undef IS_SCL0
|
|
|
|
|
#elif USEDI2CDEV_M == 1 // P0_00 [D20] (SCA) ............ P0_01 [D21] (SCL)
|
|
|
|
|
#define PIN_IS_SDA1(P) (PIN_EXISTS(P) && P##_PIN == P0_00)
|
|
|
|
|
#define PIN_IS_SCL1(P) (P##_PIN == P0_01)
|
|
|
|
|
#if PIN_IS_SDA1(X_MIN) || PIN_IS_SCL1(X_MAX)
|
|
|
|
|
#error "One or more i2c (1) pins overlaps with X endstop pins! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA1(X2_DIR) || PIN_IS_SCL1(X2_STEP)
|
|
|
|
|
#error "One or more i2c (1) pins overlaps with X2 pins! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA1(Y2_DIR) || PIN_IS_SCL1(Y2_STEP)
|
|
|
|
|
#error "One or more i2c (1) pins overlaps with Y2 pins! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA1(Z2_DIR) || PIN_IS_SCL1(Z2_STEP)
|
|
|
|
|
#error "One or more i2c (1) pins overlaps with Z2 pins! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA1(Z3_DIR) || PIN_IS_SCL1(Z3_STEP)
|
|
|
|
|
#error "One or more i2c (1) pins overlaps with Z3 pins! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA1(Z4_DIR) || PIN_IS_SCL1(Z4_STEP)
|
|
|
|
|
#error "One or more i2c (1) pins overlaps with Z4 pins! Disable i2c peripherals."
|
|
|
|
|
#elif EXTRUDERS > 1 && (PIN_IS_SDA1(E1_DIR) || PIN_IS_SCL1(E1_STEP))
|
|
|
|
|
#error "One or more i2c (1) pins overlaps with E1 pins! Disable i2c peripherals."
|
|
|
|
|
#endif
|
|
|
|
|
#undef PIN_IS_SDA1
|
|
|
|
|
#undef PIN_IS_SCL1
|
|
|
|
|
#elif USEDI2CDEV_M == 2 // P0_10 [D38] (X_ENABLE_PIN) ... P0_11 [D55] (X_DIR_PIN)
|
|
|
|
|
#define PIN_IS_SDA2(P) (P##_PIN == P0_10)
|
|
|
|
|
#define PIN_IS_SCL2(P) (P##_PIN == P0_11)
|
|
|
|
|
#if PIN_IS_SDA2(Y_STOP)
|
|
|
|
|
#error "i2c SDA2 overlaps with Y endstop pin!"
|
|
|
|
|
#elif HAS_CUSTOM_PROBE_PIN && PIN_IS_SDA2(Z_MIN_PROBE)
|
|
|
|
|
#error "i2c SDA2 overlaps with Z probe pin!"
|
|
|
|
|
#elif PIN_IS_SDA2(X_ENABLE) || PIN_IS_SDA2(Y_ENABLE)
|
|
|
|
|
#error "i2c SDA2 overlaps with X/Y ENABLE pin!"
|
|
|
|
|
#elif AXIS_HAS_SPI(X) && PIN_IS_SDA2(X_CS)
|
|
|
|
|
#error "i2c SDA2 overlaps with X CS pin!"
|
|
|
|
|
#elif PIN_IS_SDA2(X2_ENABLE)
|
|
|
|
|
#error "i2c SDA2 overlaps with X2 enable pin! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA2(Y2_ENABLE)
|
|
|
|
|
#error "i2c SDA2 overlaps with Y2 enable pin! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA2(Z2_ENABLE)
|
|
|
|
|
#error "i2c SDA2 overlaps with Z2 enable pin! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA2(Z3_ENABLE)
|
|
|
|
|
#error "i2c SDA2 overlaps with Z3 enable pin! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA2(Z4_ENABLE)
|
|
|
|
|
#error "i2c SDA2 overlaps with Z4 enable pin! Disable i2c peripherals."
|
|
|
|
|
#elif EXTRUDERS > 1 && PIN_IS_SDA2(E1_ENABLE)
|
|
|
|
|
#error "i2c SDA2 overlaps with E1 enable pin! Disable i2c peripherals."
|
|
|
|
|
#elif EXTRUDERS > 1 && AXIS_HAS_SPI(E1) && PIN_IS_SDA2(E1_CS)
|
|
|
|
|
#error "i2c SDA2 overlaps with E1 CS pin! Disable i2c peripherals."
|
|
|
|
|
#elif EXTRUDERS && (PIN_IS_SDA2(E0_STEP) || PIN_IS_SDA2(E0_DIR))
|
|
|
|
|
#error "i2c SCL2 overlaps with E0 STEP/DIR pin! Disable i2c peripherals."
|
|
|
|
|
#elif PIN_IS_SDA2(X_DIR) || PIN_IS_SDA2(Y_DIR)
|
|
|
|
|
#error "One or more i2c pins overlaps with X/Y DIR pin! Disable i2c peripherals."
|
|
|
|
|
#endif
|
|
|
|
|
#undef PIN_IS_SDA2
|
|
|
|
|
#undef PIN_IS_SCL2
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#undef USEDI2CDEV_M
|
|
|
|
|
#endif
|
|
|
|
|