grblHAL-myversion/grblHAL_Teensy4/src/T41U5XBB_ss_map.h

160 lines
4.3 KiB
C

/*
T41U5XBB_ss_map.h - driver code for IMXRT1062 processor (on Teensy 4.1 board)
Part of grblHAL
!!IMPORTANT!! This map is for a modified board, see https://github.com/terjeio/grblHAL/discussions/289 for details.
Board by Phil Barrett: https://github.com/phil-barrett/grblHAL-teensy-4.x
Copyright (c) 2020-2021 Terje Io
Grbl is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Grbl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grbl. If not, see <http://www.gnu.org/licenses/>.
*/
#define BOARD_NAME "T41U5XBB"
#define HAS_BOARD_INIT
#if N_AXIS > 5
#error Max number of axes is 5 for T41U5XBB
#endif
#if QEI_ENABLE && SPINDLE_SYNC_ENABLE
#error Quadrature encoder and spindle sync cannot be enabled at the same time
#endif
// Default pin assignments allow only one axis to be ganged or auto squared.
// B axis pin numbers are used for the ganged/auto squared axis.
// If a second axis is to be ganged/auto squared pin assignments needs to be changed!
// Set to 1 to enable, 0 to disable.
#define X_GANGED 0
#define X_AUTO_SQUARE 0
#define Y_GANGED 0
#define Y_AUTO_SQUARE 0
#define Z_GANGED 0
#define Z_AUTO_SQUARE 0
//
#define X_STEP_PIN (2u)
#define X_DIRECTION_PIN (3u)
#define X_ENABLE_PIN (10u)
#define X_LIMIT_PIN (20u)
#if X_GANGED || X_AUTO_SQUARE
#define X2_STEP_PIN (26u)
#define X2_DIRECTION_PIN (27u)
#define X2_ENABLE_PIN (37u)
#if X_AUTO_SQUARE
#define X2_LIMIT_PIN (28u)
#endif
#endif
#define Y_STEP_PIN (4u)
#define Y_DIRECTION_PIN (5u)
#define Y_ENABLE_PIN (40u)
#define Y_LIMIT_PIN (21u)
// Changed to use A pins rather than B pins
#if Y_GANGED || Y_AUTO_SQUARE
#define Y2_STEP_PIN (8u)
#define Y2_DIRECTION_PIN (9u)
#define Y2_ENABLE_PIN (38u)
#if Y_AUTO_SQUARE
#define Y2_LIMIT_PIN (23u)
#endif
#endif
#define Z_STEP_PIN (6u)
#define Z_DIRECTION_PIN (7u)
#define Z_ENABLE_PIN (39u)
#define Z_LIMIT_PIN (22u)
#if Z_GANGED || Z_AUTO_SQUARE
#define Z2_STEP_PIN (26u)
#define Z2_DIRECTION_PIN (27u)
#define Z2_ENABLE_PIN (37u)
#if Z_AUTO_SQUARE
#define Z2_LIMIT_PIN (28u)
#endif
#endif
#if N_AXIS > 3
#define A_STEP_PIN (8u)
#define A_DIRECTION_PIN (9u)
#define A_ENABLE_PIN (38u)
#define A_LIMIT_PIN (23u)
#endif
#if N_AXIS > 4
#define B_STEP_PIN (26u)
#define B_DIRECTION_PIN (27u)
#define B_ENABLE_PIN (37u)
#define B_LIMIT_PIN (28u)
#endif
// Define spindle enable and spindle direction output pins.
#define SPINDLE_ENABLE_PIN (12u)
#define SPINDLE_DIRECTION_PIN (11u)
#define SPINDLEPWMPIN (13u) // NOTE: only pin 12 or pin 13 can be assigned!
// Define flood and mist coolant enable output pins.
#define COOLANT_FLOOD_PIN (19u)
#define COOLANT_MIST_PIN (18u)
// Define user-control CONTROLs (cycle start, reset, feed hold, door) input pins.
#define RESET_PIN (35u)
#define FEED_HOLD_PIN (16u)
#define CYCLE_START_PIN (17u)
#define SAFETY_DOOR_PIN (29u)
// Define probe switch input pin.
#define PROBE_PIN (15u)
#if QEI_ENABLE
#define QEI_A_PIN (30u) // ST1
#define QEI_B_PIN (34u) // ST2
#define QEI_SELECT_PIN (14u) // ST3
#endif
#if SPINDLE_SYNC_ENABLE
#define SPINDLE_INDEX_PIN (34u) // ST2
#define SPINDLE_PULSE_PIN (14u) // ST3
#endif
// Define auxillary input pins
#define AUXINPUT0_PIN (36u) // ST0
#if !QEI_ENABLE
#define AUXINPUT1_PIN (30u) // ST1
#if !SPINDLE_SYNC_ENABLE
#define AUXINPUT2_PIN (34u) // ST2
#define AUXINPUT3_PIN (14u) // ST3
#endif
#endif
#define AUXOUTPUT0_PIN (31u) // AUX0
#define AUXOUTPUT1_PIN (32u) // AUX1
#define AUXOUTPUT2_PIN (33u) // AUX2
#define AUX_N_OUT 3
#define AUX_OUT_MASK 0b111
#if KEYPAD_ENABLE
#define KEYPAD_STROBE_PIN (41u) // I2C ST
#endif
#if EEPROM_ENABLE || KEYPAD_ENABLE
#define I2C_PORT 4
#define I2C_SCL4 (24u) // Not referenced, for info only
#define I2C_SDA4 (25u) // Not referenced, for info only
#endif