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

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