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 10KB

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