Prusa MINI Firmware overview
pinsDebug_plus_70.h
Go to the documentation of this file.
1 /**
2  * Marlin 3D Printer Firmware
3  * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  */
19 #pragma once
20 
21 /**
22  * Structures for 2560 family boards that use more than 70 pins
23  */
24 
25 #undef NUM_DIGITAL_PINS
26 #if MB(BQ_ZUM_MEGA_3D)
27  #define NUM_DIGITAL_PINS 85
28 #elif MB(MIGHTYBOARD_REVE)
29  #define NUM_DIGITAL_PINS 80
30 #elif MB(MINIRAMBO)
31  #define NUM_DIGITAL_PINS 85
32 #elif MB(SCOOVO_X9H)
33  #define NUM_DIGITAL_PINS 85
34 #endif
35 
36 #define PA 1
37 #define PB 2
38 #define PC 3
39 #define PD 4
40 #define PE 5
41 #define PF 6
42 #define PG 7
43 #define PH 8
44 #define PJ 10
45 #define PK 11
46 #define PL 12
47 
49  // PORTLIST
50  // ------------------------
51  PE , // PE 0 ** 0 ** USART0_RX
52  PE , // PE 1 ** 1 ** USART0_TX
53  PE , // PE 4 ** 2 ** PWM2
54  PE , // PE 5 ** 3 ** PWM3
55  PG , // PG 5 ** 4 ** PWM4
56  PE , // PE 3 ** 5 ** PWM5
57  PH , // PH 3 ** 6 ** PWM6
58  PH , // PH 4 ** 7 ** PWM7
59  PH , // PH 5 ** 8 ** PWM8
60  PH , // PH 6 ** 9 ** PWM9
61  PB , // PB 4 ** 10 ** PWM10
62  PB , // PB 5 ** 11 ** PWM11
63  PB , // PB 6 ** 12 ** PWM12
64  PB , // PB 7 ** 13 ** PWM13
65  PJ , // PJ 1 ** 14 ** USART3_TX
66  PJ , // PJ 0 ** 15 ** USART3_RX
67  PH , // PH 1 ** 16 ** USART2_TX
68  PH , // PH 0 ** 17 ** USART2_RX
69  PD , // PD 3 ** 18 ** USART1_TX
70  PD , // PD 2 ** 19 ** USART1_RX
71  PD , // PD 1 ** 20 ** I2C_SDA
72  PD , // PD 0 ** 21 ** I2C_SCL
73  PA , // PA 0 ** 22 ** D22
74  PA , // PA 1 ** 23 ** D23
75  PA , // PA 2 ** 24 ** D24
76  PA , // PA 3 ** 25 ** D25
77  PA , // PA 4 ** 26 ** D26
78  PA , // PA 5 ** 27 ** D27
79  PA , // PA 6 ** 28 ** D28
80  PA , // PA 7 ** 29 ** D29
81  PC , // PC 7 ** 30 ** D30
82  PC , // PC 6 ** 31 ** D31
83  PC , // PC 5 ** 32 ** D32
84  PC , // PC 4 ** 33 ** D33
85  PC , // PC 3 ** 34 ** D34
86  PC , // PC 2 ** 35 ** D35
87  PC , // PC 1 ** 36 ** D36
88  PC , // PC 0 ** 37 ** D37
89  PD , // PD 7 ** 38 ** D38
90  PG , // PG 2 ** 39 ** D39
91  PG , // PG 1 ** 40 ** D40
92  PG , // PG 0 ** 41 ** D41
93  PL , // PL 7 ** 42 ** D42
94  PL , // PL 6 ** 43 ** D43
95  PL , // PL 5 ** 44 ** D44
96  PL , // PL 4 ** 45 ** D45
97  PL , // PL 3 ** 46 ** D46
98  PL , // PL 2 ** 47 ** D47
99  PL , // PL 1 ** 48 ** D48
100  PL , // PL 0 ** 49 ** D49
101  PB , // PB 3 ** 50 ** SPI_MISO
102  PB , // PB 2 ** 51 ** SPI_MOSI
103  PB , // PB 1 ** 52 ** SPI_SCK
104  PB , // PB 0 ** 53 ** SPI_SS
105  PF , // PF 0 ** 54 ** A0
106  PF , // PF 1 ** 55 ** A1
107  PF , // PF 2 ** 56 ** A2
108  PF , // PF 3 ** 57 ** A3
109  PF , // PF 4 ** 58 ** A4
110  PF , // PF 5 ** 59 ** A5
111  PF , // PF 6 ** 60 ** A6
112  PF , // PF 7 ** 61 ** A7
113  PK , // PK 0 ** 62 ** A8
114  PK , // PK 1 ** 63 ** A9
115  PK , // PK 2 ** 64 ** A10
116  PK , // PK 3 ** 65 ** A11
117  PK , // PK 4 ** 66 ** A12
118  PK , // PK 5 ** 67 ** A13
119  PK , // PK 6 ** 68 ** A14
120  PK , // PK 7 ** 69 ** A15
121  PG , // PG 4 ** 70 **
122  PG , // PG 3 ** 71 **
123  PJ , // PJ 2 ** 72 **
124  PJ , // PJ 3 ** 73 **
125  PJ , // PJ 7 ** 74 **
126  PJ , // PJ 4 ** 75 **
127  PJ , // PJ 5 ** 76 **
128  PJ , // PJ 6 ** 77 **
129  PE , // PE 2 ** 78 **
130  PE , // PE 6 ** 79 **
131  PE , // PE 7 ** 80 **
132  PD , // PD 4 ** 81 **
133  PD , // PD 5 ** 82 **
134  PD , // PD 6 ** 83 **
135  PH , // PH 2 ** 84 **
136  PH , // PH 7 ** 85 **
137 };
138 
139 #define digitalPinToPort_plus_70(P) ( pgm_read_byte( digital_pin_to_port_PGM_plus_70 + (P) ) )
140 
142  // PIN IN PORT
143  // ------------------------
144  _BV( 0 ) , // PE 0 ** 0 ** USART0_RX
145  _BV( 1 ) , // PE 1 ** 1 ** USART0_TX
146  _BV( 4 ) , // PE 4 ** 2 ** PWM2
147  _BV( 5 ) , // PE 5 ** 3 ** PWM3
148  _BV( 5 ) , // PG 5 ** 4 ** PWM4
149  _BV( 3 ) , // PE 3 ** 5 ** PWM5
150  _BV( 3 ) , // PH 3 ** 6 ** PWM6
151  _BV( 4 ) , // PH 4 ** 7 ** PWM7
152  _BV( 5 ) , // PH 5 ** 8 ** PWM8
153  _BV( 6 ) , // PH 6 ** 9 ** PWM9
154  _BV( 4 ) , // PB 4 ** 10 ** PWM10
155  _BV( 5 ) , // PB 5 ** 11 ** PWM11
156  _BV( 6 ) , // PB 6 ** 12 ** PWM12
157  _BV( 7 ) , // PB 7 ** 13 ** PWM13
158  _BV( 1 ) , // PJ 1 ** 14 ** USART3_TX
159  _BV( 0 ) , // PJ 0 ** 15 ** USART3_RX
160  _BV( 1 ) , // PH 1 ** 16 ** USART2_TX
161  _BV( 0 ) , // PH 0 ** 17 ** USART2_RX
162  _BV( 3 ) , // PD 3 ** 18 ** USART1_TX
163  _BV( 2 ) , // PD 2 ** 19 ** USART1_RX
164  _BV( 1 ) , // PD 1 ** 20 ** I2C_SDA
165  _BV( 0 ) , // PD 0 ** 21 ** I2C_SCL
166  _BV( 0 ) , // PA 0 ** 22 ** D22
167  _BV( 1 ) , // PA 1 ** 23 ** D23
168  _BV( 2 ) , // PA 2 ** 24 ** D24
169  _BV( 3 ) , // PA 3 ** 25 ** D25
170  _BV( 4 ) , // PA 4 ** 26 ** D26
171  _BV( 5 ) , // PA 5 ** 27 ** D27
172  _BV( 6 ) , // PA 6 ** 28 ** D28
173  _BV( 7 ) , // PA 7 ** 29 ** D29
174  _BV( 7 ) , // PC 7 ** 30 ** D30
175  _BV( 6 ) , // PC 6 ** 31 ** D31
176  _BV( 5 ) , // PC 5 ** 32 ** D32
177  _BV( 4 ) , // PC 4 ** 33 ** D33
178  _BV( 3 ) , // PC 3 ** 34 ** D34
179  _BV( 2 ) , // PC 2 ** 35 ** D35
180  _BV( 1 ) , // PC 1 ** 36 ** D36
181  _BV( 0 ) , // PC 0 ** 37 ** D37
182  _BV( 7 ) , // PD 7 ** 38 ** D38
183  _BV( 2 ) , // PG 2 ** 39 ** D39
184  _BV( 1 ) , // PG 1 ** 40 ** D40
185  _BV( 0 ) , // PG 0 ** 41 ** D41
186  _BV( 7 ) , // PL 7 ** 42 ** D42
187  _BV( 6 ) , // PL 6 ** 43 ** D43
188  _BV( 5 ) , // PL 5 ** 44 ** D44
189  _BV( 4 ) , // PL 4 ** 45 ** D45
190  _BV( 3 ) , // PL 3 ** 46 ** D46
191  _BV( 2 ) , // PL 2 ** 47 ** D47
192  _BV( 1 ) , // PL 1 ** 48 ** D48
193  _BV( 0 ) , // PL 0 ** 49 ** D49
194  _BV( 3 ) , // PB 3 ** 50 ** SPI_MISO
195  _BV( 2 ) , // PB 2 ** 51 ** SPI_MOSI
196  _BV( 1 ) , // PB 1 ** 52 ** SPI_SCK
197  _BV( 0 ) , // PB 0 ** 53 ** SPI_SS
198  _BV( 0 ) , // PF 0 ** 54 ** A0
199  _BV( 1 ) , // PF 1 ** 55 ** A1
200  _BV( 2 ) , // PF 2 ** 56 ** A2
201  _BV( 3 ) , // PF 3 ** 57 ** A3
202  _BV( 4 ) , // PF 4 ** 58 ** A4
203  _BV( 5 ) , // PF 5 ** 59 ** A5
204  _BV( 6 ) , // PF 6 ** 60 ** A6
205  _BV( 7 ) , // PF 7 ** 61 ** A7
206  _BV( 0 ) , // PK 0 ** 62 ** A8
207  _BV( 1 ) , // PK 1 ** 63 ** A9
208  _BV( 2 ) , // PK 2 ** 64 ** A10
209  _BV( 3 ) , // PK 3 ** 65 ** A11
210  _BV( 4 ) , // PK 4 ** 66 ** A12
211  _BV( 5 ) , // PK 5 ** 67 ** A13
212  _BV( 6 ) , // PK 6 ** 68 ** A14
213  _BV( 7 ) , // PK 7 ** 69 ** A15
214  _BV( 4 ) , // PG 4 ** 70 **
215  _BV( 3 ) , // PG 3 ** 71 **
216  _BV( 2 ) , // PJ 2 ** 72 **
217  _BV( 3 ) , // PJ 3 ** 73 **
218  _BV( 7 ) , // PJ 7 ** 74 **
219  _BV( 4 ) , // PJ 4 ** 75 **
220  _BV( 5 ) , // PJ 5 ** 76 **
221  _BV( 6 ) , // PJ 6 ** 77 **
222  _BV( 2 ) , // PE 2 ** 78 **
223  _BV( 6 ) , // PE 6 ** 79 **
224  _BV( 7 ) , // PE 7 ** 80 **
225  _BV( 4 ) , // PD 4 ** 81 **
226  _BV( 5 ) , // PD 5 ** 82 **
227  _BV( 6 ) , // PD 6 ** 83 **
228  _BV( 2 ) , // PH 2 ** 84 **
229  _BV( 7 ) , // PH 7 ** 85 **
230 };
231 
232 #define digitalPinToBitMask_plus_70(P) ( pgm_read_byte( digital_pin_to_bit_mask_PGM_plus_70 + (P) ) )
233 
234 
236  // TIMERS
237  // ------------------------
238  NOT_ON_TIMER , // PE 0 ** 0 ** USART0_RX
239  NOT_ON_TIMER , // PE 1 ** 1 ** USART0_TX
240  TIMER3B , // PE 4 ** 2 ** PWM2
241  TIMER3C , // PE 5 ** 3 ** PWM3
242  TIMER0B , // PG 5 ** 4 ** PWM4
243  TIMER3A , // PE 3 ** 5 ** PWM5
244  TIMER4A , // PH 3 ** 6 ** PWM6
245  TIMER4B , // PH 4 ** 7 ** PWM7
246  TIMER4C , // PH 5 ** 8 ** PWM8
247  TIMER2B , // PH 6 ** 9 ** PWM9
248  TIMER2A , // PB 4 ** 10 ** PWM10
249  TIMER1A , // PB 5 ** 11 ** PWM11
250  TIMER1B , // PB 6 ** 12 ** PWM12
251  TIMER0A , // PB 7 ** 13 ** PWM13
252  NOT_ON_TIMER , // PJ 1 ** 14 ** USART3_TX
253  NOT_ON_TIMER , // PJ 0 ** 15 ** USART3_RX
254  NOT_ON_TIMER , // PH 1 ** 16 ** USART2_TX
255  NOT_ON_TIMER , // PH 0 ** 17 ** USART2_RX
256  NOT_ON_TIMER , // PD 3 ** 18 ** USART1_TX
257  NOT_ON_TIMER , // PD 2 ** 19 ** USART1_RX
258  NOT_ON_TIMER , // PD 1 ** 20 ** I2C_SDA
259  NOT_ON_TIMER , // PD 0 ** 21 ** I2C_SCL
260  NOT_ON_TIMER , // PA 0 ** 22 ** D22
261  NOT_ON_TIMER , // PA 1 ** 23 ** D23
262  NOT_ON_TIMER , // PA 2 ** 24 ** D24
263  NOT_ON_TIMER , // PA 3 ** 25 ** D25
264  NOT_ON_TIMER , // PA 4 ** 26 ** D26
265  NOT_ON_TIMER , // PA 5 ** 27 ** D27
266  NOT_ON_TIMER , // PA 6 ** 28 ** D28
267  NOT_ON_TIMER , // PA 7 ** 29 ** D29
268  NOT_ON_TIMER , // PC 7 ** 30 ** D30
269  NOT_ON_TIMER , // PC 6 ** 31 ** D31
270  NOT_ON_TIMER , // PC 5 ** 32 ** D32
271  NOT_ON_TIMER , // PC 4 ** 33 ** D33
272  NOT_ON_TIMER , // PC 3 ** 34 ** D34
273  NOT_ON_TIMER , // PC 2 ** 35 ** D35
274  NOT_ON_TIMER , // PC 1 ** 36 ** D36
275  NOT_ON_TIMER , // PC 0 ** 37 ** D37
276  NOT_ON_TIMER , // PD 7 ** 38 ** D38
277  NOT_ON_TIMER , // PG 2 ** 39 ** D39
278  NOT_ON_TIMER , // PG 1 ** 40 ** D40
279  NOT_ON_TIMER , // PG 0 ** 41 ** D41
280  NOT_ON_TIMER , // PL 7 ** 42 ** D42
281  NOT_ON_TIMER , // PL 6 ** 43 ** D43
282  TIMER5C , // PL 5 ** 44 ** D44
283  TIMER5B , // PL 4 ** 45 ** D45
284  TIMER5A , // PL 3 ** 46 ** D46
285  NOT_ON_TIMER , // PL 2 ** 47 ** D47
286  NOT_ON_TIMER , // PL 1 ** 48 ** D48
287  NOT_ON_TIMER , // PL 0 ** 49 ** D49
288  NOT_ON_TIMER , // PB 3 ** 50 ** SPI_MISO
289  NOT_ON_TIMER , // PB 2 ** 51 ** SPI_MOSI
290  NOT_ON_TIMER , // PB 1 ** 52 ** SPI_SCK
291  NOT_ON_TIMER , // PB 0 ** 53 ** SPI_SS
292  NOT_ON_TIMER , // PF 0 ** 54 ** A0
293  NOT_ON_TIMER , // PF 1 ** 55 ** A1
294  NOT_ON_TIMER , // PF 2 ** 56 ** A2
295  NOT_ON_TIMER , // PF 3 ** 57 ** A3
296  NOT_ON_TIMER , // PF 4 ** 58 ** A4
297  NOT_ON_TIMER , // PF 5 ** 59 ** A5
298  NOT_ON_TIMER , // PF 6 ** 60 ** A6
299  NOT_ON_TIMER , // PF 7 ** 61 ** A7
300  NOT_ON_TIMER , // PK 0 ** 62 ** A8
301  NOT_ON_TIMER , // PK 1 ** 63 ** A9
302  NOT_ON_TIMER , // PK 2 ** 64 ** A10
303  NOT_ON_TIMER , // PK 3 ** 65 ** A11
304  NOT_ON_TIMER , // PK 4 ** 66 ** A12
305  NOT_ON_TIMER , // PK 5 ** 67 ** A13
306  NOT_ON_TIMER , // PK 6 ** 68 ** A14
307  NOT_ON_TIMER , // PK 7 ** 69 ** A15
308  NOT_ON_TIMER , // PG 4 ** 70 **
309  NOT_ON_TIMER , // PG 3 ** 71 **
310  NOT_ON_TIMER , // PJ 2 ** 72 **
311  NOT_ON_TIMER , // PJ 3 ** 73 **
312  NOT_ON_TIMER , // PJ 7 ** 74 **
313  NOT_ON_TIMER , // PJ 4 ** 75 **
314  NOT_ON_TIMER , // PJ 5 ** 76 **
315  NOT_ON_TIMER , // PJ 6 ** 77 **
316  NOT_ON_TIMER , // PE 2 ** 78 **
317  NOT_ON_TIMER , // PE 6 ** 79 **
318 };
319 
320 #define digitalPinToTimer_plus_70(P) ( pgm_read_byte( digital_pin_to_timer_PGM_plus_70 + (P) ) )
321 
322 /**
323  * Interrupts that are not implemented
324  *
325  * INT6 E6 79
326  * INT7 E7 80
327  * PCINT11 J2 72
328  * PCINT12 J3 73
329  * PCINT13 J4 75
330  * PCINT14 J5 76
331  * PCINT15 J6 77
332  */
TIMER3C
#define TIMER3C
Definition: fastio_AT90USB.h:697
digital_pin_to_bit_mask_PGM_plus_70
const uint8_t PROGMEM digital_pin_to_bit_mask_PGM_plus_70[]
Definition: pinsDebug_plus_70.h:141
TIMER3A
#define TIMER3A
Definition: fastio_AT90USB.h:695
TIMER2B
#define TIMER2B
Definition: fastio_AT90USB.h:694
TIMER1B
#define TIMER1B
Definition: fastio_AT90USB.h:691
PROGMEM
#define PROGMEM
Definition: pgmspace.h:29
TIMER2A
#define TIMER2A
Definition: fastio_AT90USB.h:693
PF
#define PF
Definition: pinsDebug_plus_70.h:41
PA
#define PA
Definition: pinsDebug_plus_70.h:36
TIMER0B
#define TIMER0B
Definition: fastio_AT90USB.h:689
digital_pin_to_port_PGM_plus_70
const uint8_t PROGMEM digital_pin_to_port_PGM_plus_70[]
Definition: pinsDebug_plus_70.h:48
PC
#define PC
Definition: pinsDebug_plus_70.h:38
PH
#define PH
Definition: pinsDebug_plus_70.h:43
TIMER1A
#define TIMER1A
Definition: fastio_AT90USB.h:690
PE
#define PE
Definition: pinsDebug_plus_70.h:40
uint8_t
const uint8_t[]
Definition: 404_html.c:3
_BV
#define _BV(bit)
Definition: wiring_constants.h:99
PK
#define PK
Definition: pinsDebug_plus_70.h:45
digital_pin_to_timer_PGM_plus_70
const uint8_t PROGMEM digital_pin_to_timer_PGM_plus_70[]
Definition: pinsDebug_plus_70.h:235
PG
#define PG
Definition: pinsDebug_plus_70.h:42
PL
#define PL
Definition: pinsDebug_plus_70.h:46
PB
#define PB
Definition: pinsDebug_plus_70.h:37
TIMER3B
#define TIMER3B
Definition: fastio_AT90USB.h:696
PJ
#define PJ
Definition: pinsDebug_plus_70.h:44
PD
#define PD
Definition: pinsDebug_plus_70.h:39