variant.cpp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. * variant.cpp - Seeed Wio WM1110 Dev Board
  3. * Pin mapping for nRF52840
  4. */
  5. #include "variant.h"
  6. #include "wiring_constants.h"
  7. #include "wiring_digital.h"
  8. const uint32_t g_ADigitalPinMap[PINS_COUNT + 1] =
  9. {
  10. 0, // P0.00
  11. 1, // P0.01
  12. 2, // P0.02, AIN0, SENSOR_AIN_0
  13. 3, // P0.03, AIN1, SENSOR_AIN_1
  14. 4, // P0.04, AIN2, SENSOR_AIN_2
  15. 5, // P0.05, AIN3, SENSOR_AIN_3
  16. 6, // P0.06, PIN_SERIAL2_RX, SENSOR_RXD
  17. 7, // P0.07, SENSOR_POWER_PIN
  18. 8, // P0.08, PIN_SERIAL2_TX, SENSOR_TXD
  19. 9, // P0.09
  20. 10, // P0.10
  21. 11, // P0.11, LIS3DH_INT_PIN_1, SENSOR_INT_1
  22. 12, // P0.12, LIS3DH_INT_PIN_2, SENSOR_INT_2
  23. 13, // P0.13, LED_GREEN, USER_LED_G
  24. 14, // P0.14, LED_RED, USER_LED_R
  25. 15, // P0.15
  26. 16, // P0.16
  27. 17, // P0.17
  28. 18, // P0.18
  29. 19, // P0.19
  30. 20, // P0.20
  31. 21, // P0.21
  32. 22, // P0.22, PIN_SERIAL1_RX, DEBUG_RX_PIN
  33. 23, // P0.23
  34. 24, // P0.24, PIN_SERIAL1_TX, DEBUG_TX_PIN
  35. 25, // P0.25
  36. 26, // P0.26, PIN_WIRE_SCL, SENSOR_SCL
  37. 27, // P0.27, PIN_WIRE_SDA, SENSOR_SDA
  38. 28, // P0.28, AIN4, SENSOR_AIN_4
  39. 29, // P0.29, AIN5, SENSOR_AIN_5
  40. 30, // P0.30, AIN6, SENSOR_AIN_6
  41. 31, // P0.31, AIN7, SENSOR_AIN_7, BATTERY_PIN
  42. 32, // P1.00
  43. 33, // P1.01
  44. 34, // P1.02
  45. 35, // P1.03
  46. 36, // P1.04
  47. 37, // P1.05, LR1110_GNSS_ANT_PIN
  48. 38, // P1.06
  49. 39, // P1.07
  50. 40, // P1.08, LORA_DIO_1, LR1110_IRQ_PIN
  51. 41, // P1.09
  52. 42, // P1.10, LORA_RESET, LR1110_NRESET_PIN
  53. 43, // P1.11, LORA_BUSY, LR1110_BUSY_PIN
  54. 44, // P1.12, PIN_SPI_NSS, LR1110_SPI_NSS_PIN
  55. 45, // P1.13, PIN_SPI_SCK, LR1110_SPI_SCK_PIN
  56. 46, // P1.14, PIN_SPI_MOSI, LR1110_SPI_MOSI_PIN
  57. 47, // P1.15, PIN_SPI_MISO, LR1110_SPI_MISO_PIN
  58. 255, // NRFX_SPIM_PIN_NOT_USED
  59. };
  60. void initVariant()
  61. {
  62. // All pins output HIGH by default.
  63. // https://github.com/Seeed-Studio/Adafruit_nRF52_Arduino/blob/fab7d30a997a1dfeef9d1d59bfb549adda73815a/cores/nRF5/wiring.c#L65-L69
  64. // Set analog input pins
  65. pinMode(BATTERY_PIN, INPUT);
  66. pinMode(SENSOR_AIN_0, INPUT);
  67. pinMode(SENSOR_AIN_1, INPUT);
  68. pinMode(SENSOR_AIN_2, INPUT);
  69. pinMode(SENSOR_AIN_3, INPUT);
  70. pinMode(SENSOR_AIN_4, INPUT);
  71. pinMode(SENSOR_AIN_5, INPUT);
  72. pinMode(SENSOR_AIN_6, INPUT);
  73. // Sensor interrupts as inputs
  74. pinMode(LIS3DH_INT_PIN_1, INPUT);
  75. pinMode(LIS3DH_INT_PIN_2, INPUT);
  76. // Set output pins
  77. pinMode(LED_GREEN, OUTPUT);
  78. pinMode(LED_RED, OUTPUT);
  79. pinMode(SENSOR_POWER_PIN, OUTPUT);
  80. // Initialize outputs to safe states
  81. digitalWrite(LED_GREEN, HIGH); // Power indicator LED on
  82. digitalWrite(LED_RED, LOW);
  83. digitalWrite(SENSOR_POWER_PIN, LOW); // Sensors powered off initially
  84. }