Subversion Repositories MK-Marlin

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ron 1
/**
2
 * Marlin 3D Printer Firmware
3
 * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
 *
5
 * Based on Sprinter and grbl.
6
 * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
 *
8
 * This program is free software: you can redistribute it and/or modify
9
 * it under the terms of the GNU General Public License as published by
10
 * the Free Software Foundation, either version 3 of the License, or
11
 * (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
 *
21
 */
22
 
23
/**
24
 * Pin mapping for the 644, 644p, 644pa, and 1284p
25
 *
26
 *   Logical Pin: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
27
 *   Port:        B0 B1 B2 B3 B4 B5 B6 B7 D0 D1 D2 D3 D4 D5 D6 D7 C0 C1 C2 C3 C4 C5 C6 C7 A7 A6 A5 A4 A3 A2 A1 A0
28
 */
29
 
30
/**                       ATMega644
31
 *
32
 *                        +---\/---+
33
 *            (D 0) PB0  1|        |40  PA0 (AI 0 / D31)
34
 *            (D 1) PB1  2|        |39  PA1 (AI 1 / D30)
35
 *       INT2 (D 2) PB2  3|        |38  PA2 (AI 2 / D29)
36
 *        PWM (D 3) PB3  4|        |37  PA3 (AI 3 / D28)
37
 *        PWM (D 4) PB4  5|        |36  PA4 (AI 4 / D27)
38
 *       MOSI (D 5) PB5  6|        |35  PA5 (AI 5 / D26)
39
 *       MISO (D 6) PB6  7|        |34  PA6 (AI 6 / D25)
40
 *        SCK (D 7) PB7  8|        |33  PA7 (AI 7 / D24)
41
 *                  RST  9|        |32  AREF
42
 *                  VCC 10|        |31  GND
43
 *                  GND 11|        |30  AVCC
44
 *                XTAL2 12|        |29  PC7 (D 23)
45
 *                XTAL1 13|        |28  PC6 (D 22)
46
 *       RX0 (D 8)  PD0 14|        |27  PC5 (D 21) TDI
47
 *       TX0 (D 9)  PD1 15|        |26  PC4 (D 20) TDO
48
 *  INT0 RX1 (D 10) PD2 16|        |25  PC3 (D 19) TMS
49
 *  INT1 TX1 (D 11) PD3 17|        |24  PC2 (D 18) TCK
50
 *       PWM (D 12) PD4 18|        |23  PC1 (D 17) SDA
51
 *       PWM (D 13) PD5 19|        |22  PC0 (D 16) SCL
52
 *       PWM (D 14) PD6 20|        |21  PD7 (D 15) PWM
53
 *                        +--------+
54
 */
55
 
56
#ifndef _FASTIO_644
57
#define _FASTIO_644
58
 
59
#include "fastio.h"
60
 
61
#define DEBUG_LED   DIO0
62
 
63
// UART
64
#define RXD         DIO8
65
#define TXD         DIO9
66
#define RXD0        DIO8
67
#define TXD0        DIO9
68
 
69
#define RXD1        DIO10
70
#define TXD1        DIO11
71
 
72
// SPI
73
#define SCK         DIO7
74
#define MISO        DIO6
75
#define MOSI        DIO5
76
#define SS          DIO4
77
 
78
// TWI (I2C)
79
#define SCL         DIO16
80
#define SDA         DIO17
81
 
82
// Timers and PWM
83
#define OC0A        DIO3
84
#define OC0B        DIO4
85
#define OC1A        DIO13
86
#define OC1B        DIO12
87
#define OC2A        DIO15
88
#define OC2B        DIO14
89
 
90
// Digital I/O
91
 
92
#define DIO0_PIN    PINB0
93
#define DIO0_RPORT  PINB
94
#define DIO0_WPORT  PORTB
95
#define DIO0_DDR    DDRB
96
#define DIO0_PWM    NULL
97
 
98
#define DIO1_PIN    PINB1
99
#define DIO1_RPORT  PINB
100
#define DIO1_WPORT  PORTB
101
#define DIO1_DDR    DDRB
102
#define DIO1_PWM    NULL
103
 
104
#define DIO2_PIN    PINB2
105
#define DIO2_RPORT  PINB
106
#define DIO2_WPORT  PORTB
107
#define DIO2_DDR    DDRB
108
#define DIO2_PWM    NULL
109
 
110
#define DIO3_PIN    PINB3
111
#define DIO3_RPORT  PINB
112
#define DIO3_WPORT  PORTB
113
#define DIO3_DDR    DDRB
114
#define DIO3_PWM    OCR0A
115
 
116
#define DIO4_PIN    PINB4
117
#define DIO4_RPORT  PINB
118
#define DIO4_WPORT  PORTB
119
#define DIO4_DDR    DDRB
120
#define DIO4_PWM    OCR0B
121
 
122
#define DIO5_PIN    PINB5
123
#define DIO5_RPORT  PINB
124
#define DIO5_WPORT  PORTB
125
#define DIO5_DDR    DDRB
126
#define DIO5_PWM    NULL
127
 
128
#define DIO6_PIN    PINB6
129
#define DIO6_RPORT  PINB
130
#define DIO6_WPORT  PORTB
131
#define DIO6_DDR    DDRB
132
#define DIO6_PWM    NULL
133
 
134
#define DIO7_PIN    PINB7
135
#define DIO7_RPORT  PINB
136
#define DIO7_WPORT  PORTB
137
#define DIO7_DDR    DDRB
138
#define DIO7_PWM    NULL
139
 
140
#define DIO8_PIN    PIND0
141
#define DIO8_RPORT  PIND
142
#define DIO8_WPORT  PORTD
143
#define DIO8_DDR    DDRD
144
#define DIO8_PWM    NULL
145
 
146
#define DIO9_PIN    PIND1
147
#define DIO9_RPORT  PIND
148
#define DIO9_WPORT  PORTD
149
#define DIO9_DDR    DDRD
150
#define DIO9_PWM    NULL
151
 
152
#define DIO10_PIN   PIND2
153
#define DIO10_RPORT PIND
154
#define DIO10_WPORT PORTD
155
#define DIO10_DDR   DDRD
156
#define DIO10_PWM   NULL
157
 
158
#define DIO11_PIN   PIND3
159
#define DIO11_RPORT PIND
160
#define DIO11_WPORT PORTD
161
#define DIO11_DDR   DDRD
162
#define DIO11_PWM   NULL
163
 
164
#define DIO12_PIN   PIND4
165
#define DIO12_RPORT PIND
166
#define DIO12_WPORT PORTD
167
#define DIO12_DDR   DDRD
168
#define DIO12_PWM   OCR1B
169
 
170
#define DIO13_PIN   PIND5
171
#define DIO13_RPORT PIND
172
#define DIO13_WPORT PORTD
173
#define DIO13_DDR   DDRD
174
#define DIO13_PWM   OCR1A
175
 
176
#define DIO14_PIN   PIND6
177
#define DIO14_RPORT PIND
178
#define DIO14_WPORT PORTD
179
#define DIO14_DDR   DDRD
180
#define DIO14_PWM   OCR2B
181
 
182
#define DIO15_PIN   PIND7
183
#define DIO15_RPORT PIND
184
#define DIO15_WPORT PORTD
185
#define DIO15_DDR   DDRD
186
#define DIO15_PWM   OCR2A
187
 
188
#define DIO16_PIN   PINC0
189
#define DIO16_RPORT PINC
190
#define DIO16_WPORT PORTC
191
#define DIO16_DDR   DDRC
192
#define DIO16_PWM   NULL
193
 
194
#define DIO17_PIN   PINC1
195
#define DIO17_RPORT PINC
196
#define DIO17_WPORT PORTC
197
#define DIO17_DDR   DDRC
198
#define DIO17_PWM   NULL
199
 
200
#define DIO18_PIN   PINC2
201
#define DIO18_RPORT PINC
202
#define DIO18_WPORT PORTC
203
#define DIO18_DDR   DDRC
204
#define DIO18_PWM   NULL
205
 
206
#define DIO19_PIN   PINC3
207
#define DIO19_RPORT PINC
208
#define DIO19_WPORT PORTC
209
#define DIO19_DDR   DDRC
210
#define DIO19_PWM   NULL
211
 
212
#define DIO20_PIN   PINC4
213
#define DIO20_RPORT PINC
214
#define DIO20_WPORT PORTC
215
#define DIO20_DDR   DDRC
216
#define DIO20_PWM   NULL
217
 
218
#define DIO21_PIN   PINC5
219
#define DIO21_RPORT PINC
220
#define DIO21_WPORT PORTC
221
#define DIO21_DDR   DDRC
222
#define DIO21_PWM   NULL
223
 
224
#define DIO22_PIN   PINC6
225
#define DIO22_RPORT PINC
226
#define DIO22_WPORT PORTC
227
#define DIO22_DDR   DDRC
228
#define DIO22_PWM   NULL
229
 
230
#define DIO23_PIN   PINC7
231
#define DIO23_RPORT PINC
232
#define DIO23_WPORT PORTC
233
#define DIO23_DDR   DDRC
234
#define DIO23_PWM   NULL
235
 
236
#define DIO24_PIN   PINA7
237
#define DIO24_RPORT PINA
238
#define DIO24_WPORT PORTA
239
#define DIO24_DDR   DDRA
240
#define DIO24_PWM   NULL
241
 
242
#define DIO25_PIN   PINA6
243
#define DIO25_RPORT PINA
244
#define DIO25_WPORT PORTA
245
#define DIO25_DDR   DDRA
246
#define DIO25_PWM   NULL
247
 
248
#define DIO26_PIN   PINA5
249
#define DIO26_RPORT PINA
250
#define DIO26_WPORT PORTA
251
#define DIO26_DDR   DDRA
252
#define DIO26_PWM   NULL
253
 
254
#define DIO27_PIN   PINA4
255
#define DIO27_RPORT PINA
256
#define DIO27_WPORT PORTA
257
#define DIO27_DDR   DDRA
258
#define DIO27_PWM   NULL
259
 
260
#define DIO28_PIN   PINA3
261
#define DIO28_RPORT PINA
262
#define DIO28_WPORT PORTA
263
#define DIO28_DDR   DDRA
264
#define DIO28_PWM   NULL
265
 
266
#define DIO29_PIN   PINA2
267
#define DIO29_RPORT PINA
268
#define DIO29_WPORT PORTA
269
#define DIO29_DDR   DDRA
270
#define DIO29_PWM   NULL
271
 
272
#define DIO30_PIN   PINA1
273
#define DIO30_RPORT PINA
274
#define DIO30_WPORT PORTA
275
#define DIO30_DDR   DDRA
276
#define DIO30_PWM   NULL
277
 
278
#define DIO31_PIN   PINA0
279
#define DIO31_RPORT PINA
280
#define DIO31_WPORT PORTA
281
#define DIO31_DDR   DDRA
282
#define DIO31_PWM   NULL
283
 
284
#define AIO0_PIN    PINA0
285
#define AIO0_RPORT  PINA
286
#define AIO0_WPORT  PORTA
287
#define AIO0_DDR    DDRA
288
#define AIO0_PWM    NULL
289
 
290
#define AIO1_PIN    PINA1
291
#define AIO1_RPORT  PINA
292
#define AIO1_WPORT  PORTA
293
#define AIO1_DDR    DDRA
294
#define AIO1_PWM    NULL
295
 
296
#define AIO2_PIN    PINA2
297
#define AIO2_RPORT  PINA
298
#define AIO2_WPORT  PORTA
299
#define AIO2_DDR    DDRA
300
#define AIO2_PWM    NULL
301
 
302
#define AIO3_PIN    PINA3
303
#define AIO3_RPORT  PINA
304
#define AIO3_WPORT  PORTA
305
#define AIO3_DDR    DDRA
306
#define AIO3_PWM    NULL
307
 
308
#define AIO4_PIN    PINA4
309
#define AIO4_RPORT  PINA
310
#define AIO4_WPORT  PORTA
311
#define AIO4_DDR    DDRA
312
#define AIO4_PWM    NULL
313
 
314
#define AIO5_PIN    PINA5
315
#define AIO5_RPORT  PINA
316
#define AIO5_WPORT  PORTA
317
#define AIO5_DDR    DDRA
318
#define AIO5_PWM    NULL
319
 
320
#define AIO6_PIN    PINA6
321
#define AIO6_RPORT  PINA
322
#define AIO6_WPORT  PORTA
323
#define AIO6_DDR    DDRA
324
#define AIO6_PWM    NULL
325
 
326
#define AIO7_PIN    PINA7
327
#define AIO7_RPORT  PINA
328
#define AIO7_WPORT  PORTA
329
#define AIO7_DDR    DDRA
330
#define AIO7_PWM    NULL
331
 
332
#undef PA0
333
#define PA0_PIN     PINA0
334
#define PA0_RPORT   PINA
335
#define PA0_WPORT   PORTA
336
#define PA0_DDR     DDRA
337
#define PA0_PWM     NULL
338
 
339
#undef PA1
340
#define PA1_PIN     PINA1
341
#define PA1_RPORT   PINA
342
#define PA1_WPORT   PORTA
343
#define PA1_DDR     DDRA
344
#define PA1_PWM     NULL
345
 
346
#undef PA2
347
#define PA2_PIN     PINA2
348
#define PA2_RPORT   PINA
349
#define PA2_WPORT   PORTA
350
#define PA2_DDR     DDRA
351
#define PA2_PWM     NULL
352
 
353
#undef PA3
354
#define PA3_PIN     PINA3
355
#define PA3_RPORT   PINA
356
#define PA3_WPORT   PORTA
357
#define PA3_DDR     DDRA
358
#define PA3_PWM     NULL
359
 
360
#undef PA4
361
#define PA4_PIN     PINA4
362
#define PA4_RPORT   PINA
363
#define PA4_WPORT   PORTA
364
#define PA4_DDR     DDRA
365
#define PA4_PWM     NULL
366
 
367
#undef PA5
368
#define PA5_PIN     PINA5
369
#define PA5_RPORT   PINA
370
#define PA5_WPORT   PORTA
371
#define PA5_DDR     DDRA
372
#define PA5_PWM     NULL
373
 
374
#undef PA6
375
#define PA6_PIN     PINA6
376
#define PA6_RPORT   PINA
377
#define PA6_WPORT   PORTA
378
#define PA6_DDR     DDRA
379
#define PA6_PWM     NULL
380
 
381
#undef PA7
382
#define PA7_PIN     PINA7
383
#define PA7_RPORT   PINA
384
#define PA7_WPORT   PORTA
385
#define PA7_DDR     DDRA
386
#define PA7_PWM     NULL
387
 
388
#undef PB0
389
#define PB0_PIN     PINB0
390
#define PB0_RPORT   PINB
391
#define PB0_WPORT   PORTB
392
#define PB0_DDR     DDRB
393
#define PB0_PWM     NULL
394
 
395
#undef PB1
396
#define PB1_PIN     PINB1
397
#define PB1_RPORT   PINB
398
#define PB1_WPORT   PORTB
399
#define PB1_DDR     DDRB
400
#define PB1_PWM     NULL
401
 
402
#undef PB2
403
#define PB2_PIN     PINB2
404
#define PB2_RPORT   PINB
405
#define PB2_WPORT   PORTB
406
#define PB2_DDR     DDRB
407
#define PB2_PWM     NULL
408
 
409
#undef PB3
410
#define PB3_PIN     PINB3
411
#define PB3_RPORT   PINB
412
#define PB3_WPORT   PORTB
413
#define PB3_DDR     DDRB
414
#define PB3_PWM     OCR0A
415
 
416
#undef PB4
417
#define PB4_PIN     PINB4
418
#define PB4_RPORT   PINB
419
#define PB4_WPORT   PORTB
420
#define PB4_DDR     DDRB
421
#define PB4_PWM     OCR0B
422
 
423
#undef PB5
424
#define PB5_PIN     PINB5
425
#define PB5_RPORT   PINB
426
#define PB5_WPORT   PORTB
427
#define PB5_DDR     DDRB
428
#define PB5_PWM     NULL
429
 
430
#undef PB6
431
#define PB6_PIN     PINB6
432
#define PB6_RPORT   PINB
433
#define PB6_WPORT   PORTB
434
#define PB6_DDR     DDRB
435
#define PB6_PWM     NULL
436
 
437
#undef PB7
438
#define PB7_PIN     PINB7
439
#define PB7_RPORT   PINB
440
#define PB7_WPORT   PORTB
441
#define PB7_DDR     DDRB
442
#define PB7_PWM     NULL
443
 
444
#undef PC0
445
#define PC0_PIN     PINC0
446
#define PC0_RPORT   PINC
447
#define PC0_WPORT   PORTC
448
#define PC0_DDR     DDRC
449
#define PC0_PWM     NULL
450
 
451
#undef PC1
452
#define PC1_PIN     PINC1
453
#define PC1_RPORT   PINC
454
#define PC1_WPORT   PORTC
455
#define PC1_DDR     DDRC
456
#define PC1_PWM     NULL
457
 
458
#undef PC2
459
#define PC2_PIN     PINC2
460
#define PC2_RPORT   PINC
461
#define PC2_WPORT   PORTC
462
#define PC2_DDR     DDRC
463
#define PC2_PWM     NULL
464
 
465
#undef PC3
466
#define PC3_PIN     PINC3
467
#define PC3_RPORT   PINC
468
#define PC3_WPORT   PORTC
469
#define PC3_DDR     DDRC
470
#define PC3_PWM     NULL
471
 
472
#undef PC4
473
#define PC4_PIN     PINC4
474
#define PC4_RPORT   PINC
475
#define PC4_WPORT   PORTC
476
#define PC4_DDR     DDRC
477
#define PC4_PWM     NULL
478
 
479
#undef PC5
480
#define PC5_PIN     PINC5
481
#define PC5_RPORT   PINC
482
#define PC5_WPORT   PORTC
483
#define PC5_DDR     DDRC
484
#define PC5_PWM     NULL
485
 
486
#undef PC6
487
#define PC6_PIN     PINC6
488
#define PC6_RPORT   PINC
489
#define PC6_WPORT   PORTC
490
#define PC6_DDR     DDRC
491
#define PC6_PWM     NULL
492
 
493
#undef PC7
494
#define PC7_PIN     PINC7
495
#define PC7_RPORT   PINC
496
#define PC7_WPORT   PORTC
497
#define PC7_DDR     DDRC
498
#define PC7_PWM     NULL
499
 
500
#undef PD0
501
#define PD0_PIN     PIND0
502
#define PD0_RPORT   PIND
503
#define PD0_WPORT   PORTD
504
#define PD0_DDR     DDRD
505
#define PD0_PWM     NULL
506
 
507
#undef PD1
508
#define PD1_PIN     PIND1
509
#define PD1_RPORT   PIND
510
#define PD1_WPORT   PORTD
511
#define PD1_DDR     DDRD
512
#define PD1_PWM     NULL
513
 
514
#undef PD2
515
#define PD2_PIN     PIND2
516
#define PD2_RPORT   PIND
517
#define PD2_WPORT   PORTD
518
#define PD2_DDR     DDRD
519
#define PD2_PWM     NULL
520
 
521
#undef PD3
522
#define PD3_PIN     PIND3
523
#define PD3_RPORT   PIND
524
#define PD3_WPORT   PORTD
525
#define PD3_DDR     DDRD
526
#define PD3_PWM     NULL
527
 
528
#undef PD4
529
#define PD4_PIN     PIND4
530
#define PD4_RPORT   PIND
531
#define PD4_WPORT   PORTD
532
#define PD4_DDR     DDRD
533
#define PD4_PWM     NULL
534
 
535
#undef PD5
536
#define PD5_PIN     PIND5
537
#define PD5_RPORT   PIND
538
#define PD5_WPORT   PORTD
539
#define PD5_DDR     DDRD
540
#define PD5_PWM     NULL
541
 
542
#undef PD6
543
#define PD6_PIN     PIND6
544
#define PD6_RPORT   PIND
545
#define PD6_WPORT   PORTD
546
#define PD6_DDR     DDRD
547
#define PD6_PWM     OCR2B
548
 
549
#undef PD7
550
#define PD7_PIN     PIND7
551
#define PD7_RPORT   PIND
552
#define PD7_WPORT   PORTD
553
#define PD7_DDR     DDRD
554
#define PD7_PWM     OCR2A
555
 
556
#endif // _FASTIO_644