variant.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /*
  2. Copyright (c) 2014-2015 Arduino LLC. All right reserved.
  3. Copyright (c) 2016 Sandeep Mistry All right reserved.
  4. Copyright (c) 2018, Adafruit Industries (adafruit.com)
  5. This library is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU Lesser General Public
  7. License as published by the Free Software Foundation; either
  8. version 2.1 of the License, or (at your option) any later version.
  9. This library is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  12. See the GNU Lesser General Public License for more details.
  13. You should have received a copy of the GNU Lesser General Public
  14. License along with this library; if not, write to the Free Software
  15. Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  16. */
  17. #include "variant.h"
  18. #include "wiring_constants.h"
  19. #include "wiring_digital.h"
  20. #include "nrf.h"
  21. const uint32_t g_ADigitalPinMap[] =
  22. {
  23. // D0 .. D13
  24. 25, // D0 is P0.25 (UART TX)
  25. 24, // D1 is P0.24 (UART RX
  26. 10, // D2 is P0.10 (NFC2)
  27. 47, // D3 is P1.15 (LED1)
  28. 42, // D4 is P1.10 (LED2)
  29. 40, // D5 is P1.08
  30. 7, // D6 is P0.07
  31. 34, // D7 is P1.02 (Button)
  32. 16, // D8 is P0.16 (NeoPixel)
  33. 26, // D9 is P0.26
  34. 27, // D10 is P0.27
  35. 6, // D11 is P0.06
  36. 8, // D12 is P0.08
  37. 41, // D13 is P1.09
  38. // D14 .. D21 (aka A0 .. A7)
  39. 4, // D14 is P0.04 (A0)
  40. 5, // D15 is P0.05 (A1)
  41. 30, // D16 is P0.30 (A2)
  42. 28, // D17 is P0.28 (A3)
  43. 2, // D18 is P0.02 (A4)
  44. 3, // D19 is P0.03 (A5)
  45. 29, // D20 is P0.29 (A6, Battery)
  46. 31, // D21 is P0.31 (A7, ARef)
  47. // D22 .. D23 (aka I2C pins)
  48. 12, // D22 is P0.12 (SDA)
  49. 11, // D23 is P0.11 (SCL)
  50. // D24 .. D26 (aka SPI pins)
  51. 15, // D24 is P0.15 (SPI MISO)
  52. 13, // D25 is P0.13 (SPI MOSI)
  53. 14, // D26 is P0.14 (SPI SCK )
  54. // QSPI pins (not exposed via any header / test point)
  55. 19, // D27 is P0.19 (QSPI CLK)
  56. 20, // D28 is P0.20 (QSPI CS)
  57. 17, // D29 is P0.17 (QSPI Data 0)
  58. 22, // D30 is P0.22 (QSPI Data 1)
  59. 23, // D31 is P0.23 (QSPI Data 2)
  60. 21, // D32 is P0.21 (QSPI Data 3)
  61. // The remaining NFC pin
  62. 9, // D33 is P0.09 (NFC1, exposed only via test point on bottom of board)
  63. 32+14, // D34 is P1.14
  64. // Thus, there are 35 defined pins
  65. // The remaining pins are not usable:
  66. //
  67. //
  68. // The following pins were never listed as they were considered unusable
  69. // 0, // P0.00 is XL1 (attached to 32.768kHz crystal)
  70. // 1, // P0.01 is XL2 (attached to 32.768kHz crystal)
  71. // 18, // P0.18 is RESET (attached to switch)
  72. // 32, // P1.00 is SWO (attached to debug header)
  73. //
  74. // The remaining pins are not connected (per schematic)
  75. // 33, // P1.01 is not connected per schematic
  76. // 35, // P1.03 is not connected per schematic
  77. // 36, // P1.04 is not connected per schematic
  78. // 37, // P1.05 is not connected per schematic
  79. // 38, // P1.06 is not connected per schematic
  80. // 39, // P1.07 is not connected per schematic
  81. // 43, // P1.11 is not connected per schematic
  82. // 44, // P1.12 is not connected per schematic
  83. // 45, // P1.13 is not connected per schematic
  84. };
  85. void initVariant()
  86. {
  87. // LED1 & LED2
  88. pinMode(PIN_LED1, OUTPUT);
  89. ledOff(PIN_LED1);
  90. pinMode(PIN_LED2, OUTPUT);
  91. ledOff(PIN_LED2);
  92. pinMode(PIN_NEOPIXEL_POWER, OUTPUT);
  93. digitalWrite(PIN_NEOPIXEL_POWER, HIGH);
  94. }