Splitting Cpu map into separate files.
Makes comparison, addition of new ones easier
This commit is contained in:
		
							
								
								
									
										228
									
								
								grbl/cpu_map.h
									
									
									
									
									
								
							
							
						
						
									
										228
									
								
								grbl/cpu_map.h
									
									
									
									
									
								
							@@ -33,121 +33,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#ifdef CPU_MAP_ATMEGA328P // (Arduino Uno) Officially supported by Grbl.
 | 
					#ifdef CPU_MAP_ATMEGA328P // (Arduino Uno) Officially supported by Grbl.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Define serial port pins and interrupt vectors.
 | 
					  #include "cpu_map_atmega328p.h"
 | 
				
			||||||
  #define SERIAL_RX     USART_RX_vect
 | 
					 | 
				
			||||||
  #define SERIAL_UDRE   USART_UDRE_vect
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define step pulse output pins. NOTE: All step bit pins must be on the same port.
 | 
					 | 
				
			||||||
  #define STEP_DDR        DDRD
 | 
					 | 
				
			||||||
  #define STEP_PORT       PORTD
 | 
					 | 
				
			||||||
  #define X_STEP_BIT      2  // Uno Digital Pin 2
 | 
					 | 
				
			||||||
  #define Y_STEP_BIT      3  // Uno Digital Pin 3
 | 
					 | 
				
			||||||
  #define Z_STEP_BIT      4  // Uno Digital Pin 4
 | 
					 | 
				
			||||||
  #define STEP_MASK       ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define step direction output pins. NOTE: All direction pins must be on the same port.
 | 
					 | 
				
			||||||
  #define DIRECTION_DDR     DDRD
 | 
					 | 
				
			||||||
  #define DIRECTION_PORT    PORTD
 | 
					 | 
				
			||||||
  #define X_DIRECTION_BIT   5  // Uno Digital Pin 5
 | 
					 | 
				
			||||||
  #define Y_DIRECTION_BIT   6  // Uno Digital Pin 6
 | 
					 | 
				
			||||||
  #define Z_DIRECTION_BIT   7  // Uno Digital Pin 7
 | 
					 | 
				
			||||||
  #define DIRECTION_MASK    ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define stepper driver enable/disable output pin.
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_DDR    DDRB
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_PORT   PORTB
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_BIT    0  // Uno Digital Pin 8
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_MASK   (1<<STEPPERS_DISABLE_BIT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define homing/hard limit switch input pins and limit interrupt vectors. 
 | 
					 | 
				
			||||||
  // NOTE: All limit bit pins must be on the same port, but not on a port with other input pins (CONTROL).
 | 
					 | 
				
			||||||
  #define LIMIT_DDR        DDRB
 | 
					 | 
				
			||||||
  #define LIMIT_PIN        PINB
 | 
					 | 
				
			||||||
  #define LIMIT_PORT       PORTB
 | 
					 | 
				
			||||||
  #define X_LIMIT_BIT      1  // Uno Digital Pin 9
 | 
					 | 
				
			||||||
  #define Y_LIMIT_BIT      2  // Uno Digital Pin 10
 | 
					 | 
				
			||||||
  #ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.  
 | 
					 | 
				
			||||||
    #define Z_LIMIT_BIT	   4 // Uno Digital Pin 12
 | 
					 | 
				
			||||||
  #else
 | 
					 | 
				
			||||||
    #define Z_LIMIT_BIT    3  // Uno Digital Pin 11
 | 
					 | 
				
			||||||
  #endif
 | 
					 | 
				
			||||||
  #define LIMIT_MASK       ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // All limit bits
 | 
					 | 
				
			||||||
  #define LIMIT_INT        PCIE0  // Pin change interrupt enable pin
 | 
					 | 
				
			||||||
  #define LIMIT_INT_vect   PCINT0_vect 
 | 
					 | 
				
			||||||
  #define LIMIT_PCMSK      PCMSK0 // Pin change interrupt register
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define spindle enable and spindle direction output pins.
 | 
					 | 
				
			||||||
  #define SPINDLE_ENABLE_DDR    DDRB
 | 
					 | 
				
			||||||
  #define SPINDLE_ENABLE_PORT   PORTB
 | 
					 | 
				
			||||||
  // Z Limit pin and spindle PWM/enable pin swapped to access hardware PWM on Pin 11.
 | 
					 | 
				
			||||||
  #ifdef VARIABLE_SPINDLE 
 | 
					 | 
				
			||||||
    #ifdef USE_SPINDLE_DIR_AS_ENABLE_PIN
 | 
					 | 
				
			||||||
      // If enabled, spindle direction pin now used as spindle enable, while PWM remains on D11.
 | 
					 | 
				
			||||||
      #define SPINDLE_ENABLE_BIT    5  // Uno Digital Pin 13 (NOTE: D13 can't be pulled-high input due to LED.)
 | 
					 | 
				
			||||||
    #else
 | 
					 | 
				
			||||||
      #define SPINDLE_ENABLE_BIT    3  // Uno Digital Pin 11
 | 
					 | 
				
			||||||
    #endif
 | 
					 | 
				
			||||||
  #else
 | 
					 | 
				
			||||||
    #define SPINDLE_ENABLE_BIT    4  // Uno Digital Pin 12
 | 
					 | 
				
			||||||
  #endif
 | 
					 | 
				
			||||||
  #ifndef USE_SPINDLE_DIR_AS_ENABLE_PIN
 | 
					 | 
				
			||||||
    #define SPINDLE_DIRECTION_DDR   DDRB
 | 
					 | 
				
			||||||
    #define SPINDLE_DIRECTION_PORT  PORTB
 | 
					 | 
				
			||||||
    #define SPINDLE_DIRECTION_BIT   5  // Uno Digital Pin 13 (NOTE: D13 can't be pulled-high input due to LED.)
 | 
					 | 
				
			||||||
  #endif
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  // Define flood and mist coolant enable output pins.
 | 
					 | 
				
			||||||
  // NOTE: Uno analog pins 4 and 5 are reserved for an i2c interface, and may be installed at
 | 
					 | 
				
			||||||
  // a later date if flash and memory space allows.
 | 
					 | 
				
			||||||
  #define COOLANT_FLOOD_DDR   DDRC
 | 
					 | 
				
			||||||
  #define COOLANT_FLOOD_PORT  PORTC
 | 
					 | 
				
			||||||
  #define COOLANT_FLOOD_BIT   3  // Uno Analog Pin 3
 | 
					 | 
				
			||||||
  #ifdef ENABLE_M7 // Mist coolant disabled by default. See config.h to enable/disable.
 | 
					 | 
				
			||||||
    #define COOLANT_MIST_DDR   DDRC
 | 
					 | 
				
			||||||
    #define COOLANT_MIST_PORT  PORTC
 | 
					 | 
				
			||||||
    #define COOLANT_MIST_BIT   4 // Uno Analog Pin 4
 | 
					 | 
				
			||||||
  #endif  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define user-control controls (cycle start, reset, feed hold) input pins.
 | 
					 | 
				
			||||||
  // NOTE: All CONTROLs pins must be on the same port and not on a port with other input pins (limits).
 | 
					 | 
				
			||||||
  #define CONTROL_DDR       DDRC
 | 
					 | 
				
			||||||
  #define CONTROL_PIN       PINC
 | 
					 | 
				
			||||||
  #define CONTROL_PORT      PORTC
 | 
					 | 
				
			||||||
  #define RESET_BIT         0  // Uno Analog Pin 0
 | 
					 | 
				
			||||||
  #define FEED_HOLD_BIT     1  // Uno Analog Pin 1
 | 
					 | 
				
			||||||
  #define CYCLE_START_BIT   2  // Uno Analog Pin 2
 | 
					 | 
				
			||||||
  #define SAFETY_DOOR_BIT   1  // Uno Analog Pin 1 NOTE: Safety door is shared with feed hold. Enabled by config define.
 | 
					 | 
				
			||||||
  #define CONTROL_INT       PCIE1  // Pin change interrupt enable pin
 | 
					 | 
				
			||||||
  #define CONTROL_INT_vect  PCINT1_vect
 | 
					 | 
				
			||||||
  #define CONTROL_PCMSK     PCMSK1 // Pin change interrupt register
 | 
					 | 
				
			||||||
  #define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  // Define probe switch input pin.
 | 
					 | 
				
			||||||
  #define PROBE_DDR       DDRC
 | 
					 | 
				
			||||||
  #define PROBE_PIN       PINC
 | 
					 | 
				
			||||||
  #define PROBE_PORT      PORTC
 | 
					 | 
				
			||||||
  #define PROBE_BIT       5  // Uno Analog Pin 5
 | 
					 | 
				
			||||||
  #define PROBE_MASK      (1<<PROBE_BIT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  #ifdef VARIABLE_SPINDLE
 | 
					 | 
				
			||||||
    // Advanced Configuration Below You should not need to touch these variables
 | 
					 | 
				
			||||||
    #define PWM_MAX_VALUE    255.0
 | 
					 | 
				
			||||||
    #define TCCRA_REGISTER	 TCCR2A
 | 
					 | 
				
			||||||
    #define TCCRB_REGISTER	 TCCR2B
 | 
					 | 
				
			||||||
    #define OCR_REGISTER     OCR2A
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    #define COMB_BIT	     COM2A1
 | 
					 | 
				
			||||||
    #define WAVE0_REGISTER	 WGM20
 | 
					 | 
				
			||||||
    #define WAVE1_REGISTER	 WGM21
 | 
					 | 
				
			||||||
    #define WAVE2_REGISTER	 WGM22
 | 
					 | 
				
			||||||
    #define WAVE3_REGISTER	 WGM23
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    // NOTE: On the 328p, these must be the same as the SPINDLE_ENABLE settings.
 | 
					 | 
				
			||||||
    #define SPINDLE_PWM_DDR	  DDRB
 | 
					 | 
				
			||||||
    #define SPINDLE_PWM_PORT  PORTB
 | 
					 | 
				
			||||||
    #define SPINDLE_PWM_BIT	  3    // Uno Digital Pin 11
 | 
					 | 
				
			||||||
  #endif // End of VARIABLE_SPINDLE
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -156,112 +42,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#ifdef CPU_MAP_ATMEGA2560 // (Arduino Mega 2560) Working @EliteEng
 | 
					#ifdef CPU_MAP_ATMEGA2560 // (Arduino Mega 2560) Working @EliteEng
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Serial port pins
 | 
					  #include "cpu_map_atmega2560.h"
 | 
				
			||||||
  #define SERIAL_RX USART0_RX_vect
 | 
					 | 
				
			||||||
  #define SERIAL_UDRE USART0_UDRE_vect
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Increase Buffers to make use of extra SRAM
 | 
					 | 
				
			||||||
  //#define RX_BUFFER_SIZE		256
 | 
					 | 
				
			||||||
  //#define TX_BUFFER_SIZE		128
 | 
					 | 
				
			||||||
  //#define BLOCK_BUFFER_SIZE	36
 | 
					 | 
				
			||||||
  //#define LINE_BUFFER_SIZE	100
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define step pulse output pins. NOTE: All step bit pins must be on the same port.
 | 
					 | 
				
			||||||
  #define STEP_DDR      DDRA
 | 
					 | 
				
			||||||
  #define STEP_PORT     PORTA
 | 
					 | 
				
			||||||
  #define STEP_PIN      PINA
 | 
					 | 
				
			||||||
  #define X_STEP_BIT    2 // MEGA2560 Digital Pin 24
 | 
					 | 
				
			||||||
  #define Y_STEP_BIT    3 // MEGA2560 Digital Pin 25
 | 
					 | 
				
			||||||
  #define Z_STEP_BIT    4 // MEGA2560 Digital Pin 26
 | 
					 | 
				
			||||||
  #define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define step direction output pins. NOTE: All direction pins must be on the same port.
 | 
					 | 
				
			||||||
  #define DIRECTION_DDR     DDRC
 | 
					 | 
				
			||||||
  #define DIRECTION_PORT    PORTC
 | 
					 | 
				
			||||||
  #define DIRECTION_PIN     PINC
 | 
					 | 
				
			||||||
  #define X_DIRECTION_BIT   7 // MEGA2560 Digital Pin 30
 | 
					 | 
				
			||||||
  #define Y_DIRECTION_BIT   6 // MEGA2560 Digital Pin 31
 | 
					 | 
				
			||||||
  #define Z_DIRECTION_BIT   5 // MEGA2560 Digital Pin 32
 | 
					 | 
				
			||||||
  #define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define stepper driver enable/disable output pin.
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_DDR   DDRB
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_PORT  PORTB
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_BIT   7 // MEGA2560 Digital Pin 13
 | 
					 | 
				
			||||||
  #define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // NOTE: All limit bit pins must be on the same port
 | 
					 | 
				
			||||||
  #define LIMIT_DDR       DDRB
 | 
					 | 
				
			||||||
  #define LIMIT_PORT      PORTB
 | 
					 | 
				
			||||||
  #define LIMIT_PIN       PINB
 | 
					 | 
				
			||||||
  #define X_LIMIT_BIT     4 // MEGA2560 Digital Pin 10
 | 
					 | 
				
			||||||
  #define Y_LIMIT_BIT     5 // MEGA2560 Digital Pin 11
 | 
					 | 
				
			||||||
  #define Z_LIMIT_BIT     6 // MEGA2560 Digital Pin 12
 | 
					 | 
				
			||||||
  #define LIMIT_INT       PCIE0  // Pin change interrupt enable pin
 | 
					 | 
				
			||||||
  #define LIMIT_INT_vect  PCINT0_vect 
 | 
					 | 
				
			||||||
  #define LIMIT_PCMSK     PCMSK0 // Pin change interrupt register
 | 
					 | 
				
			||||||
  #define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // All limit bits
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define spindle enable and spindle direction output pins.
 | 
					 | 
				
			||||||
  #define SPINDLE_ENABLE_DDR      DDRH
 | 
					 | 
				
			||||||
  #define SPINDLE_ENABLE_PORT     PORTH
 | 
					 | 
				
			||||||
  #define SPINDLE_ENABLE_BIT      3 // MEGA2560 Digital Pin 6
 | 
					 | 
				
			||||||
  #define SPINDLE_DIRECTION_DDR   DDRE
 | 
					 | 
				
			||||||
  #define SPINDLE_DIRECTION_PORT  PORTE
 | 
					 | 
				
			||||||
  #define SPINDLE_DIRECTION_BIT   3 // MEGA2560 Digital Pin 5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define flood and mist coolant enable output pins.
 | 
					 | 
				
			||||||
  // NOTE: Uno analog pins 4 and 5 are reserved for an i2c interface, and may be installed at
 | 
					 | 
				
			||||||
  // a later date if flash and memory space allows.
 | 
					 | 
				
			||||||
  #define COOLANT_FLOOD_DDR     DDRH
 | 
					 | 
				
			||||||
  #define COOLANT_FLOOD_PORT    PORTH
 | 
					 | 
				
			||||||
  #define COOLANT_FLOOD_BIT     5 // MEGA2560 Digital Pin 8
 | 
					 | 
				
			||||||
  #ifdef ENABLE_M7 // Mist coolant disabled by default. See config.h to enable/disable.
 | 
					 | 
				
			||||||
    #define COOLANT_MIST_DDR    DDRH
 | 
					 | 
				
			||||||
    #define COOLANT_MIST_PORT   PORTH
 | 
					 | 
				
			||||||
    #define COOLANT_MIST_BIT    6 // MEGA2560 Digital Pin 9
 | 
					 | 
				
			||||||
  #endif  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define user-control CONTROLs (cycle start, reset, feed hold) input pins.
 | 
					 | 
				
			||||||
  // NOTE: All CONTROLs pins must be on the same port and not on a port with other input pins (limits).
 | 
					 | 
				
			||||||
  #define CONTROL_DDR       DDRK
 | 
					 | 
				
			||||||
  #define CONTROL_PIN       PINK
 | 
					 | 
				
			||||||
  #define CONTROL_PORT      PORTK
 | 
					 | 
				
			||||||
  #define RESET_BIT         0  // MEGA2560 Analog Pin 8
 | 
					 | 
				
			||||||
  #define FEED_HOLD_BIT     1  // MEGA2560 Analog Pin 9
 | 
					 | 
				
			||||||
  #define CYCLE_START_BIT   2  // MEGA2560 Analog Pin 10
 | 
					 | 
				
			||||||
  #define SAFETY_DOOR_BIT   3  // MEGA2560 Analog Pin 11
 | 
					 | 
				
			||||||
  #define CONTROL_INT       PCIE2  // Pin change interrupt enable pin
 | 
					 | 
				
			||||||
  #define CONTROL_INT_vect  PCINT2_vect
 | 
					 | 
				
			||||||
  #define CONTROL_PCMSK     PCMSK2 // Pin change interrupt register
 | 
					 | 
				
			||||||
  #define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Define probe switch input pin.
 | 
					 | 
				
			||||||
  #define PROBE_DDR       DDRK
 | 
					 | 
				
			||||||
  #define PROBE_PIN       PINK
 | 
					 | 
				
			||||||
  #define PROBE_PORT      PORTK
 | 
					 | 
				
			||||||
  #define PROBE_BIT       7  // MEGA2560 Analog Pin 15
 | 
					 | 
				
			||||||
  #define PROBE_MASK      (1<<PROBE_BIT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  // Start of PWM & Stepper Enabled Spindle
 | 
					 | 
				
			||||||
  #ifdef VARIABLE_SPINDLE
 | 
					 | 
				
			||||||
    // Advanced Configuration Below You should not need to touch these variables
 | 
					 | 
				
			||||||
    // Set Timer up to use TIMER4B which is attached to Digital Pin 7
 | 
					 | 
				
			||||||
    #define PWM_MAX_VALUE       65535.0
 | 
					 | 
				
			||||||
    #define TCCRA_REGISTER		TCCR4A
 | 
					 | 
				
			||||||
    #define TCCRB_REGISTER		TCCR4B
 | 
					 | 
				
			||||||
    #define OCR_REGISTER		OCR4B
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    #define COMB_BIT			COM4B1
 | 
					 | 
				
			||||||
    #define WAVE0_REGISTER		WGM40
 | 
					 | 
				
			||||||
    #define WAVE1_REGISTER		WGM41
 | 
					 | 
				
			||||||
    #define WAVE2_REGISTER		WGM42
 | 
					 | 
				
			||||||
    #define WAVE3_REGISTER		WGM43
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    #define SPINDLE_PWM_DDR		DDRH
 | 
					 | 
				
			||||||
    #define SPINDLE_PWM_PORT    PORTH
 | 
					 | 
				
			||||||
    #define SPINDLE_PWM_BIT		4 // MEGA2560 Digital Pin 97
 | 
					 | 
				
			||||||
  #endif // End of VARIABLE_SPINDLE
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -269,8 +50,9 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* 
 | 
					/* 
 | 
				
			||||||
#ifdef CPU_MAP_CUSTOM_PROC
 | 
					#ifdef CPU_MAP_CUSTOM_PROC
 | 
				
			||||||
  // For a custom pin map or different processor, copy and paste one of the default cpu map
 | 
					  // For a custom pin map or different processor, copy and edit ne of the default cpu map
 | 
				
			||||||
  // settings above and modify it to your needs. Then, make sure the defined name is also
 | 
					  // files above and modify it to your needs. Then, copy and paste one of the sections above
 | 
				
			||||||
 | 
					  // and change the #defined name and included file. Make sure the defined name is also
 | 
				
			||||||
  // changed in the config.h file.
 | 
					  // changed in the config.h file.
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										114
									
								
								grbl/cpu_map_atmega2560.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								grbl/cpu_map_atmega2560.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
				
			|||||||
 | 
					#ifdef GRBL_PLATFORM
 | 
				
			||||||
 | 
					#error "cpu_map already defined: GRBL_PLATFORM=" GRBL_PLATFORM
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define GRBL_PLATFORM "Atmega2560"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Serial port pins
 | 
				
			||||||
 | 
					#define SERIAL_RX USART0_RX_vect
 | 
				
			||||||
 | 
					#define SERIAL_UDRE USART0_UDRE_vect
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Increase Buffers to make use of extra SRAM
 | 
				
			||||||
 | 
					//#define RX_BUFFER_SIZE		256
 | 
				
			||||||
 | 
					//#define TX_BUFFER_SIZE		128
 | 
				
			||||||
 | 
					//#define BLOCK_BUFFER_SIZE	36
 | 
				
			||||||
 | 
					//#define LINE_BUFFER_SIZE	100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
 | 
				
			||||||
 | 
					#define STEP_DDR      DDRA
 | 
				
			||||||
 | 
					#define STEP_PORT     PORTA
 | 
				
			||||||
 | 
					#define STEP_PIN      PINA
 | 
				
			||||||
 | 
					#define X_STEP_BIT    2 // MEGA2560 Digital Pin 24
 | 
				
			||||||
 | 
					#define Y_STEP_BIT    3 // MEGA2560 Digital Pin 25
 | 
				
			||||||
 | 
					#define Z_STEP_BIT    4 // MEGA2560 Digital Pin 26
 | 
				
			||||||
 | 
					#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define step direction output pins. NOTE: All direction pins must be on the same port.
 | 
				
			||||||
 | 
					#define DIRECTION_DDR     DDRC
 | 
				
			||||||
 | 
					#define DIRECTION_PORT    PORTC
 | 
				
			||||||
 | 
					#define DIRECTION_PIN     PINC
 | 
				
			||||||
 | 
					#define X_DIRECTION_BIT   7 // MEGA2560 Digital Pin 30
 | 
				
			||||||
 | 
					#define Y_DIRECTION_BIT   6 // MEGA2560 Digital Pin 31
 | 
				
			||||||
 | 
					#define Z_DIRECTION_BIT   5 // MEGA2560 Digital Pin 32
 | 
				
			||||||
 | 
					#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define stepper driver enable/disable output pin.
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_DDR   DDRB
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_PORT  PORTB
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_BIT   7 // MEGA2560 Digital Pin 13
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define homing/hard limit switch input pins and limit interrupt vectors. 
 | 
				
			||||||
 | 
					// NOTE: All limit bit pins must be on the same port
 | 
				
			||||||
 | 
					#define LIMIT_DDR       DDRB
 | 
				
			||||||
 | 
					#define LIMIT_PORT      PORTB
 | 
				
			||||||
 | 
					#define LIMIT_PIN       PINB
 | 
				
			||||||
 | 
					#define X_LIMIT_BIT     4 // MEGA2560 Digital Pin 10
 | 
				
			||||||
 | 
					#define Y_LIMIT_BIT     5 // MEGA2560 Digital Pin 11
 | 
				
			||||||
 | 
					#define Z_LIMIT_BIT     6 // MEGA2560 Digital Pin 12
 | 
				
			||||||
 | 
					#define LIMIT_INT       PCIE0  // Pin change interrupt enable pin
 | 
				
			||||||
 | 
					#define LIMIT_INT_vect  PCINT0_vect 
 | 
				
			||||||
 | 
					#define LIMIT_PCMSK     PCMSK0 // Pin change interrupt register
 | 
				
			||||||
 | 
					#define LIMIT_MASK ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // All limit bits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define spindle enable and spindle direction output pins.
 | 
				
			||||||
 | 
					#define SPINDLE_ENABLE_DDR      DDRH
 | 
				
			||||||
 | 
					#define SPINDLE_ENABLE_PORT     PORTH
 | 
				
			||||||
 | 
					#define SPINDLE_ENABLE_BIT      3 // MEGA2560 Digital Pin 6
 | 
				
			||||||
 | 
					#define SPINDLE_DIRECTION_DDR   DDRE
 | 
				
			||||||
 | 
					#define SPINDLE_DIRECTION_PORT  PORTE
 | 
				
			||||||
 | 
					#define SPINDLE_DIRECTION_BIT   3 // MEGA2560 Digital Pin 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define flood and mist coolant enable output pins.
 | 
				
			||||||
 | 
					// NOTE: Uno analog pins 4 and 5 are reserved for an i2c interface, and may be installed at
 | 
				
			||||||
 | 
					// a later date if flash and memory space allows.
 | 
				
			||||||
 | 
					#define COOLANT_FLOOD_DDR     DDRH
 | 
				
			||||||
 | 
					#define COOLANT_FLOOD_PORT    PORTH
 | 
				
			||||||
 | 
					#define COOLANT_FLOOD_BIT     5 // MEGA2560 Digital Pin 8
 | 
				
			||||||
 | 
					#ifdef ENABLE_M7 // Mist coolant disabled by default. See config.h to enable/disable.
 | 
				
			||||||
 | 
					#define COOLANT_MIST_DDR    DDRH
 | 
				
			||||||
 | 
					#define COOLANT_MIST_PORT   PORTH
 | 
				
			||||||
 | 
					#define COOLANT_MIST_BIT    6 // MEGA2560 Digital Pin 9
 | 
				
			||||||
 | 
					#endif  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define user-control CONTROLs (cycle start, reset, feed hold) input pins.
 | 
				
			||||||
 | 
					// NOTE: All CONTROLs pins must be on the same port and not on a port with other input pins (limits).
 | 
				
			||||||
 | 
					#define CONTROL_DDR       DDRK
 | 
				
			||||||
 | 
					#define CONTROL_PIN       PINK
 | 
				
			||||||
 | 
					#define CONTROL_PORT      PORTK
 | 
				
			||||||
 | 
					#define RESET_BIT         0  // MEGA2560 Analog Pin 8
 | 
				
			||||||
 | 
					#define FEED_HOLD_BIT     1  // MEGA2560 Analog Pin 9
 | 
				
			||||||
 | 
					#define CYCLE_START_BIT   2  // MEGA2560 Analog Pin 10
 | 
				
			||||||
 | 
					#define SAFETY_DOOR_BIT   3  // MEGA2560 Analog Pin 11
 | 
				
			||||||
 | 
					#define CONTROL_INT       PCIE2  // Pin change interrupt enable pin
 | 
				
			||||||
 | 
					#define CONTROL_INT_vect  PCINT2_vect
 | 
				
			||||||
 | 
					#define CONTROL_PCMSK     PCMSK2 // Pin change interrupt register
 | 
				
			||||||
 | 
					#define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define probe switch input pin.
 | 
				
			||||||
 | 
					#define PROBE_DDR       DDRK
 | 
				
			||||||
 | 
					#define PROBE_PIN       PINK
 | 
				
			||||||
 | 
					#define PROBE_PORT      PORTK
 | 
				
			||||||
 | 
					#define PROBE_BIT       7  // MEGA2560 Analog Pin 15
 | 
				
			||||||
 | 
					#define PROBE_MASK      (1<<PROBE_BIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Start of PWM & Stepper Enabled Spindle
 | 
				
			||||||
 | 
					#ifdef VARIABLE_SPINDLE
 | 
				
			||||||
 | 
					  // Advanced Configuration Below You should not need to touch these variables
 | 
				
			||||||
 | 
					  // Set Timer up to use TIMER4B which is attached to Digital Pin 7
 | 
				
			||||||
 | 
					  #define PWM_MAX_VALUE       65535.0
 | 
				
			||||||
 | 
					  #define TCCRA_REGISTER		TCCR4A
 | 
				
			||||||
 | 
					  #define TCCRB_REGISTER		TCCR4B
 | 
				
			||||||
 | 
					  #define OCR_REGISTER		OCR4B
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  #define COMB_BIT			COM4B1
 | 
				
			||||||
 | 
					  #define WAVE0_REGISTER		WGM40
 | 
				
			||||||
 | 
					  #define WAVE1_REGISTER		WGM41
 | 
				
			||||||
 | 
					  #define WAVE2_REGISTER		WGM42
 | 
				
			||||||
 | 
					  #define WAVE3_REGISTER		WGM43
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  #define SPINDLE_PWM_DDR		DDRH
 | 
				
			||||||
 | 
					  #define SPINDLE_PWM_PORT    PORTH
 | 
				
			||||||
 | 
					  #define SPINDLE_PWM_BIT		4 // MEGA2560 Digital Pin 97
 | 
				
			||||||
 | 
					#endif // End of VARIABLE_SPINDLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										122
									
								
								grbl/cpu_map_atmega328p.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								grbl/cpu_map_atmega328p.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,122 @@
 | 
				
			|||||||
 | 
					#ifdef GRBL_PLATFORM
 | 
				
			||||||
 | 
					#error "cpu_map already defined: GRBL_PLATFORM=" GRBL_PLATFORM
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define GRBL_PLATFORM "Atmega328p"
 | 
				
			||||||
 | 
					// Define serial port pins and interrupt vectors.
 | 
				
			||||||
 | 
					#define SERIAL_RX     USART_RX_vect
 | 
				
			||||||
 | 
					#define SERIAL_UDRE   USART_UDRE_vect
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
 | 
				
			||||||
 | 
					#define STEP_DDR        DDRD
 | 
				
			||||||
 | 
					#define STEP_PORT       PORTD
 | 
				
			||||||
 | 
					#define X_STEP_BIT      2  // Uno Digital Pin 2
 | 
				
			||||||
 | 
					#define Y_STEP_BIT      3  // Uno Digital Pin 3
 | 
				
			||||||
 | 
					#define Z_STEP_BIT      4  // Uno Digital Pin 4
 | 
				
			||||||
 | 
					#define STEP_MASK       ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define step direction output pins. NOTE: All direction pins must be on the same port.
 | 
				
			||||||
 | 
					#define DIRECTION_DDR     DDRD
 | 
				
			||||||
 | 
					#define DIRECTION_PORT    PORTD
 | 
				
			||||||
 | 
					#define X_DIRECTION_BIT   5  // Uno Digital Pin 5
 | 
				
			||||||
 | 
					#define Y_DIRECTION_BIT   6  // Uno Digital Pin 6
 | 
				
			||||||
 | 
					#define Z_DIRECTION_BIT   7  // Uno Digital Pin 7
 | 
				
			||||||
 | 
					#define DIRECTION_MASK    ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define stepper driver enable/disable output pin.
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_DDR    DDRB
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_PORT   PORTB
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_BIT    0  // Uno Digital Pin 8
 | 
				
			||||||
 | 
					#define STEPPERS_DISABLE_MASK   (1<<STEPPERS_DISABLE_BIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define homing/hard limit switch input pins and limit interrupt vectors. 
 | 
				
			||||||
 | 
					// NOTE: All limit bit pins must be on the same port, but not on a port with other input pins (CONTROL).
 | 
				
			||||||
 | 
					#define LIMIT_DDR        DDRB
 | 
				
			||||||
 | 
					#define LIMIT_PIN        PINB
 | 
				
			||||||
 | 
					#define LIMIT_PORT       PORTB
 | 
				
			||||||
 | 
					#define X_LIMIT_BIT      1  // Uno Digital Pin 9
 | 
				
			||||||
 | 
					#define Y_LIMIT_BIT      2  // Uno Digital Pin 10
 | 
				
			||||||
 | 
					#ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.  
 | 
				
			||||||
 | 
					  #define Z_LIMIT_BIT	   4 // Uno Digital Pin 12
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  #define Z_LIMIT_BIT    3  // Uno Digital Pin 11
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define LIMIT_MASK       ((1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT)) // All limit bits
 | 
				
			||||||
 | 
					#define LIMIT_INT        PCIE0  // Pin change interrupt enable pin
 | 
				
			||||||
 | 
					#define LIMIT_INT_vect   PCINT0_vect 
 | 
				
			||||||
 | 
					#define LIMIT_PCMSK      PCMSK0 // Pin change interrupt register
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define spindle enable and spindle direction output pins.
 | 
				
			||||||
 | 
					#define SPINDLE_ENABLE_DDR    DDRB
 | 
				
			||||||
 | 
					#define SPINDLE_ENABLE_PORT   PORTB
 | 
				
			||||||
 | 
					// Z Limit pin and spindle PWM/enable pin swapped to access hardware PWM on Pin 11.
 | 
				
			||||||
 | 
					#ifdef VARIABLE_SPINDLE 
 | 
				
			||||||
 | 
					  #ifdef USE_SPINDLE_DIR_AS_ENABLE_PIN
 | 
				
			||||||
 | 
					    // If enabled, spindle direction pin now used as spindle enable, while PWM remains on D11.
 | 
				
			||||||
 | 
					    #define SPINDLE_ENABLE_BIT    5  // Uno Digital Pin 13 (NOTE: D13 can't be pulled-high input due to LED.)
 | 
				
			||||||
 | 
					  #else
 | 
				
			||||||
 | 
					    #define SPINDLE_ENABLE_BIT    3  // Uno Digital Pin 11
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  #define SPINDLE_ENABLE_BIT    4  // Uno Digital Pin 12
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef USE_SPINDLE_DIR_AS_ENABLE_PIN
 | 
				
			||||||
 | 
					  #define SPINDLE_DIRECTION_DDR   DDRB
 | 
				
			||||||
 | 
					  #define SPINDLE_DIRECTION_PORT  PORTB
 | 
				
			||||||
 | 
					  #define SPINDLE_DIRECTION_BIT   5  // Uno Digital Pin 13 (NOTE: D13 can't be pulled-high input due to LED.)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					// Define flood and mist coolant enable output pins.
 | 
				
			||||||
 | 
					// NOTE: Uno analog pins 4 and 5 are reserved for an i2c interface, and may be installed at
 | 
				
			||||||
 | 
					// a later date if flash and memory space allows.
 | 
				
			||||||
 | 
					#define COOLANT_FLOOD_DDR   DDRC
 | 
				
			||||||
 | 
					#define COOLANT_FLOOD_PORT  PORTC
 | 
				
			||||||
 | 
					#define COOLANT_FLOOD_BIT   3  // Uno Analog Pin 3
 | 
				
			||||||
 | 
					#ifdef ENABLE_M7 // Mist coolant disabled by default. See config.h to enable/disable.
 | 
				
			||||||
 | 
					  #define COOLANT_MIST_DDR   DDRC
 | 
				
			||||||
 | 
					  #define COOLANT_MIST_PORT  PORTC
 | 
				
			||||||
 | 
					  #define COOLANT_MIST_BIT   4 // Uno Analog Pin 4
 | 
				
			||||||
 | 
					#endif  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Define user-control controls (cycle start, reset, feed hold) input pins.
 | 
				
			||||||
 | 
					// NOTE: All CONTROLs pins must be on the same port and not on a port with other input pins (limits).
 | 
				
			||||||
 | 
					#define CONTROL_DDR       DDRC
 | 
				
			||||||
 | 
					#define CONTROL_PIN       PINC
 | 
				
			||||||
 | 
					#define CONTROL_PORT      PORTC
 | 
				
			||||||
 | 
					#define RESET_BIT         0  // Uno Analog Pin 0
 | 
				
			||||||
 | 
					#define FEED_HOLD_BIT     1  // Uno Analog Pin 1
 | 
				
			||||||
 | 
					#define CYCLE_START_BIT   2  // Uno Analog Pin 2
 | 
				
			||||||
 | 
					#define SAFETY_DOOR_BIT   1  // Uno Analog Pin 1 NOTE: Safety door is shared with feed hold. Enabled by config define.
 | 
				
			||||||
 | 
					#define CONTROL_INT       PCIE1  // Pin change interrupt enable pin
 | 
				
			||||||
 | 
					#define CONTROL_INT_vect  PCINT1_vect
 | 
				
			||||||
 | 
					#define CONTROL_PCMSK     PCMSK1 // Pin change interrupt register
 | 
				
			||||||
 | 
					#define CONTROL_MASK ((1<<RESET_BIT)|(1<<FEED_HOLD_BIT)|(1<<CYCLE_START_BIT)|(1<<SAFETY_DOOR_BIT))
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					// Define probe switch input pin.
 | 
				
			||||||
 | 
					#define PROBE_DDR       DDRC
 | 
				
			||||||
 | 
					#define PROBE_PIN       PINC
 | 
				
			||||||
 | 
					#define PROBE_PORT      PORTC
 | 
				
			||||||
 | 
					#define PROBE_BIT       5  // Uno Analog Pin 5
 | 
				
			||||||
 | 
					#define PROBE_MASK      (1<<PROBE_BIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Start of PWM & Stepper Enabled Spindle
 | 
				
			||||||
 | 
					#ifdef VARIABLE_SPINDLE
 | 
				
			||||||
 | 
					  // Advanced Configuration Below You should not need to touch these variables
 | 
				
			||||||
 | 
					  #define PWM_MAX_VALUE    255.0
 | 
				
			||||||
 | 
					  #define TCCRA_REGISTER	 TCCR2A
 | 
				
			||||||
 | 
					  #define TCCRB_REGISTER	 TCCR2B
 | 
				
			||||||
 | 
					  #define OCR_REGISTER     OCR2A
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  #define COMB_BIT	     COM2A1
 | 
				
			||||||
 | 
					  #define WAVE0_REGISTER	 WGM20
 | 
				
			||||||
 | 
					  #define WAVE1_REGISTER	 WGM21
 | 
				
			||||||
 | 
					  #define WAVE2_REGISTER	 WGM22
 | 
				
			||||||
 | 
					  #define WAVE3_REGISTER	 WGM23
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					  // NOTE: On the 328p, these must be the same as the SPINDLE_ENABLE settings.
 | 
				
			||||||
 | 
					  #define SPINDLE_PWM_DDR	  DDRB
 | 
				
			||||||
 | 
					  #define SPINDLE_PWM_PORT  PORTB
 | 
				
			||||||
 | 
					  #define SPINDLE_PWM_BIT	  3    // Uno Digital Pin 11
 | 
				
			||||||
 | 
					#endif // End of VARIABLE_SPINDLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user