My Marlin configs for Fabrikator Mini and CTC i3 Pro B
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

pinsDebug_plus_70.h 11KB

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