variant.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #include "variant.h"
  2. #include "wiring_constants.h"
  3. #include "wiring_digital.h"
  4. #include "nrf.h"
  5. const uint32_t g_ADigitalPinMap[] =
  6. {
  7. // D0 .. D10
  8. 2, // D0 is P0.02 (A0)
  9. 3, // D1 is P0.03 (A1)
  10. 28, // D2 is P0.28 (A2)
  11. 29, // D3 is P0.29 (A3)
  12. 4, // D4 is P0.04 (A4,SDA)
  13. 5, // D5 is P0.05 (A5,SCL)
  14. 43, // D6 is P1.11 (TX)
  15. 44, // D7 is P1.12 (RX)
  16. 45, // D8 is P1.13 (SCK)
  17. 46, // D9 is P1.14 (MISO)
  18. 47, // D10 is P1.15 (MOSI)
  19. // LEDs
  20. 26, // D11 is P0.26 (LED RED)
  21. 6, // D12 is P0.06 (LED BLUE)
  22. 30, // D13 is P0.30 (LED GREEN)
  23. 14, // D14 is P0.14 (READ_BAT)
  24. // LSM6DS3TR
  25. 40, // D15 is P1.08 (6D_PWR)
  26. 27, // D16 is P0.27 (6D_I2C_SCL)
  27. 7, // D17 is P0.07 (6D_I2C_SDA)
  28. 11, // D18 is P0.11 (6D_INT1)
  29. // MIC
  30. 42, // D19 is P1.10 (MIC_PWR)
  31. 32, // D20 is P1.00 (PDM_CLK)
  32. 16, // D21 is P0.16 (PDM_DATA)
  33. // BQ25100
  34. 13, // D22 is P0.13 (HICHG)
  35. 17, // D23 is P0.17 (~CHG)
  36. //
  37. 21, // D24 is P0.21 (QSPI_SCK)
  38. 25, // D25 is P0.25 (QSPI_CSN)
  39. 20, // D26 is P0.20 (QSPI_SIO_0 DI)
  40. 24, // D27 is P0.24 (QSPI_SIO_1 DO)
  41. 22, // D28 is P0.22 (QSPI_SIO_2 WP)
  42. 23, // D29 is P0.23 (QSPI_SIO_3 HOLD)
  43. // NFC
  44. 9, // D30 is P0.09 (NFC1)
  45. 10, // D31 is P0.10 (NFC2)
  46. // VBAT
  47. 31, // D32 is P0.31 (VBAT)
  48. };
  49. void initVariant()
  50. {
  51. // Disable reading of the BAT voltage.
  52. // https://wiki.seeedstudio.com/XIAO_BLE#q3-what-are-the-considerations-when-using-xiao-nrf52840-sense-for-battery-charging
  53. pinMode(VBAT_ENABLE, OUTPUT);
  54. digitalWrite(VBAT_ENABLE, HIGH);
  55. // Low charging current.
  56. // https://wiki.seeedstudio.com/XIAO_BLE#battery-charging-current
  57. pinMode(PIN_CHARGING_CURRENT, INPUT);
  58. pinMode(PIN_QSPI_CS, OUTPUT);
  59. digitalWrite(PIN_QSPI_CS, HIGH);
  60. pinMode(LED_RED, OUTPUT);
  61. digitalWrite(LED_RED, HIGH);
  62. pinMode(LED_GREEN, OUTPUT);
  63. digitalWrite(LED_GREEN, HIGH);
  64. pinMode(LED_BLUE, OUTPUT);
  65. digitalWrite(LED_BLUE, HIGH);
  66. }