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

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